Commit graph

71 commits

Author SHA1 Message Date
Jan de Mooij
b066365085 Bug 1292892 part 7 - Remove unnecessary JSContext arguments from IPC classes. r=bz 2016-08-11 14:39:23 +02:00
Jan de Mooij
0ad12515f4 Bug 1292892 part 1 - Stop using JSRuntime outside SpiderMonkey. r=bz,terrence,fitzgen,kanru 2016-08-11 14:39:22 +02:00
Tom Schuster
4455e57052 Bug 1114580 - Change ESClassValue to an enum class. r=jorendorff 2016-06-30 00:04:56 +02:00
Jeff Walden
56d59777fd Bug 888969 - Make the getPrototypeOf/setPrototypeOf traps scriptable. r=efaust, r=bholley
--HG--
extra : rebase_source : 4a19f3a59e9a5935f8a41f2928b74c0af3947942
2016-02-23 13:42:30 -08:00
Tom Schuster
180499c4ff Bug 1242214 - Rename JSPropertyDescriptor JS::PropertyDescriptor in js. r=sstangl 2016-01-28 11:28:04 +01:00
Bill McCloskey
35328ff29a Bug 1215167 - Forbid unsafe browser CPOWs (disabled by default for now) (r=mrbkap) 2015-11-05 13:17:04 -08:00
Wes Kocher
cad6f9789a Backed out changeset 89446bf8d6b8 (bug 1215167) for introducing a hazard
--HG--
extra : commitid : 19K8BX0d4Wz
2015-11-04 16:16:59 -08:00
Bill McCloskey
ac2ca63fc1 Bug 1215167 - Forbid unsafe browser CPOWs (disabled by default for now) (r=mrbkap) 2015-11-04 13:40:15 -08:00
Jeff Walden
4046fe1490 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
--HG--
extra : rebase_source : 6ddc3727c411fdfced6338e5e383a10572575f0f
2015-08-28 21:55:40 -07:00
Jeff Walden
65b65a4999 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
e3fbb8bc43 Bug 603201 - Change GetProperty receiver argument to Value in the browser. r=smaug 2015-09-18 00:14:41 +02:00
Birunthan Mohanathas
a8939590de Bug 1182996 - Fix and add missing namespace comments. rs=ehsan
The bulk of this commit was generated by running:

  run-clang-tidy.py \
    -checks='-*,llvm-namespace-comment' \
    -header-filter=^/.../mozilla-central/.* \
    -fix
2015-07-13 08:25:42 -07:00
Jan de Mooij
b8b1677f0f 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
c8a25251c1 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
8d6d44ecb8 Bug 1144366 - Switch SpiderMonkey and XPConnect style from |T *t| to |T* t|. r=jorendorff 2015-03-28 12:08:37 +01:00
Blake Kaplan
a9a16182e7 Bug 1145854 - Don't leak WrapperOwner::className's string. r=billm 2015-03-27 13:12:37 -07:00
Jason Orendorff
1def388b28 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.

--HG--
extra : rebase_source : e89f916fe267800bc73890e11aceef5c4855b272
2015-03-01 13:16:19 -06:00
Jason Orendorff
2e5f991fe0 Bug 1142784, part 2 - Change ProxyHandler::defineProperty() to make the desc argument a non-mutable handle. r=Waldo.
--HG--
extra : rebase_source : c40a50b3522e8306d68d8114fe576d4f43006d82
2015-02-17 11:58:43 -06:00
Phil Ringnalda
c4745d28b1 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
735dca6f1b 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.

--HG--
extra : rebase_source : 68cd15627a62728061e663706cb1ff8c7bb292a0
2015-03-01 13:16:19 -06:00
Jason Orendorff
db04193771 Bug 1142784, part 2 - Change ProxyHandler::defineProperty() to make the desc argument a non-mutable handle. r=Waldo.
--HG--
extra : rebase_source : 92dd18b10e100e7e2537c151a21d4f3be37e1c08
2015-02-17 11:58:43 -06:00
Blake Kaplan
3ae54c5cdb Bug 1134006 - Avoid IPC for domElement.QueryInterface(nsISupports) and nsIClassInfo. r=billm
--HG--
extra : rebase_source : cd3ce71089e89c512c0cc04fb49c666e5fab5117
2015-03-10 14:36:01 -07:00
Carsten "Tomcat" Book
bd447688dc Backed out changeset 6c7ebb2f5a92 (bug 1134006) for bustage 2015-03-10 12:37:24 +01:00
Blake Kaplan
318dc8ec77 Bug 1134006 - Avoid IPC for domElement.QueryInterface(nsISupports) and nsIClassInfo. r=billm 2015-03-09 15:01:00 +01:00
Jason Orendorff
f9c659ca6c Bug 1113369, part 7 - [[SetPrototypeOf]] ObjectOpResult support. r=Waldo, r=bz in dom, r=dvander in js/ipc, r=bholley in js/xpconnect.
--HG--
extra : rebase_source : e712f5faf1463a447e52153c556605bb9552e990
2015-02-05 16:36:50 -06:00
Jason Orendorff
29bfe274bb Bug 1113369, part 6 - [[PreventExtensions]] ObjectOpResult support. r=Waldo, r=bz in dom, r=dvander in js/ipc, r=bholley in js/xpconnect.
--HG--
extra : rebase_source : 08631a46c776f6d9e60794ad61308240dde3d94d
2015-02-04 12:01:01 -06:00
Jason Orendorff
cc85989b86 Bug 1113369, part 5 - [[Delete]] ObjectOpResult support. r=Waldo, r=bz in dom, r=dvander in js/ipc, r=bholley in js/xpconnect.
--HG--
extra : rebase_source : 64b0e44bbb7673d139fab920243566db4844b517
2015-02-04 10:20:04 -06:00
Jason Orendorff
9a17368e8e Bug 1113369, part 4 - [[Set]] ObjectOpResult support. r=Waldo, r=bz in dom, r=dvander in js/ipc, r=bholley in js/xpconnect.
--HG--
extra : rebase_source : ee44b9a7c933addd7f26643443900843b984587b
2015-02-03 19:51:40 -06:00
Jason Orendorff
de9e3b99dc 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.

