Commit Graph

4466 Commits

Author SHA1 Message Date
Jason Orendorff
d28f3fee83 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
Brian Hackett
1a5b452e6a Bug 1143256 - Store object metadata using a weak map, r=luke. 2015-03-25 09:07:51 -07:00
Terrence Cole
ef0a198902 Bug 1135985 - Split callback and marking tracers completely; r=jonco, r=mccr8 2015-02-25 13:11:37 -08:00
Jason Orendorff
56c8d75dff Bug 1143810 - Remove some XPConnect JSClass::setProperty hooks that are not needed anymore. r=bholley. 2015-03-13 14:43:48 -05:00
Phil Ringnalda
8a89e647fd 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
60373a960b 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
6b90d382df 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
Jason Orendorff
5d6634efc1 Bug 1143810 - Remove some XPConnect JSClass::setProperty hooks that are not needed anymore. r=bholley. 2015-03-13 14:43:48 -05:00
Ehsan Akhgari
33bb32f549 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
Ryan VanderMeulen
909711667c Backed out changeset d3c9b899f7d2 (bug 1143256) for frequent browser_perf-refresh.js leaks. 2015-03-20 16:07:42 -04:00
Brian Hackett
3729221e19 Bug 1143256 - Store object metadata using a weak map, r=luke. 2015-03-20 06:33:33 -07:00
Boris Zbarsky
985513ef44 Bug 1144743 part 3. Set hasPollutedGlobalScope when we're compiling scripts we know will be executed with a non-global scope without cloning them. r=luke 2015-03-20 00:34:07 -04:00
Tom Schuster
308ff4d0ec Bug 837630 - Stop hiding __proto__ from O.getOwnPropertyNames. r=Waldo,peterv,past 2015-03-19 17:42:15 +01:00
Boris Zbarsky
0202d1a774 Bug 1143793 part 6. Drop the obj argument of JS::Compile. r=luke
This is technically a behavior change for the shell's disfile() function, but
I really doubt anyone is doing disfile.call(someObj).
2015-03-19 10:13:34 -04:00
Boris Zbarsky
f0a4481730 Bug 1143793 part 4. Stop supporting load.call(somerandomobj) in xpcshell. r=bholley
I guess I should have done this in bug 1097987.
2015-03-19 10:13:34 -04:00
Boris Zbarsky
3550ddd74e Bug 1143793 part 1. Remove the obj argument of JS_CompileScript. r=luke 2015-03-19 10:13:33 -04:00
Boris Zbarsky
54c64f20a9 Bug 1117172 part 3. Change the wrappercached WrapObject methods to allow passing in aGivenProto. r=peterv
The only manual changes here are to BindingUtils.h, BindingUtils.cpp,
Codegen.py, Element.cpp, IDBFileRequest.cpp, IDBObjectStore.cpp,
dom/workers/Navigator.cpp, WorkerPrivate.cpp, DeviceStorageRequestChild.cpp,
Notification.cpp, nsGlobalWindow.cpp, MessagePort.cpp, nsJSEnvironment.cpp,
Sandbox.cpp, XPCConvert.cpp, ExportHelpers.cpp, and DataStoreService.cpp.  The
rest of this diff was generated by running the following commands:

  find . -name "*.h" -o -name "*.cpp" | xargs perl -pi -e 'BEGIN { $/ = undef } s/(WrapObjectInternal\(JSContext *\* *(?:aCx|cx|aContext|aCtx|js))\)/\1, JS::Handle<JSObject*> aGivenProto)/g'

  find . -name "*.h" -o -name "*.cpp" | xargs perl -pi -e 'BEGIN { $/ = undef } s/(WrapObjectInternal\((?:aCx|cx|aContext|aCtx|js))\)/\1, aGivenProto)/g'

  find . -name "*.h" -o -name "*.cpp" | xargs perl -pi -e 'BEGIN { $/ = undef } s/(WrapNode\(JSContext *\* *(?:aCx|cx|aContext|aCtx|js))\)/\1, JS::Handle<JSObject*> aGivenProto)/g'

  find . -name "*.h" -o -name "*.cpp" | xargs perl -pi -e 'BEGIN { $/ = undef } s/(WrapNode\((?:aCx|cx|aContext|aCtx|js))\)/\1, aGivenProto)/g'

  find . -name "*.h" -o -name "*.cpp" | xargs perl -pi -e 'BEGIN { $/ = undef } s/(WrapObject\(JSContext *\* *(?:aCx|cx|aContext|aCtx|js))\)/\1, JS::Handle<JSObject*> aGivenProto)/g'

  find . -name "*.h" -o -name "*.cpp" | xargs perl -pi -e 'BEGIN { $/ = undef } s/(Binding(?:_workers)?::Wrap\((?:aCx|cx|aContext|aCtx|js), [^,)]+)\)/\1, aGivenProto)/g'
