Commit Graph

98 Commits

Author SHA1 Message Date
Andrew McCreight
92010d3e4c Bug 1152551, part 2 - Fix mode lines in dom/. r=jst 2015-05-03 15:32:37 -04:00
Tom Schuster
27867580df Bug 1159347 - Make BaseProxyHandler::getPropertyDescriptor not-pure virtual. r=efaust 2015-04-29 10:47:48 +02: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
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
Tom Schuster
34ccb29137 Bug 1131003 - Move jsproxy.h to js/Proxy.h. r=efaust 2015-02-10 19:58:18 +01:00
Tom Schuster
147cbd415a Bug 783829 - Remove getEnumerablePropertyKeys. r=efaust,bholley 2014-12-17 00:28:38 +01:00
Tom Schuster
a3bf7d8937 Bug 783829 - Change from Proxy iterate to enumerate. r=efaust,bholley 2014-12-17 00:28:38 +01:00
Tom Schuster
892aa58156 Bug 783829 - Rename Proxy enumerate trap to getEnumerablePropertyKeys. r=efaust 2014-11-14 16:21:12 +01:00
Jeff Walden
33ab4b19be Bug 1052139 - Reorder the preventExtensions trap just after the [[Prototype]]-access traps. r=code-motion 2014-10-21 11:40:04 -07:00
Jeff Walden
7eab2a3226 Bug 1085566 - Make the preventExtensions hook return succeeded/failed rather than always indicate failure by reporting an error. r=efaust 2014-10-19 01:18:43 -07:00
Carsten "Tomcat" Book
77dee816cc Backed out changeset 9e900e87b4bb (bug 1085566) 2014-10-22 08:59:09 +02:00
Carsten "Tomcat" Book
6b7490c4d7 Backed out changeset 4eee647a5bd4 (bug 1052139) 2014-10-22 08:59:05 +02:00
Jeff Walden
5ca615d0c4 Bug 1052139 - Reorder the preventExtensions trap just after the [[Prototype]]-access traps. r=code-motion 2014-10-21 11:40:04 -07:00
Jeff Walden
58c90aac1c Bug 1085566 - Make the preventExtensions hook return succeeded/failed rather than always indicate failure by reporting an error. r=efaust 2014-10-19 01:18:43 -07:00
Jason Orendorff
fda75dcacb Bug 1082672, part 3 - Add some more symbol support for DOM bindings. r=bz. 2014-10-06 16:42:33 -05:00
Jason Orendorff
74f6308ca4 Bug 1081280 - Rename BaseProxyHandler::keys -> getOwnEnumerablePropertyKeys. r=efaust. 2014-10-08 22:01:55 -05:00
Jason Orendorff
5fa7cf9d3a Bug 1081255 - Rewrite comments in jsproxy.h; reclassify the methods a bit. No change in behavior. r=efaust, r=bz, r=jwalden. 2014-10-08 12:09:08 -05:00
Jason Orendorff
5823a20a9a Bug 1026918, part 1 - Rename BaseProxyHandler::getOwnPropertyNames -> ownPropertyKeys to match the ES6 [[OwnPropertyKeys]] internal method. r=efaust, r=bz.
Also renamed in this patch:

ENUMERATE_IF_DEFINED -> ADD_KEYS_IF_DEFINED
XrayEnumerateAttributesOrMethods -> XrayAttributeOrMethodKeys
XrayEnumerateNativeProperties -> XrayOwnNativePropertyKeys
XrayEnumerateProperties -> XrayOwnPropertyKeys
WrapperOwner::getPropertyNames -> getPropertyKeys

