Commit Graph

31769 Commits

Author SHA1 Message Date
Jim Blandy
998fa206dc DONTBUILD
(No bug): Remove inaccurate comment for js::gc::CellIter r=billm on IRC
2012-10-05 17:32:41 -07:00
Nicolas B. Pierron
525cb0aee4 Revert "Bug 797977 - Embed !isIon() assertion in StackIter::fp(). r=luke"
This reverts changeset 588135660310.
2012-10-05 15:00:46 -07:00
Nicolas B. Pierron
603637d92f Bug 797977 - Embed !isIon() assertion in StackIter::fp(). r=luke 2012-10-05 14:01:03 -07:00
Steve Fink
eb430a3a4b Bug 797213 - Test output may not go to stdout if -O given. r=terrence
--HG--
extra : rebase_source : b0ca42e73f5da97e65eb73abb2115857d14fd9fa
2012-10-05 13:17:36 -07:00
Steve Fink
747660290e Bug 797213 - jstests.py -O<filename> should default show-output to on. r=terrence
I didn't expect to have to specify -o in addition to -O. I get that you might want to use -s instead of -o, but -o is probably much more common.

--HG--
extra : rebase_source : 25e5f6ec23b3b4b006f12d405a30c6c43b631423
2012-10-05 13:17:23 -07:00
Steve Fink
935b17207d Bug 797213 - jstests.py: add a -F (--failed-only) option to only display output of failed tests. r=terrence
I also snuck a change to the output format, to display the test name in the output so that it is possible to associate output with the test that produced it. I mixed it in just because it was a little harder to separate out into a separate patch. I could easily do so, if you'd like.

--HG--
extra : rebase_source : ac26efd171eb6fa19b90eae22a29d047f1ba55b8
2012-10-05 13:17:01 -07:00
Steve Fink
3110eb99d4 Bug 797217 - Replace InternalHandleBase::zeroPointer with NullPtr::constNullValue. r=terrence
--HG--
extra : rebase_source : f70e1d996fb01e790b277524128faa68060dac6d
2012-10-05 13:16:39 -07:00
Steve Fink
5f92bc6efb Bug 797128 - Minor rooting fix and SkipRoot justification. r=terrence
The first valid SkipRoot I've found. copyFromArray was inexplicably discarding a handle, and with that fixed there are some unrooted internal pointers stored on the stack. But the only things that can trigger GC will also trigger an early exit, so all of the unrooted pointers are dead if a GC happens anyway.

--HG--
extra : rebase_source : b0c0157bcfdb7461086cdec4be8f71f94ab24c55
2012-10-05 13:14:47 -07:00
Steve Fink
6a34b3a21b Bug 797123 - Fix JS_ALWAYS_TRUE(fallible ToNumber) in jstypedarray.cpp. r=Waldo
Apparently, it was once believed that ToNumber is infallible when given a primitive value. It has 2 or 3 different ways of failing on OOM. For example, if you're onverting a string containing a double, you might blow out memory constructing the dtoa cache.

--HG--
extra : rebase_source : 88c91620678eb9be7ad8dd67f48c54cf843c09e6
2012-09-20 11:21:12 -07:00
Steve Fink
9d0d41cb98 Bug 794214 - Avoid putting poisoned pointer into type->newScript. r=billm
--HG--
extra : rebase_source : 904806c6059409c1af02624a1b4b989329f5acf3
2012-09-25 13:48:40 -07:00
Sean Stangl
73eeb4d947 Bug 797551 - Use callWithABI() for Math.random(). r=dvander 2012-10-05 12:05:21 -07:00
Jan de Mooij
d3c0716239 Bug 797825 - Port Array.prototype.concat fast path from JM to Ion. r=dvander
--HG--
extra : rebase_source : e5213bb7085685821f80ad9978b7b81706289c36
2012-10-05 20:25:21 +02:00
Bobby Holley
3e2bc99f16 Bug 761695 - Put Proxy and DOM expandos on the expando object, rather than the holder. r=peterv 2012-10-05 18:59:24 +02:00
Bobby Holley
54f0bae85b Bug 761695 - Hoist expando-checking (but not expando-creating) operations into common code. r=peterv
We do this for delete_, enumerateNames, and resolveOwnProperty. This doesn't change
existing behavior, because for ProxyXrayTraits and DOMXrayTraits the expando object
will (currently) always be null.
2012-10-05 18:59:24 +02:00
Bobby Holley
da6cbf326f Bug 761695 - Create XrayTraits::resolveOwnProperty. r=peterv 2012-10-05 18:59:23 +02:00
Bobby Holley
c0125cfb00 Bug 761695 - Reorder checks for expandos and nodePrincipal. r=peterv
Peter and I decided this was ok. We can't hoist expando stuff otherwise.
2012-10-05 18:59:23 +02:00
Bobby Holley
3dee0ce8e2 Bug 761695 - Implement expando traps for ProxyXrayTraits DOMXrayTraits. r=peterv
For new DOM proxies, we could probably use the Xray expando machinery for the
regular expando object as well, and free up one of the reserved slots. That's
more than I want to bite off for the moment, though.

