Граф коммитов

96 Коммитов

Автор SHA1 Сообщение Дата
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
Ehsan Akhgari 883849ee32 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 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
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
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 bf48f46a72 Bug 1082672, part 3 - Add some more symbol support for DOM bindings. r=bz.
--HG--
extra : rebase_source : 79b314cb464e9c77ac25bc19e91b6e13aa241aeb
2014-10-06 16:42:33 -05: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
Jason Orendorff d35e6d1e8d 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.

--HG--
extra : rebase_source : 35fb0fa3c8f3d7bc952409ea8c584e58f3c1d78f
2014-09-26 15:16:36 -05:00
Ms2ger fb0de08341 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 d126c3c24f Bug 1063962 - Replace jschar typedef with C++11 char16_t type. r=jandem 2014-07-21 21:43:21 -07:00
Eric Faust db3773210b Bug 1027425 - Make all Proxy handler constructors use MOZ_CONSTEXPR. (r=bz, r=froydnj) 2014-08-28 13:47:16 -07:00
Eric Faust 11375e15fd Bug 1027964 - Standardize proxy handler families. (r=jorendorff) 2014-08-27 17:09:06 -07:00
Boris Zbarsky b1c1e22da4 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 c8380d74dd Bug 1045067 - Fix some bad implicit constructors in dom/content/ipc; r=smaug 2014-07-28 13:17:51 -04:00
Jan de Mooij 2df19d3cf9 Bug 1032726 part 2 - Make GetArrayIndexFromId work with Latin1 strings. r=bz,terrence
--HG--
extra : rebase_source : b6f8fe3df3946dfe05f5467c22c4fb157b6dcbf2
2014-07-02 15:45:02 +02:00
Eric Faust 19ae308309 Bug 1027402 - Part 4: Mark Proxy Handler uses const. (r=jorendorff, r=bz) 2014-06-27 04:44:08 -07:00
Eric Faust 04ec29520a Bug 1027402 - Part 3: Mark all Proxy Handler methods const. (r=jorendorff, r=bz) 2014-06-27 04:44:06 -07:00
Eric Faust d6d3b525f2 Bug 1027402 - Part 1: Remove set* from BaseProxyHandler. (r=bholley) 2014-06-27 04:44:02 -07:00
Carsten "Tomcat" Book e4f5e9f3a3 Backed out changeset 2c6403818106 (bug 1027402) for bustage on a CLOSED TREE 2014-06-27 14:21:46 +02:00
Carsten "Tomcat" Book 76beb8d59f Backed out changeset 285c853fedfa (bug 1027402) 2014-06-27 14:21:20 +02:00
Carsten "Tomcat" Book 0c7ea5265d Backed out changeset 96443362db6f (bug 1027402) 2014-06-27 14:21:17 +02:00
Eric Faust 6f7e434c6b Bug 1027402 - Part 4: Mark Proxy Handler uses const. (r=jorendorff, r=bz) 2014-06-27 04:44:08 -07:00
Eric Faust 62d61ccf3f Bug 1027402 - Part 3: Mark all Proxy Handler methods const. (r=jorendorff, r=bz) 2014-06-27 04:44:06 -07:00
Eric Faust 89bdda2ed7 Bug 1027402 - Part 1: Remove set* from BaseProxyHandler. (r=bholley) 2014-06-27 04:44:02 -07:00
Eric Faust f9d65507e2 Bug 1011660 - Remove separate DOMClass struct. (r=bz) 2014-06-18 13:19:19 -07:00
Jason Orendorff 6e21c723d2 Bug 547140, part 2 - Remove flags argument from JS_GetPropertyDescriptor and friends. r=Waldo. 2014-04-25 16:11:01 -05:00
Jason Orendorff 9506ae5eab Bug 987007, part 2a - Instead of generating identical DOMProxyHandler::set() methods for many interfaces, implement it in a common base class. r=bz.
--HG--
extra : rebase_source : 15e81591de2a7c07b34a23143b876feadc2d7a1e
2014-04-25 15:07:18 -05:00
Jason Orendorff f66a185e68 Bug 987007, part 2 - Handle assignment to named and indexed setters without using JSRESOLVE_ASSIGNING. r=bz, r=bholley.
--HG--
extra : rebase_source : a26eb85a086a18219a4d423cd7ad49a92cfd2584
2014-04-25 15:07:18 -05:00
Boris Zbarsky 9c3392475d 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 ad59a21b39 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 c3916e0699 Bug 973780 - Remove Xray expando slot from new-binding objects. r=bz 2014-02-21 11:35:49 -08:00
Luke Wagner b1325de739 Bug 797126 - Remove tinyid/shortid/userid (r=terrence)
--HG--
extra : rebase_source : d3cee5e71ca02708e91419b209b5914ce9fd2f9f
2014-02-21 10:24:26 -06:00
Phil Ringnalda 01ad150169 Back out 0f5f58d5d410:8db4d719f5f8 (bug 973780) for debug WinXP mochitest-3 assertions
CLOSED TREE
2014-02-20 20:46:50 -08:00
Bobby Holley 04c9e8266a Bug 973780 - Remove Xray expando slot from new-binding objects. r=bz 2014-02-20 18:24:10 -08:00