Commit Graph

22737 Commits

Author SHA1 Message Date
Marty Rosenberg
0755fd0e7b Change the method we use to update ranges on phis so narrowing works properly (bug 799282, r=jandem) 2012-10-10 01:25:03 -04:00
Marty Rosenberg
7240ad13d1 The fix bitand to not compute bogus ranges (bug 799793, r=dvander) 2012-10-10 01:25:03 -04:00
Nicholas Nethercote
a67ecb43f6 Bug 793967 - Refactor Proxy::getElementIfPresent(). r=ejpbruel.
--HG--
extra : rebase_source : 5832487556791f6fc36b840d6306875c2c3e386a
2012-10-07 22:39:54 -07:00
Terrence Cole
acbbc1562e Bug 799777 - Unravel the threaded interpreter; r=luke
With the JITs, this is no longer buying us performance proportional to its
complexity.
2012-10-09 17:26:13 -07:00
Terrence Cole
e7ed15573e Bug 798624 - Specialize low-level character access to JSStableString; r=luke, rs=Waldo
Implements JSStableString::chars() and pushes StableCharPtr into the interface
at several key choke-points. This will solidly enforce the requirement that we
have uninlined jschar*s in places that we may GC with a jschar* on the stack.

--HG--
extra : rebase_source : 122785b474af371ed22d43a6bfcb600c05440405
2012-10-08 15:04:36 -07:00
Ehsan Akhgari
7d0ac4e6bc Bug 799432 - Backout changeset 30ab4e1d4874 and changeset dbcc29e9fcf6 from bug 777292 since they're no longer necessary with bug 795238 2012-10-09 16:01:24 -04:00
Jim Blandy
ea20ea661f Bug 795173: Make Debugger.Object.prototype.evalInGlobalWithBindings pass the right 'this' value. r=jorendorff
This also adds a test for Debugger.Frame.prototype.evalWithBindings, to
make sure it puts new variables on the right object; I couldn't find any
existing tests for the non-strict case (Frame-evalWithBindings-11.js
handles the strict mode case).
2012-10-09 12:02:30 -07:00
Benoit Jacob
966189fec7 Bug 779611 - part 9: port WebGLActiveInfo to WebIDL bindings - r=bz 2012-10-09 14:39:49 -04:00
Chris Peterson
4aecbbb60b Bug 799307 - Remove some XPCDebug.cpp cruft that was obsoleted by bug 787856. r=billm 2012-10-08 17:29:47 -07:00
Bobby Holley
ccb9171060 Bug 786142 - Make sure we have a real WN in MoveWrappers. r=peterv 2012-10-09 17:28:13 +02:00
Gabor Krizsanits
741ac104b0 Bug 684601 - window.toString.call() with native JS Object; r=bz 2012-10-09 17:21:53 +02:00
Eddy Bruel
00c27f6ed0 Bug 797469 - Avoid putting a JSFunction in Objectbox; r=jorendorff 2012-10-09 17:02:00 +02:00
Ted Mielczarek
50d314a70a bug 787176 - Add a Python wrapper script for running C++ unit tests. r=jmaher,waldo
--HG--
extra : rebase_source : 2282494578a7dd792555633df2526835d39c5ac4
2012-08-30 15:20:38 -04:00
Mike Hommey
da3307eff1 Bug 795204 - Trick make/pymake into waiting for shared libraries rules to run before installing import libraries in DIST/lib. r=ted 2012-10-09 10:17:26 +02:00
Nicolas B. Pierron
e478958e48 Bug 798913 - Prevent inlining of overflow of arguments. r=dvander 2012-10-08 18:12:25 -07:00
Sean Stangl
e0796dd756 Bug 799297 - Pass explicit type to loadUnboxedValue(). r=dvander 2012-10-08 17:27:10 -07:00
Terrence Cole
98b249d2c0 Backout 754a1efb5b37 for bustage on a CLOSED TREE 2012-10-08 15:42:39 -07:00
Nicholas Nethercote
b1fb442071 Bug 799019 - Tweak per-compartment memory reporting. r=Ms2ger.
--HG--
extra : rebase_source : 66bab372c7b3a7f4cebfd059b4c64a7562ba1f5d
2012-10-08 15:20:26 -07:00
Nicholas Nethercote
bc8cd01df6 Bug 799000 - Don't double count when memory-reporting for JSObject2WrappedJSMap. r=terrence.
--HG--
extra : rebase_source : 77553d19751c45e050b5945bb0813dd7155dfea6
2012-10-08 15:20:13 -07:00
Terrence Cole
d079920e40 Bug 798624 - Specialize low-level character access to JSStableString; r=luke, rs=Waldo
Implements JSStableString::chars() and pushes StableCharPtr into the interface
at several key choke-points. This will solidly enforce the requirement that we
have uninlined jschar*s in places that we may GC with a jschar* on the stack.