I also decided not to block on bug 760095 and just kick the problem of globals
with new binding down the road a little bit.
2012-10-05 18:59:23 +02:00
Bobby Holley
6894d29805 Bug 761695 - Move wrapper preservation stuff into a virtual trap. r=peterv
I'm not sure this stuff is correct for non-WN objects. Hopefully that will
come out in review.

Anyway, with this change, the expando infrastructure in XrayTraits is now
fully generic and non-WN-specific. To make things work for other objects,
we now need to implement the virtual traps and hoist the code that calls the
expando machinery out of XPCWrappedNativeXrayTraits.
2012-10-05 18:59:23 +02:00
Bobby Holley
e5b93a88c9 Bug 761695 - Make expando chain getting/setting a virtual trap. r=peterv 2012-10-05 18:59:23 +02:00
Bobby Holley
d9be4b7c75 Bug 761695 - Hoist expando infrastructure into XrayTraits. r=peterv
It's still WN-only, now we can move the WN-only bits into virtual traps.

Note that the new-binding reparenting code will need to have a call to
CloneExpandoChain.
2012-10-05 18:59:23 +02:00
Bobby Holley
9b34e0d88e Bug 761695 - Hoist Xray identification machinery into XrayWrapper, and use it for trait identification. r=peterv
We don't currently have a good way of selecting the traits used by a given Xray
wrapper. This lets us do that.

Note: We add a call to js::UnwrapObject to GetXrayType while hoisting it. When
it was used only in WrapperFactory, this was unnecessary, because |obj| was
always unwrapped. But for our new purposes, it might not be. Aside from that,
there are no changes to the function.
2012-10-05 18:59:23 +02:00
Bobby Holley
79702a4c27 Bug 761695 - Move Xray expando infrastructure further down in the file. r=peterv
Just cut/paste. No code changes.
2012-10-05 18:59:23 +02:00
Bobby Holley
1a9081b1ce Bug 761695 - Unify holder creation and access. r=peterv
With this patch, all holders are created lazily. There are two common accessors,
getHolder() and ensureHolder(). The former returns null if no holder exists, the
latter lazily creates the holder if it doesn't exist. It does this by calling into
a virtual trap on XrayTraits, which lets the appropriate Xray type do its thing.
2012-10-05 18:59:23 +02:00
Bobby Holley
05eeb2aa4e Bug 761695 - Get the WN directly from the wrapper. r=peterv
All this indirection was getting seriously mucky. This, incidentally, means that
the XPCWN holder no longer needs a reserved slot pointing to the WN.
2012-10-05 18:59:23 +02:00
Bobby Holley
3b46b5fe43 Bug 761695 - Hoist call and construct traps into Traits, since the current implementations are XPCWN-specific. r=peterv 2012-10-05 18:59:22 +02:00
Bobby Holley
655913416f Bug 761695 - Rename getInnerObject to getTargetObject. r=peterv
The current name potentially implies that the object returned is an inner
object in the JS sense, which isn't true. Really we just want the thing
we're Xraying to.
2012-10-05 18:59:22 +02:00
Bobby Holley
3ae8dedbf2 Bug 761695 - Hoist getInnerObject into XrayTraits. r=peterv
The only special handling here with wrapped natives is to make sure that we
bypass outer windows. But we can do this with js::UnwrapObject.
2012-10-05 18:59:22 +02:00
Bobby Holley
0aab228c02 Bug 761695 - Make Xray traits inherit from a common superclass and give them a singleton instance. r=peterv
There's some code that can be shared between different Xray traits, but can't
(yet) be hoisted into XrayWrapper, because it needs to be callable from outside
XrayWrapper where we don't have the appropriate template parameters. Moreover,
this code benefits from virtual function specialization. The use case here is
illuminated in the next patch.