2015-03-19 10:13:33 -04:00
Andrew McCreight
4e3fcea818 Bug 1143760 - Do a tiny amount of code duplication to avoid a goto in XPCVariant::VariantDataToJS(). r=bholley 2015-03-18 11:36:04 -07:00
Andrew McCreight
f0b7c05cd7 Bug 1142717, part 5 - Eliminate XPC_WRAPPED_NATIVE_TEAROFFS_PER_CHUNK. r=bholley
This has been 1 since the what looks like the initial landing in 2001, so clearly we don't need this generality.
2015-03-18 11:36:04 -07:00
Andrew McCreight
57d42f4866 Bug 1142717, part 4 - Add MOZ_COUNT_CTOR/DTOR for XPCWrappedNativeTearOff. r=bholley 2015-03-18 11:36:03 -07:00
Andrew McCreight
f66e0a7b52 Bug 1142717, part 3 - Make XPCWrappedNativeTearOff::mNative a smart pointer. r=bholley 2015-03-18 11:36:03 -07:00
Andrew McCreight
f471f5ff55 Bug 1142717, part 2b - Rename obj to qiResult in InitTearOff. r=bholley 2015-03-18 11:36:03 -07:00
Andrew McCreight
c797fd39b0 Bug 1142717, part 2 - Use nsRefPtr for obj in XPCWrappedNative::InitTearOff. r=bholley 2015-03-18 11:36:03 -07:00
Andrew McCreight
2461682a28 Bug 1142717, part 1 - Remove unused forward declaration of xpc_GetJSPrivate. r=bholley 2015-03-18 11:36:03 -07:00
Andrew McCreight
c34850707a Bug 1137536, part 3 - Move the top level DeferredFinalize functions into their own file. r=smaug 2015-03-18 11:36:03 -07:00
Andrew McCreight
fa747a90b0 Bug 1137536, part 2 - Make sure every file that uses an nsCycleCollector_ function includes nsCycleCollector.h. r=smaug
This will let us remove it from headers after we split out DeferredFinalize into its own header.
2015-03-18 11:36:03 -07:00
Andrew McCreight
0f7082e12b Bug 1137536, part 1 - Move DeferredFinalize out of the cyclecollector namespace. r=smaug 2015-03-18 11:36:03 -07:00
Andrew McCreight
46d0306d6d Bug 1143938 - Add listener argument to Components.utils.forceCC. r=smaug 2015-03-18 11:36:03 -07:00
Tooru Fujisawa
08010485eb Bug 1079919 - Part 4: Add Xray test for RegExp.prototype.toString. r=bholley 2015-03-18 18:22:05 +09:00
Tooru Fujisawa
2cd1c1bfda Bug 1079919 - Part 1: Support RegExp in Xray. r=bholley 2015-03-18 18:22:05 +09:00
Boris Zbarsky
f8e0ebdf55 Bug 1097987 part 7. Require callers of JS::Evaluate to either use the global as the scope or pass in an explicit scopechain. r=waldo 2015-03-14 01:36:16 -04:00
Boris Zbarsky
9bdcb642ba Bug 1097987 part 6. Require callers of JS_ExecuteScript to either use the global as the scope or pass in an explicit scopechain. r=waldo 2015-03-14 01:36:16 -04:00
Boris Zbarsky
5988272640 Bug 1097987 part 5. Change XPCShellImpl to use the scopechain version of JS_ExecuteScript as needed. r=bholley 2015-03-14 01:36:16 -04:00
Boris Zbarsky
24cd3ff0d2 Bug 1097987 part 4. Change mozJSSubScriptLoader to use the scopechain version of JS_ExecuteScript as needed. r=bholley 2015-03-14 01:36:16 -04:00
Jason Orendorff
3c188fc686 Bug 1133081, part 5 - Remove non-asserting PropertyDescriptor accessors in favor of the new PropDesc-inspired asserting accessors. r=efaust.
value() can't assert hasValue() because too many places have plausible reasons for calling it on a PropertyDescriptor they basically know nothing about. One such place is CompartmentChecker::check(Handle<JSPropertyDescriptor>). Another is DefinePropertyByDescriptor. Maybe this will change with time.

