Commit Graph

50 Commits

Author SHA1 Message Date
Jon Coppeard
1690b0506c Bug 1345177 - Remove use of RegExpGuard r=sfink 2017-03-27 10:38:29 +01:00
Jon Coppeard
7c5ab787ba Bug 1345177 - Make RegExpShared a GC thing r=sfink 2017-03-27 10:38:29 +01:00
Jon Coppeard
f2dc766532 Backed out changesets e66f564d9749 and 0380d914ad39 (bug 1345177) for rooting hazards 2017-03-27 11:09:54 +01:00
Jon Coppeard
08352c6c76 Bug 1345177 - Remove use of RegExpGuard r=sfink 2017-03-27 10:38:29 +01:00
Jon Coppeard
0f25381dd3 Bug 1345177 - Make RegExpShared a GC thing r=sfink 2017-03-27 10:38:29 +01:00
Tom Schuster
6a6c660bf2 Bug 1319087 - Implement a CrossCompartmentWrapper IC stub. r=bz,bholley,jandem 2017-02-22 21:16:04 +01:00
Boris Zbarsky
17718e29ad Bug 1335654 part 1. Propagate AutoEnterPolicy's mayThrow argument to the enter() methods of proxy handlers, so they know whether it's OK to throw some sort of custom exception or whether they should just silently deny. r=bholley,jandem 2017-02-02 12:48:49 -05:00
Xidorn Quan
81a1ff30cc Bug 1325351 part 1 - Remove workaround for VC in Maybe. r=froydnj
MozReview-Commit-ID: Anlrf3D2WtN
2016-12-29 10:58:01 +11:00
Jan de Mooij
ad35ff3340 Bug 1325075 - Fix Value::isGCThing footgun, stop returning true for NullValue. r=jonco,baku 2016-12-26 16:40:21 +01:00
Tooru Fujisawa
a33ab4d32a Bug 1290337 - Part 13: Replace Value parameter to const Value& in finalizeInBackground. r=sfink 2016-09-11 18:15:23 +09:00
Tooru Fujisawa
bfb2734f9d Bug 1290337 - Part 3: Replace Value parameter to const Value& in simple case. r=shu 2016-09-11 18:15:22 +09:00
Terrence Cole
6b955dab60 Bug 1237058 - Nursery allocate cross-compartment wrappers; r=jonco,r=terrence 2016-04-04 11:50:12 -07:00
Chris Peterson
c35faf4632 Bug 1277775 - Replace MOZ_CONSTEXPR{_VAR,_TMPL} with constexpr. r=froydnj 2016-07-08 14:39:53 -07:00
Tom Schuster
88135ce2c1 Bug 1114580 - Change ESClassValue to an enum class. r=jorendorff 2016-06-30 00:04:56 +02:00
Jeff Walden
dc74c68ba5 Bug 1269928 - Fold DirectProxyHandler into Wrapper, which is now its only (non-test) consumer. r=efaust 2016-05-03 17:29:10 -07:00
Jeff Walden
73ae0a51ca Bug 888969 - Permit a cyclic [[Prototype]] chain to be created through a Location object. r=bz, r=efaust 2016-04-29 19:59:40 -07:00
Jeff Walden
51488fefe9 Bug 888969 - Make the getPrototypeOf/setPrototypeOf traps scriptable. r=efaust, r=bholley 2016-02-23 13:42:30 -08:00
Terrence Cole
d6f44f42d3 Bug 1259580 - Hide as many Proxy details as possible behind a detail namespace; r=efaust 2016-03-24 13:24:51 -07:00
Terrence Cole
62ed8038c9 Bug 1259578 - Use GC infrastructure to allocate proxy's malloced blob; r=jonco 2016-03-24 13:03:55 -07:00
Tom Schuster
079c82b6cc Bug 1246318 - Make the proxy enumerate trap non-standard. r=efaust 2016-02-10 00:12:24 +01:00
Tom Schuster
8436c3c6c9 Bug 1242214 - Rename JSPropertyDescriptor JS::PropertyDescriptor in js. r=sstangl 2016-01-28 11:28:04 +01:00
Jason Orendorff
c2e41c4309 Bug 1054756, part 4 - Remove BaseProxyHandler::defaultValue. r=jandem. 2015-03-20 14:03:24 -05:00
Wes Kocher
acbbcd2aca Backed out 7 changesets (bug 1206168, bug 1177318, bug 1054756) for hazard build failures CLOSED TREE
Backed out changeset e892727a373a (bug 1206168)
Backed out changeset 6c93d1044b7e (bug 1054756)
Backed out changeset 105433ce195b (bug 1054756)
Backed out changeset 13128a88f2b9 (bug 1054756)
Backed out changeset c250abf4fd17 (bug 1054756)
Backed out changeset fc9fef646a97 (bug 1054756)
Backed out changeset c8897f109a08 (bug 1177318)
2015-09-23 12:31:19 -07:00
Jason Orendorff
8e474554fe Bug 1054756, part 4 - Remove BaseProxyHandler::defaultValue. r=jandem. 2015-03-20 14:03:24 -05:00
Jeff Walden
9399e8c7de Bug 1179003 - Convert the infallible objectClassIs proxy hook into a fallible getBuiltinClass hook that indicates class type via outparam. r=efaust, r=bz on DOM bits, r=billm on IPC bits 2015-08-28 21:55:40 -07:00
Jeff Walden
ff30226147 Bug 1187234 - Throw a TypeError when Array.isArray is passed a revoked proxy. r=efaust 2015-08-23 01:10:24 -07:00
Tom Schuster
7b89c163c1 Bug 603201 - Change GetProperty receiver argument to Value in JS. r=efaust 2015-09-18 00:14:33 +02:00
Till Schneidereit
8c438b1a94 Bug 1198193 - Change all functions taking CallArgs to take const CallArgs& instead. r=Waldo 2015-08-27 21:18:37 +02:00
Tom Schuster
27867580df Bug 1159347 - Make BaseProxyHandler::getPropertyDescriptor not-pure virtual. r=efaust 2015-04-29 10:47:48 +02:00
Jim Blandy
22de110d65 Bug 1062473: Add 'const' qualifiers to this for some NativeObject methods and free functions. r=terrence 2015-03-11 16:54:11 -07:00
Jan de Mooij
c6596c5fa8 Bug 1144366 - Switch SpiderMonkey and XPConnect style from |T *t| to |T* t|. r=jorendorff 2015-03-28 23:22:11 +01:00
Phil Ringnalda
1a1c158706 Backed out changeset 0c030f97a04f (bug 1144366) for being on top of patches being backed out
CLOSED TREE
2015-03-28 10:39:56 -07:00
Jan de Mooij
369ef1b850 Bug 1144366 - Switch SpiderMonkey and XPConnect style from |T *t| to |T* t|. r=jorendorff 2015-03-28 12:08:37 +01:00
Jason Orendorff
a62fc1c850 Bug 1142794 - Change 'receiver' argument to SetProperty functions and ProxyHandler::set methods to be a HandleValue. r=Waldo.
Also: Change signature of these functions and methods to all have the same arguments in the same order: (cx, obj, id, v, receiver). Also change v from MutableHandleValue to HandleValue.