--HG--
rename : content/html/content/test/test_bug797113.html => content/html/content/test/test_bug780993.html
extra : rebase_source : 19b24e3decfc37c7387ea941233aec8239550927
2012-10-08 15:04:36 -07:00
Nicolas B. Pierron
f92d752ea8 Bug 798834 - Remove reset of non-actual arguments for StackFrame. r=luke 2012-10-08 14:57:10 -07:00
Ehsan Akhgari
23c2b32d26 Merge mozilla-central into mozilla-inbound 2012-10-08 16:53:58 -04:00
Alex Keybl
35ba52d414 Merging in version bump NO BUG 2012-10-08 11:01:15 -07:00
Marty Rosenberg
6a945fdafc Fix the backwards code so it matches the well thought out comment (bug 792589, r=jbramley) 2012-10-08 06:32:39 -04:00
Jacek Caban
f69198925f Bug 797793 - Disable format warnings on mingw r=glandium 2012-10-08 11:46:53 +02:00
Brian Hackett
4af6f6ca5e Bug 793491. There isn't really any reason to have lots of type barriers for different objects at a site, since if we manage to discharge all the barriers the target will probably just be marked as a generic object anyways. So go ahead and just fall back to an AnyObject barrier once we have more than BARRIER_OBJECT_LIMIT barriers on a single pc. r=jandem 2012-10-08 10:14:10 +02:00
Hsin-Yi Tsai
81d7a61b89 Bug 783525 - part 1 - idl and DOM impl for ICCCardLockErrorEvent. r=smaug, sr=sicking 2012-10-03 14:29:07 +08:00
Phil Ringnalda
621675f4fa Back out 20899bf87646 (bug 798913) for Windows opt browser-chrome bustage 2012-10-07 23:26:03 -07:00
Marty Rosenberg
c303a227c8 Ranges should all be signed, never unsigned, even when the operation should logically be unsigned (bug 765119, r=djvj) 2012-10-07 23:19:23 -04:00
Marty Rosenberg
1673946b84 Fix windows by adding in an initializer (bug 765119, r=dvander) 2012-10-05 06:15:36 -04:00
Marty Rosenberg
40b0708c67 Add in two patches that were lost while rebasing (bug 765119, r=jandem) 2012-10-03 09:37:50 -04:00
Marty Rosenberg
14ea26e0a0 Fix a bunch of bugs that the fuzzers found (bug 765119, r=dvander) 2012-10-02 04:34:28 -04:00
Marty Rosenberg
a6a1717d9e Teach RangeAnalysis how to deal with unreachable blocks (bug 765119, r=dvander) 2012-10-02 04:34:28 -04:00
Marty Rosenberg
5c29f1df3e Add narrowing into range analysis, greatly speeding up some testcases (bug 765119, jandem) 2012-10-02 04:34:28 -04:00
Marty Rosenberg
6dd91698ee 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
c85f11a62b 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
Phil Ringnalda
aef15dac79 Back out 9157b71a7df1 (bug 793491) for assertion failures 2012-10-07 21:02:46 -07:00
Nicolas B. Pierron
0dd757e894 Bug 798913 - Prevent inlining of overflow of arguments. r=dvander 2012-10-07 20:50:20 -07:00
Brian Hackett
60fcc16b14 Bug 793491. There isn't really any reason to have lots of type barriers for different objects at a site, since if we manage to discharge all the barriers the target will probably just be marked as a generic object anyways. So go ahead and just fall back to an AnyObject barrier once we have more than BARRIER_OBJECT_LIMIT barriers on a single pc. r=jandem 2012-10-07 23:04:38 -04:00
Nicholas Nethercote
10b0363a81 Bug 793076 (part 8) - Make GetCachedLocalTime() infallible. r=jwalden.
--HG--
extra : rebase_source : a0631d386fb6666b03c32bd96f594000add57d32
2012-10-07 18:03:20 -07:00
Nicholas Nethercote
873825176b Bug 793076 (part 7) - Rename CacheLocalTimes() and change its return type from bool to void. r=jwalden.
--HG--
extra : rebase_source : 99a9b3e5944d61d5cad87f80afafb0dd22379179
2012-10-07 18:01:54 -07:00
Nicholas Nethercote
3c2ab83aea Bug 793076 (part 6) - Remove SetDateToNaN. r=jwalden.
--HG--
extra : rebase_source : 2fddc9bf0e38c215f169afbc3480a5d793315bb9
2012-10-07 18:01:51 -07:00
Nicholas Nethercote
ae989d9cb1 Bug 793076 (part 5) - Change SetUTCTime()'s return type from bool to void. r=jwalden.
--HG--
extra : rebase_source : 33411aca5216e1e8bf298500c7f9fd5dd61d8d6a
2012-10-07 18:01:35 -07:00
Nicholas Nethercote
7d890b7008 Bug 793076 (part 4) - In jsdate.cpp, exactly root remaining JSObject* pointers. r=jwalden.
--HG--
extra : rebase_source : f90b0eecbb1f81c38ff55132faf05384b98ef622
2012-09-20 23:23:54 -07:00
Nicholas Nethercote
0b77204fde Bug 793076 (part 3) - In jsdate.cpp, convert Rooted<JSObject*> pointers to RootedObject. r=jwalden.
--HG--
extra : rebase_source : a6493707a8ddc223a5a72b8131483c285543dc02
2012-09-20 23:23:18 -07:00
Nicholas Nethercote
3230c39dbb Bug 793076 (part 2) - In jsdate.cpp, convert |cx| parameters to |dstOffsetCache| where possible. r=jwalden.
--HG--
extra : rebase_source : 27977fc5c54e7f359cdb0bf550a3d6ddcbd4cae5
2012-09-20 23:22:35 -07:00
Nicholas Nethercote
71e4702d8c Bug 793076 (part 1) - Remove unnecessary |cx| parameters. r=jwalden.
--HG--
extra : rebase_source : 0cfe86ca3b2de60b0097f6cd4686dfabe6748897
2012-09-20 21:41:49 -07:00
Jan de Mooij
0e9732ffe2 Bug 798823 - Don't use an empty IonActivation in FastInvokeGuard. r=dvander 2012-10-07 14:27:11 -07:00
David Rajchenbach-Teller
becea4676b Bug 795505 - Feed typed arrays to js-ctypes. r=jorendorff 2012-10-06 21:53:23 -04:00
Jan de Mooij
01c51849b8 Temporarily disable bug 797131 part 3 for fuzz crashes. r=dvander on IRC 2012-10-07 01:15:53 +02:00
Jan de Mooij
80eafc3e89 Bug 798819 - Ensure the EnterJIT thunk exists when using FastInvoke. r=dvander 2012-10-06 15:39:04 -07:00
Ed Morley
b9d0962f13 Merge mozilla-central to mozilla-inbound 2012-10-06 21:47:07 +01:00
Tom Schuster
b2ea3f6163 Bug 784765 - Add fastpath for string equality with different length. r=jandem 2012-10-06 21:59:14 +02:00
Ed Morley
5abdf356a2 Merge last PGO-green changeset of mozilla-inbound to mozilla-central 2012-10-06 20:30:35 +01:00
Boris Zbarsky
d1d076b1d3 Bug 796410. Make things still work right if we disable Paris list bindings. r=peterv 2012-10-06 12:21:42 -04:00
Boris Zbarsky
a8b8db0ee0 Bug 798011. Deal with JS_ValueToString failing. r=gabor 2012-10-06 12:06:24 -04:00
Kannan Vijayan
f4c56a9326 Bug 798589 - Change GetProp IC attachCallGetter to use script being jitted to get ion framesize instaed of script the getprop belongs to. (r=jandem) 2012-10-06 09:58:06 -04:00
Jan de Mooij
d07b063cd1 Bug 797131 part 3 - Add fast path for calling into Ion. r=dvander 2012-10-06 11:38:18 +02:00
Jan de Mooij
6bd69e62c4 Bug 797131 part 2 - Add FastInvokeGuard and use it. r=dvander 2012-10-06 11:37:59 +02:00
Jan de Mooij
86f932f43a Bug 797131 part 1 - Various small changes. r=dvander 2012-10-06 11:37:18 +02:00
Ms2ger
c6c8b09903 Bug 795610 - Part g: Introduce custom quickstubs that call the newly introduced WebIDL APIs; r=mounir 2012-10-06 09:20:56 +02:00
Mike Hommey
78b05b3276 Bug 797322 - Preprocessed .jsm files don't get //@line info. r=ted 2012-10-06 10:38:58 +02:00
Jim Blandy
eb93391fd2 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
39538cd3ea Bug 792398 - Recover arguments from bailouts. r=luke 2012-10-04 23:56:07 -07:00
Nicolas B. Pierron
e47ccd76c3 Bug 787813 - Argument object, Use StackIter instead of StackFrame. r=luke 2012-10-04 23:56:06 -07:00
Nicholas Nethercote
fbd23bff54 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
c9f009a036 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
79b7095de1 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
109aa1110b 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
a7c555352b 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
Nicolas B. Pierron
22379d0336 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
4af31c0e05 Bug 797977 - Embed !isIon() assertion in StackIter::fp(). r=luke 2012-10-05 14:01:03 -07:00
Steve Fink
e913b1ca62 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
d42ec3ee6e 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
0bfc242d05 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
af7410f32f 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
acbcc10c6e 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
a5529b13f1 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
81d993ce53 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
55b97f6732 Bug 797551 - Use callWithABI() for Math.random(). r=dvander 2012-10-05 12:05:21 -07:00
Jan de Mooij
72a169b2ef 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
54d2fc8eec 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
19863fe088 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
b6b60bd403 Bug 761695 - Create XrayTraits::resolveOwnProperty. r=peterv 2012-10-05 18:59:23 +02:00
Bobby Holley
2f074e80e0 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
02fbd34534 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
513593624e 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
764ba38fdf Bug 761695 - Make expando chain getting/setting a virtual trap. r=peterv 2012-10-05 18:59:23 +02:00
Bobby Holley
522451000d 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
2b6769e01a 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
52b466bd70 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
f025bdc025 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
7ca744b818 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
b250c23a43 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
1a61d79fcf 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
c701c6c8c9 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
4d248020dd 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
22cdfb3eb3 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
612c502d18 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
340b28c0bd 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