--HG--
extra : rebase_source : 36439a8fa433c453f63b02c93fceaf0d8b9e9626
2015-01-30 11:37:07 -06:00
Tom Schuster
fcb11bbe71 Bug 1131003 - Move jsproxy.h to js/Proxy.h. r=efaust
--HG--
rename : js/src/jsproxy.h => js/public/Proxy.h
2015-02-10 19:58:18 +01:00
Gabor Krizsanits
ceab21eca3 Bug 1090592 - GetPrototypeOf hook for CPOWProxyHandler. r=billm 2015-02-10 16:29:41 +01:00
Bill McCloskey
2f3d90830b Bug 1123461 - Make a real interface for js/ipc (r=dvander) 2015-01-26 13:32:18 -08:00
Tom Schuster
7ed0e36ad2 Bug 783829 - Remove getEnumerablePropertyKeys. r=efaust,bholley 2014-12-17 00:28:38 +01:00
Tom Schuster
f834688bbc Bug 783829 - Change from Proxy iterate to enumerate. r=efaust,bholley 2014-12-17 00:28:38 +01:00
Tom Schuster
12ee966a97 Bug 783829 - Rename Proxy enumerate trap to getEnumerablePropertyKeys. r=efaust 2014-11-14 16:21:12 +01:00
Bill McCloskey
7cf195d449 Bug 1091970 - [e10s] Cache object tag in add-on shims for remote objects (r=mrbkap) 2014-11-04 17:40:08 -08:00
Bill McCloskey
6ed288e283 Bug 1091964 - [e10s] Cache isCallable and isConstructor for CPOWs (r=mrbkap) 2014-11-04 17:39:34 -08:00
Carsten "Tomcat" Book
055ba5a88c Backed out changeset 5992aea01aff (bug 1091964) 2014-11-05 10:03:06 +01:00
Carsten "Tomcat" Book
e3f684b7a3 Backed out changeset 38ca6211d1d4 (bug 1091970) 2014-11-05 10:02:59 +01:00
Bill McCloskey
fe30fe6fd9 Bug 1091970 - [e10s] Cache object tag in add-on shims for remote objects (r=mrbkap) 2014-11-04 17:40:08 -08:00
Bill McCloskey
5270447ff4 Bug 1091964 - [e10s] Cache isCallable and isConstructor for CPOWs (r=mrbkap) 2014-11-04 17:39:34 -08:00
Jeff Walden
0855b78393 Bug 1052139 - Reorder the preventExtensions trap just after the [[Prototype]]-access traps. r=code-motion
--HG--
extra : rebase_source : ea85bf1daa26ec7a32caf2656ebf99c6e2757cfa
2014-10-21 11:40:04 -07:00
Jeff Walden
777c2ff26e Bug 1085566 - Make the preventExtensions hook return succeeded/failed rather than always indicate failure by reporting an error. r=efaust
--HG--
extra : rebase_source : 487b569d23ce18f39fc53697e5f25cc789885803
2014-10-19 01:18:43 -07:00
Carsten "Tomcat" Book
fcc0eb1e30 Backed out changeset 9e900e87b4bb (bug 1085566) 2014-10-22 08:59:09 +02:00
Carsten "Tomcat" Book
aca347b75c Backed out changeset 4eee647a5bd4 (bug 1052139) 2014-10-22 08:59:05 +02:00
Jeff Walden
b012538ad3 Bug 1052139 - Reorder the preventExtensions trap just after the [[Prototype]]-access traps. r=code-motion
--HG--
extra : rebase_source : 18f69552bad6922c1b602cbf81d6961883e4d5b8
2014-10-21 11:40:04 -07:00
Jeff Walden
1d2a7aa6cd Bug 1085566 - Make the preventExtensions hook return succeeded/failed rather than always indicate failure by reporting an error. r=efaust
--HG--
extra : rebase_source : 3b61c22efe8b5b2b3135b11556b6b329479d3dcd
2014-10-19 01:18:43 -07:00
Jason Orendorff
ea94038f6d Bug 1081280 - Rename BaseProxyHandler::keys -> getOwnEnumerablePropertyKeys. r=efaust.
--HG--
extra : rebase_source : 009323b607d53066b77191f9254918b61ea4d594
2014-10-08 22:01:55 -05:00
Jason Orendorff
87d538f309 Bug 1081255 - Rewrite comments in jsproxy.h; reclassify the methods a bit. No change in behavior. r=efaust, r=bz, r=jwalden.
--HG--
extra : rebase_source : b3440548322d65b2bd01862fb863e6197eb263c6
2014-10-08 12:09:08 -05:00
Tom Schuster
bfd10d6554 Bug 1071177 - Support symbol keys and throw exception on unique symbols with CPOWs. r=billm 2014-10-16 18:39:38 +02:00