There is no change in behavior.

In fact the new error message `JSMSG_SET_NON_OBJECT_RECEIVER` is
impossible to trigger from scripts for now, I think (after re-reading
the whole patch with this in mind). JS_ForwardSetPropertyTo is the only
way to get a non-object receiver into the engine, but no caller
currently does so.

We're installing new pipes here, and they should work, but for now it's
the same cold water flowing through as before. Actually hooking up the
hot water is left for another bug (one with tests, not to put too fine a
point on it).

Notes:

*   InvokeGetterOrSetter had to be split into two functions:
    InvokeGetter takes a MutableHandleValue out-param,
    InvokeSetter a HandleValue in-param.

*   Watchpoints can still tamper with values being assigned. So can
    JSSetterOps. I'm pleased we can support this craziness in a way that
    doesn't have to spread via the type system to encompass the entire
    codebase.

*   Change in GlobalObject::setIntrinsicValue is not really a change.
    Yes, it asserted before, but an exception thrown during self-hosting
    initialization is not going to go unnoticed either.

*   Since the receiver argument to js::SetProperty() is at the end now, it
    makes sense for it to be optional. Some callers look nicer.
2015-03-01 13:16:19 -06:00
Jason Orendorff
f8862424e5 Bug 1142784, part 2 - Change ProxyHandler::defineProperty() to make the desc argument a non-mutable handle. r=Waldo. 2015-02-17 11:58:43 -06:00
Phil Ringnalda
2b0920d57e Backed out 9 changesets (bug 1142775, bug 1139683, bug 1143810, bug 1142761, bug 1142784, bug 1142794, bug 1144819) for widespread bustage
CLOSED TREE