For the moment, we skip converting the bulk of the traits calls to virtual
methods, because they're working just fine.
2012-10-05 18:59:22 +02:00
Bobby Holley
5173bb4550 Bug 761695 - Stop stashing a raw WN pointer in XPCWN Xray holders. r=peterv
We might as well do this dynamically, which simplifies the code. Note that we
could avoid the reserved slot by parenting the holder to the wrapper. But the
JS parent API is deprecated, and we need to move away from it to reserved slots
anyhow. We might as well start here, with the added advantage that parenting
to the global makes us consistent with the other Xray types.
2012-10-05 18:59:22 +02:00
Bobby Holley
66236ce627 Bug 761695 - Simplify XPCWN Xray holder creation. r=peterv
The major semantic change here is that we parent holders directly to their
global. This should be fine.
2012-10-05 18:59:22 +02:00
Bobby Holley
54bd828407 Bug 761695 - Fix inaccurate commenting. r=peterv
The .wrappedJSObject property only exists when the Xray wrapper subsumes the wrappee.
2012-10-05 18:59:22 +02:00
Justin Lebar
f489e4717d Bug 796523 - Expire the JS timezone cache whenever we create a new compartment. r=waldo
This is a hack/heuristic to ensure that the JS timezone cache remains
fresh (so that if you navigate to a new page or refresh your gmail, you
always get the right timezone), while not interfering with the role the
cache plays in benchmark performance.
2012-10-05 11:33:36 -04:00
Jan de Mooij
9816e31ab0 Bug 797720 - Don't add MonitorTypes instruction if there's a type barrier. r=dvander 2012-10-05 17:16:11 +02:00
Ed Morley
2d2237893c Backout 4a76e692a4ab, 2962951f5fcc, d1d2149443ed, 83c3735801e7, 675ef796ed5b, f4b029b6b164, 83fa2144aa1d (bug 765119) for make check failures 2012-10-05 13:12:10 +01:00
Marty Rosenberg
7342528803 Fix windows by adding in an initializer (bug 765119, r=dvander) 2012-10-05 06:15:36 -04:00
Marty Rosenberg
0c5fdbb0a8 Add in two patches that were lost while rebasing (bug 765119, r=jandem) 2012-10-03 09:37:50 -04:00
Marty Rosenberg
21c6d48457 Fix a bunch of bugs that the fuzzers found (bug 765119, r=dvander) 2012-10-02 04:34:28 -04:00
Marty Rosenberg
fafb254a05 Teach RangeAnalysis how to deal with unreachable blocks (bug 765119, r=dvander) 2012-10-02 04:34:28 -04:00
Marty Rosenberg
382ba2a0ca Add narrowing into range analysis, greatly speeding up some testcases (bug 765119, jandem) 2012-10-02 04:34:28 -04:00
Marty Rosenberg
6b13c93c99 Add a bunch of features to range analysis to make it optimize more. (bug 765119, r=jandem) 2012-10-02 04:34:28 -04:00
Marty Rosenberg
ee125ae30d Beta nodes sholud be able to have infinite ranges, fixes very slow testcase (bug 765119, r=dvander) 2012-10-02 04:34:27 -04:00
Nicolas B. Pierron
216835d2b7 Bug 792398 - Recover arguments from bailouts. r=luke 2012-10-04 23:56:07 -07:00
Nicolas B. Pierron
231ae87d52 Bug 787813 - Argument object, Use StackIter instead of StackFrame. r=luke 2012-10-04 23:56:06 -07:00
Nicholas Nethercote
7df073ff5b Bug 797695 (part 4) - Exactly root jsscript.cpp. r=terrence.
--HG--
extra : rebase_source : b6cc292b092b30e339a75921245d4605275c104d
2012-10-04 16:22:03 -07:00
Nicholas Nethercote
8fbf1bdfc3 Bug 797695 (part 3) - Exactly root js_NewFunction(). r=terrence.
--HG--
extra : rebase_source : afece8e51f17ad3ed4d7cef013f169fa957362d4
2012-10-04 16:21:51 -07:00
Nicholas Nethercote
9ba36b1aa3 Bug 797695 (part 2) - Exactly root jsfun.cpp. r=terrence.
--HG--
extra : rebase_source : 9a46d4b08cf0e71f34b7d87699329bc8f6ec4e47
2012-10-04 16:21:40 -07:00
Nicholas Nethercote
15fc521d61 Bug 797695 (part 1) - Exactly root jsexn.cpp. r=terrence.
--HG--
extra : rebase_source : 9680504cb9e93a9fe10af0ff6f2cd3253c011b06
2012-10-04 16:21:36 -07:00
Kannan Vijayan
83f3b04b46 Bug 786126 - part 3 - Allow null/undefined in typeset of target object of GetProp ICs. (r=sstangl) 2012-10-05 00:28:36 -04:00
Sean Stangl
5d449321b9 Bug 793516 - Bail in case of impossible MToDouble input. r=dvander 2012-10-04 15:08:37 -07:00
Terrence Cole
7708306277 Bug 794667 - Add an AutoAssertCanGC to help with exact rooting; r=billm
This will allow us to annotate all methods with either an AutoAssertNoGC or
AssertCanGC. These will serve the purpose currently being served by
MaybeCheckStackRoots, but because they are lighter can be used throughout the
engine.
2012-10-04 14:22:51 -07:00