In some cases we do things like `desc.hasWritable() && desc.writable() != existing_desc.writable()`. It is OK to write it this way, even though we have not checked existing_desc.hasWritable(), because in these cases we already know existingDesc is a complete property descriptor.
2015-02-15 06:18:30 -06:00
Jonathan Griffin
84011a87cc Bug 1116187 - Disable failing mochitest-chrome tests for B2G, r=gbrown 2015-02-06 16:30:37 -08:00
Jason Orendorff
69a35609b0 Bug 1133294 - Object.getOwnPropertyDescriptor(obj, key) must always return either undefined or a complete property descriptor, even if obj is a proxy. r=efaust. 2015-02-15 02:49:42 -06:00
Hiroyuki Ikezoe
dc9e8a7592 Bug 751387 - Fix crash caused by out-of-bounds accesses in command line options handling. r=bholley 2015-03-12 01:37:00 -04:00
Yoshi Huang
44ca356ca2 Bug 1138886 - Structured Clone for MozNDEFRecord. r=smaug
From 9b1bdef0b25b41d0448662ec689a961ae4e8fcd2 Mon Sep 17 00:00:00 2001
---
 dom/base/StructuredCloneTags.h     |   2 +
 dom/base/nsJSEnvironment.cpp       |  29 +++++++++
 dom/nfc/MozNDEFRecord.cpp          | 122 ++++++++++++++++++++++++++++++++++---
 dom/nfc/MozNDEFRecord.h            |  20 ++++--
 js/xpconnect/src/ExportHelpers.cpp |  36 ++++++++++-
 5 files changed, 193 insertions(+), 16 deletions(-)
2015-01-30 15:36:42 +08:00
Boris Zbarsky
845c6d397f Bug 1140573 part 4. Drop the parent argument from js::NewFunctionByIdWithReserved. r=waldo 2015-03-09 12:50:08 -04:00
Boris Zbarsky
add82dfc14 Bug 1140573 part 2. Drop the parent argument from JS_NewFunctionById. r=waldo 2015-03-09 12:50:05 -04:00
Boris Zbarsky
7f7b76aa0c Bug 1140573 part 1. Drop the parent argument from JS_NewFunction. r=waldo 2015-03-09 12:50:03 -04:00
Boris Zbarsky
8ece71391b Bug 1140582. Remove the parent argument from JS_NewObjectWithUniqueType. r=waldo 2015-03-09 12:49:50 -04:00
Phil Ringnalda
12408373d5 Merge f-t to m-c, a=merge 2015-03-07 19:38:53 -08:00
Paolo Amadini
70e5ec26ad Bug 1140435 - Part 2 - Allow JS code to provide an async stack when calling a function. r=bz 2015-03-07 13:30:34 +00:00
Boris Zbarsky
a94ca36434 Bug 1131802 part 2. Allocate functions with reserved slots for DOM Xrays so we can store the Xray wrapper reference in those slots instead of as the function parent. r=peterv 2015-03-06 16:33:31 -05:00
Jon Coppeard
dc04a20f73 Bug 1138874 - Generalise assertion that source object has a preserved wrapper r=bholley 2015-03-06 10:19:07 +00:00
Boris Zbarsky
458e969f4e Bug 1139964 part 1. Factor out the guts of BackstagePass::Resolve and BackstagePass::Enumerate to allow reuse for other globals that want to opt in to Exposed=System WebIDL annotations. r=smaug 2015-03-06 01:08:06 -05:00
Jason Orendorff
e218a3988f 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
3322381e4f 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