These make sense because JSITER_* flags are involved; the functions in
question are not for finding enumerable properties only.
2014-09-26 15:16:36 -05:00
Ms2ger
1d17edaba2 No bug - Add documentation about the JSPROXYSLOT_EXPANDO slot; r=bz over IRC a=KWierso to land with DONTBUILD on a CLOSED TREE. 2014-10-01 23:05:54 +02:00
Chris Peterson
def5e6780e Bug 1063962 - Replace jschar typedef with C++11 char16_t type. r=jandem 2014-07-21 21:43:21 -07:00
Eric Faust
e24e711dc5 Bug 1027425 - Make all Proxy handler constructors use MOZ_CONSTEXPR. (r=bz, r=froydnj) 2014-08-28 13:47:16 -07:00
Eric Faust
eb76d911cb Bug 1027964 - Standardize proxy handler families. (r=jorendorff) 2014-08-27 17:09:06 -07:00
Boris Zbarsky
8ac66c86d8 Bug 1043690 part 2. Change the codegen for DOM proxies to ignore named props when looking up property descriptors on [[Set]]. r=efaust 2014-08-01 23:37:14 -04:00
Ehsan Akhgari
d4de10d6c7 Bug 1045067 - Fix some bad implicit constructors in dom/content/ipc; r=smaug 2014-07-28 13:17:51 -04:00
Jan de Mooij
270ee19b48 Bug 1032726 part 2 - Make GetArrayIndexFromId work with Latin1 strings. r=bz,terrence 2014-07-02 15:45:02 +02:00
Eric Faust
fdb84be9f3 Bug 1027402 - Part 4: Mark Proxy Handler uses const. (r=jorendorff, r=bz) 2014-06-27 04:44:08 -07:00
Eric Faust
122811aa1e Bug 1027402 - Part 3: Mark all Proxy Handler methods const. (r=jorendorff, r=bz) 2014-06-27 04:44:06 -07:00
Eric Faust
abf1be407c Bug 1027402 - Part 1: Remove set* from BaseProxyHandler. (r=bholley) 2014-06-27 04:44:02 -07:00
Carsten "Tomcat" Book
226c1ea9df Backed out changeset 2c6403818106 (bug 1027402) for bustage on a CLOSED TREE 2014-06-27 14:21:46 +02:00
Carsten "Tomcat" Book
6d91e7ccb9 Backed out changeset 285c853fedfa (bug 1027402) 2014-06-27 14:21:20 +02:00
Carsten "Tomcat" Book
729d8ef5a3 Backed out changeset 96443362db6f (bug 1027402) 2014-06-27 14:21:17 +02:00
Eric Faust
d9eb770555 Bug 1027402 - Part 4: Mark Proxy Handler uses const. (r=jorendorff, r=bz) 2014-06-27 04:44:08 -07:00
Eric Faust
7c512d564b Bug 1027402 - Part 3: Mark all Proxy Handler methods const. (r=jorendorff, r=bz) 2014-06-27 04:44:06 -07:00
Eric Faust
593b6e3f34 Bug 1027402 - Part 1: Remove set* from BaseProxyHandler. (r=bholley) 2014-06-27 04:44:02 -07:00
Eric Faust
570830c1d0 Bug 1011660 - Remove separate DOMClass struct. (r=bz) 2014-06-18 13:19:19 -07:00
Jason Orendorff
d3d65bb33a Bug 547140, part 2 - Remove flags argument from JS_GetPropertyDescriptor and friends. r=Waldo. 2014-04-25 16:11:01 -05:00
Jason Orendorff
f08d9d6a0c Bug 987007, part 2a - Instead of generating identical DOMProxyHandler::set() methods for many interfaces, implement it in a common base class. r=bz. 2014-04-25 15:07:18 -05:00
Jason Orendorff
56e94c837d Bug 987007, part 2 - Handle assignment to named and indexed setters without using JSRESOLVE_ASSIGNING. r=bz, r=bholley. 2014-04-25 15:07:18 -05:00
Boris Zbarsky
829f8e8296 Bug 843840 part 2. Add a way to ask DOM proxies for only their enumerable property names, and use that in the enumerate hook. r=peterv 2014-04-15 22:58:44 -04:00
Boris Zbarsky
2cf1c7125d Bug 843840 part 1. Add a way to ask DOM proxies with a named getter whether a property is enumerable or not and use that information in getOwnPropertyDescriptor. r=peterv 2014-04-15 22:58:44 -04:00
Bobby Holley
911ee5ac4c Bug 973780 - Remove Xray expando slot from new-binding objects. r=bz 2014-02-21 11:35:49 -08:00
Luke Wagner
05c3cb3e42 Bug 797126 - Remove tinyid/shortid/userid (r=terrence) 2014-02-21 10:24:26 -06:00