Commit Graph

22604 Commits

Author SHA1 Message Date
Bobby Holley
24447452ab 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
bc9563cdd3 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
14a7c3faef 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
39eb44c43c 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
39b50f40b1 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
af5508a4ff 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
8138496fa5 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
49a666ce37 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
95a9308d91 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
0d9f3281b6 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
f044136221 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
c34f38bf2a 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
8c527f35c5 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
73c1ee9ba7 Backout 4a76e692a4ab, 2962951f5fcc, d1d2149443ed, 83c3735801e7, 675ef796ed5b, f4b029b6b164, 83fa2144aa1d (bug 765119) for make check failures 2012-10-05 13:12:10 +01:00
Marty Rosenberg
06cb519b1a Fix windows by adding in an initializer (bug 765119, r=dvander) 2012-10-05 06:15:36 -04:00
Marty Rosenberg
80bec711e0 Add in two patches that were lost while rebasing (bug 765119, r=jandem) 2012-10-03 09:37:50 -04:00
Marty Rosenberg
88871c43a2 Fix a bunch of bugs that the fuzzers found (bug 765119, r=dvander) 2012-10-02 04:34:28 -04:00
Marty Rosenberg
225982ed77 Teach RangeAnalysis how to deal with unreachable blocks (bug 765119, r=dvander) 2012-10-02 04:34:28 -04:00
Marty Rosenberg
395f81ba4d Add narrowing into range analysis, greatly speeding up some testcases (bug 765119, jandem) 2012-10-02 04:34:28 -04:00
Marty Rosenberg
de197e9224 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
9a1ee2dbfc 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
7ca4e48f49 Bug 792398 - Recover arguments from bailouts. r=luke 2012-10-04 23:56:07 -07:00
Nicolas B. Pierron
53e2255388 Bug 787813 - Argument object, Use StackIter instead of StackFrame. r=luke 2012-10-04 23:56:06 -07:00
Nicholas Nethercote
2d9d809e6a 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
1b5371c422 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
763815ff83 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
83edc53765 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
374d722ef8 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
f346eb1ea2 Bug 793516 - Bail in case of impossible MToDouble input. r=dvander 2012-10-04 15:08:37 -07:00
Terrence Cole
4274fc1127 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
Nicolas B. Pierron
5baf5a8148 Bug 797496 - Ignore hidden PC even with try notes. r=luke 2012-10-04 14:11:27 -07:00
Benoit Jacob
6ee7b9f2c3 Bug 779611 - reland parts 5-8 - port WebGLTexture, WebGLBuffer, WebGLFramebuffer, WebGLRenderbuffer, WebGLShader, WebGLProgram to WebIDL bindings - r=bz 2012-10-04 16:35:54 -04:00
Nicolas B. Pierron
1b58fc7bc1 Revert "Bug 797496 - Ignore hidden PC even with try notes. r=luke"
This reverts changeset 3b7a134bc3aa.
2012-10-04 12:35:03 -07:00
Nicolas B. Pierron
795fee3471 Bug 797496 - Ignore hidden PC even with try notes. r=luke 2012-10-04 12:26:53 -07:00
Benoit Jacob
631713204c back out 6f3714945438, 5732dca84958, bfb93cf89612, e697a832c60b for Mac build error 2012-10-04 15:06:31 -04:00
Bill McCloskey
270374af22 Bug 793904 - Crash safely if JS_TransplantObject fails (r=bholley)
--HG--
extra : rebase_source : 2269b4fdfd9a81d73f4b598dc64ebd470c8a557f
2012-09-25 17:05:09 -07:00
Benoit Jacob
47ecb7bdce Bug 779611 - part 8 - port WebGLShader and WebGLProgram to WebIDL bindings - r=bz 2012-10-04 14:45:35 -04:00
Benoit Jacob
11b1af470b Bug 779611 - part 7 - port WebGLFramebuffer and WebGLRenderbuffer to WebIDL bindings - r=bz 2012-10-04 14:45:33 -04:00
Benoit Jacob
e3e1db192c Bug 779611 - part 6 - port WebGLBuffer to WebIDL bindings - r=bz 2012-10-04 14:45:32 -04:00
Benoit Jacob
e406e56db1 Bug 779611 - part 5 - port WebGLTexture to WebIDL bindings - r=bz 2012-10-04 14:45:25 -04:00
Jan de Mooij
05b4f61e7d Bug 797185 - Disable DVG stack search when building with --enable-more-deterministic. r=decoder 2012-10-04 13:26:16 +02:00
Bobby Holley
f0f37be93f Bug 797583 - Remove bogus assertion. r=mrbkap 2012-10-04 11:56:51 +02:00
Makoto Kato
37e32d2d0a Bug 789753 - Save non-volatile XMM registers on Win64 ABI. r=dvander 2012-10-04 18:15:31 +09:00
Nicholas Nethercote
6b94b0ba89 Bug 797495 - Loosen overly tight assertion in Parser::setStrictMode(). r=luke.
--HG--
extra : rebase_source : 3b51f28ae7460f21fc3ea3554aa07f0996c99b15
2012-10-03 23:29:24 -07:00
Marty Rosenberg
e4655565af Don't align the contents of a pool when a pool section is empty (bug 793390, r=jbramley) 2012-10-04 00:50:12 -04:00
Kannan Vijayan
346440841f Bug 795803 - Enable ICing of JSNative and PropertyOp getters. (r=jandem) 2012-10-03 22:55:24 -04:00
Jeff Walden
27b84a053f Bug 795745 - Properly report errors for Number.prototype.to* methods when a provided precision is invalid. r=luke 2012-10-03 21:45:03 -04:00
Gabriele Svelto
4772ae075b Bug 739780 - Switch Telephony.cpp to use nsTArrayHelpers.h implementation of nsTArrayToJSArray. r=khuey, r=mrbkap 2012-09-28 10:43:49 -07:00
Nicolas B. Pierron
bd29f35a9d Bug 792220 - Remove lookupProperty to prevent interpreter reentrance. r=jandem 2012-10-03 15:41:16 -07:00
Andrea Marchesini
9f37766b0b Bug 720083 - Workers: add support for transferable objects from HTML5 spec. r=sphink, r=bent 2012-10-03 18:19:22 -04:00