Backed out changeset 7613fc978d36 (bug 1142794)
Backed out changeset e5f0cb31263d (bug 1142784)
Backed out changeset dcd0af73ac84 (bug 1142784)
Backed out changeset 034f9c8e79ee (bug 1142784)
Backed out changeset ce0ee37e3ca9 (bug 1142775)
Backed out changeset 1519b8f2bbba (bug 1142761)
Backed out changeset 26fd55677841 (bug 1139683)
Backed out changeset 7ebc76a450c3 (bug 1144819)
Backed out changeset 92adb459d519 (bug 1143810)
2015-03-22 09:34:25 -07:00
Jason Orendorff
f3c165da67 Bug 1142794 - Change 'receiver' argument to SetProperty functions and ProxyHandler::set methods to be a HandleValue. r=Waldo.
Also: Change signature of these functions and methods to all have the same arguments in the same order: (cx, obj, id, v, receiver). Also change v from MutableHandleValue to HandleValue.

There is no change in behavior.

In fact the new error message `JSMSG_SET_NON_OBJECT_RECEIVER` is
impossible to trigger from scripts for now, I think (after re-reading
the whole patch with this in mind). JS_ForwardSetPropertyTo is the only
way to get a non-object receiver into the engine, but no caller
currently does so.

We're installing new pipes here, and they should work, but for now it's
the same cold water flowing through as before. Actually hooking up the
hot water is left for another bug (one with tests, not to put too fine a
point on it).

Notes:

*   InvokeGetterOrSetter had to be split into two functions:
    InvokeGetter takes a MutableHandleValue out-param,
    InvokeSetter a HandleValue in-param.

*   Watchpoints can still tamper with values being assigned. So can
    JSSetterOps. I'm pleased we can support this craziness in a way that
    doesn't have to spread via the type system to encompass the entire
    codebase.

*   Change in GlobalObject::setIntrinsicValue is not really a change.
    Yes, it asserted before, but an exception thrown during self-hosting
    initialization is not going to go unnoticed either.

*   Since the receiver argument to js::SetProperty() is at the end now, it
    makes sense for it to be optional. Some callers look nicer.
2015-03-01 13:16:19 -06:00
Jason Orendorff
0c2cf8be27 Bug 1142784, part 2 - Change ProxyHandler::defineProperty() to make the desc argument a non-mutable handle. r=Waldo. 2015-02-17 11:58:43 -06:00
Ehsan Akhgari
ea41d8de48 Bug 1145631 - Part 1: Replace MOZ_OVERRIDE and MOZ_FINAL with override and final in the tree; r=froydnj
This patch was automatically generated using the following script:

function convert() {
echo "Converting $1 to $2..."
find . \
       ! -wholename "*/.git*" \
       ! -wholename "obj-ff-dbg*" \
         -type f \
      \( -iname "*.cpp" \
         -o -iname "*.h" \
         -o -iname "*.c" \
         -o -iname "*.cc" \
         -o -iname "*.idl" \
         -o -iname "*.ipdl" \
         -o -iname "*.ipdlh" \
         -o -iname "*.mm" \) | \
    xargs -n 1 sed -i -e "s/\b$1\b/$2/g"
}

convert MOZ_OVERRIDE override
convert MOZ_FINAL final
2015-03-21 12:28:04 -04:00
Jason Orendorff
7fdeaf63be Bug 1113369, part 7 - [[SetPrototypeOf]] ObjectOpResult support. r=Waldo, r=bz in dom, r=dvander in js/ipc, r=bholley in js/xpconnect. 2015-02-05 16:36:50 -06:00
Jason Orendorff
6e6ba315a5 Bug 1113369, part 6 - [[PreventExtensions]] ObjectOpResult support. r=Waldo, r=bz in dom, r=dvander in js/ipc, r=bholley in js/xpconnect. 2015-02-04 12:01:01 -06:00
Jason Orendorff
20beb2cc48 Bug 1113369, part 5 - [[Delete]] ObjectOpResult support. r=Waldo, r=bz in dom, r=dvander in js/ipc, r=bholley in js/xpconnect. 2015-02-04 10:20:04 -06:00
Jason Orendorff
b180889659 Bug 1113369, part 4 - [[Set]] ObjectOpResult support. r=Waldo, r=bz in dom, r=dvander in js/ipc, r=bholley in js/xpconnect. 2015-02-03 19:51:40 -06:00
Jason Orendorff
1d3bb8fb3d Bug 1113369, part 3 - [[DefineOwnProperty]] ObjectOpResult support. r=Waldo, r=bz in dom, r=dvander in js/ipc, r=bholley in js/xpconnect.
Add an ObjectOpResult out-param for DefineProperty functions everywhere. We leave a few js::DefineProperty() convenience functions with no *result out-param. These have strict behavior: that is, they automatically check the result and throw if it is false. In bug 1125624 these strict signatures may end up being called DefinePropertyOrThrow, as that is what the spec calls it.
2015-01-30 11:37:07 -06:00
Jan de Mooij
b3f1ff13a2 Bug 1137523 - Unprefix most js_* functions. r=bhackett CLOSED TREE 2015-02-27 16:08:15 +01:00
Boris Zbarsky
316d6bea29 Bug 1136925 part 3. Stop passing parents to js::NewProxyObject. r=waldo 2015-02-26 15:58:59 -05:00
Wes Kocher
64ff21e8a1 Backed out 4 changesets (bug 1136925) for potentially busting m-e10s-dt on a CLOSED TREE
Backed out changeset 331761aaae22 (bug 1136925)
Backed out changeset 2faa0e91fe23 (bug 1136925)
Backed out changeset a00f2530c911 (bug 1136925)
Backed out changeset d5e658bc0792 (bug 1136925)
2015-02-26 23:17:34 -08:00
Boris Zbarsky
c3a0cd16a1 Bug 1136925 part 3. Stop passing parents to js::NewProxyObject. r=waldo 2015-02-26 15:58:59 -05:00
Xidorn Quan
e45d1d271c Bug 1135535 part 4 - Fix C4275 dll-interface warning and mark this warning as error in js/src on MSVC. r=luke
Fix warning:
js\src\jswrapper.h(58) : error C4275: non dll-interface class 'js::DirectProxyHandler' used as base for dll-interface class 'js::Wrapper'
        obj-firefox\dist\include\js/Proxy.h(358) : see declaration of 'js::DirectProxyHandler'
        js\src\jswrapper.h(57) : see declaration of 'js::Wrapper'
2015-02-25 15:26:23 +11:00
Tom Schuster
34ccb29137 Bug 1131003 - Move jsproxy.h to js/Proxy.h. r=efaust 2015-02-10 19:58:18 +01:00