Commit Graph

193 Commits

Author SHA1 Message Date
Jim Blandy
df6f0b2ee9 Bug 554955: Give blocks and call objects unique shapes when they have parents that may be extended with new bindings. r=jorendorff
The comments for js::Bindings::extensibleParents explain why this is necessary.

AssertValidPropertyCacheHit should have been catching this bug, but for
reasons I don't understand, it is restricted from checking this case. This
patch extends it to assert when the bug is detected.

I've gathered the infallible parts of the initialization for Call objects
and cloned block objects into their own functions.
2011-03-15 12:18:36 -07:00
Jeff Walden
2db290c32a Bug 638312 - Add JS_IsBuiltinEvalFunction and JS_IsBuiltinFunctionConstructor APIs. r=gal 2011-03-02 19:57:44 -08:00
Luke Wagner
08e66296bc Bug 634542 - Back out diagnostic patches (r=dvander,a=backout) 2011-02-19 14:37:46 -08:00
Luke Wagner
e8cc2a25ba Luke Wagner – Bug 634542 - Temporary diagnostic patch 2 (r=dvander,a=shaver) 2011-02-18 18:38:10 -08:00
Jason Orendorff
d064deac4d Bug 630865 - Resolve interpreted function prototypes more eagerly. r=dvander. 2011-02-14 14:04:07 -06:00
Jim Blandy
de75b9fa19 Bug 537873: Add a 'strict' argument to C++ property setter functions. r=brendan
This changes the type of setters to JSStrictPropertyOp, which is just like
JSPropertyOp except that it takes a 'JSBool strict' argument. Most of the
patch is introducing distinct types and using the appropriate stubs.

The following are left for subsequent patches:

x Similar fixes to the browser outside SpiderMonkey.

x Actually *using* the newly available strictness information. This patch
  should have no user-visible effect. I didn't want the interesting stuff
  to get lost in this noise.
2011-02-09 11:31:40 -08:00
Jim Blandy
2016210905 Bug 554955: Revert fix (changesets 297b1312f534, 18a1effafe19, 26d40e1e80bf, f6117465a979): 14% performance hit as measured by Talos. r=talos 2011-01-31 16:48:26 -08:00
Jim Blandy
a237e87988 Bug 554955: Give blocks and call objects unique shapes when they have parents that may be extended with new bindings. r=jorendorff
The comments for js::Bindings::extensibleParents explain why this is necessary.

AssertValidPropertyCacheHit should have been catching this bug, but for
reasons I don't understand, it is restricted from checking this case. This
patch extends it to assert when the bug is detected.

I've gathered the infallible parts of the initialization for Call objects
and cloned block objects into their own functions.
2011-01-31 12:08:13 -08:00
Andreas Gal
3c34eab945 Follow-up fix for bug 625559. 2011-01-26 19:19:33 -08:00
Blake Kaplan
8f27ca08f2 Catch chrome eval escaping into content (bug 625559, r=gal). 2011-01-26 18:28:49 -08:00
Brendan Eich
0b7d9754dc Get rid of JSOP_{GET,CALL}UPVAR and simplify code greatly (592202, r=jorendorff). 2010-12-29 23:46:50 -08:00
Jeff Walden
de8c94c378 Bug 514568 - Use a fresh variable environment for strict mode code run by eval, and give strict mode eval code frames a Call object backed by those variables. r=igor 2010-10-12 11:38:06 -07:00
Jeff Walden
f7bec8a9e8 Bug 614493 - Move top-level binding storage (and argument, variable, and upvar counts) out of JSFunction and into js::Bindings, itself stored in JSScript, anticipating the time when strict mode eval scripts will need it. r=brendan 2010-11-16 15:34:24 -08:00
Brendan Eich
0e94dad967 Restore append-only fun->u.i.names rule by binding destructured-to vars for destructuring args after binding all args (619003, r=igor). 2010-12-27 15:10:58 -08:00
Jeff Walden
e2834ef56d Require JSFunction::inStrictMode() callers to check for isInterpreted() first, since most already know that the function in question is interpreted. r=dmandelin 2010-12-22 21:06:08 -05:00
Jeff Walden
59814e4551 Bug 620315 - "Assertion failure: unexpected constantly false guard detected" with "use strict", 4 > this. Fix a problem where we weren't marking functions created by |new Function| as accepting a primitive this value when their body was strict mode, by removing the duplicative bit that was being checked. r=dmandelin 2010-12-22 18:05:07 -05:00
Luke Wagner
91eabb4690 Bug 561954 - Abort recording earlier to avoid expensive later bails (r=jorendorff)
--HG--
extra : rebase_source : d2a54d2513fe8f69dcdaa5bad8dc0ce8c8ee634e
2010-11-18 10:49:45 -08:00
Jeff Walden
88d923a99a Bug 614338 - Move some call object property methods into the js namespace. r=dmandelin
--HG--
extra : rebase_source : 3816a3ae6d775e5866030c8a51cc305f09dda1f2
2010-11-16 15:30:57 -08:00
Luke Wagner
9db98566fb Backed out changeset 31e0cd11f015 2010-11-18 16:58:16 -08:00
Luke Wagner
319ccaa65d Bug 561954 - Avoid costly deep bail by aborting earlier on bad global prop access (r=jorendorff) 2010-11-18 10:49:45 -08:00
Jeff Walden
8cb990a0d3 Make JSTreeContext::fun and JSTreeContext::scopeChain private (they share a union), and provide accessors that assert that the tree context is or is not in a function, as appropriate. r=dvander 2010-11-16 14:13:29 -08:00
Igor Bukanov
52ea348c4c bug 610198 - Replacing JS_GetStringBytes usage with JS_EncodeString. r=gal 2010-11-11 21:40:29 +01:00
David Anderson
7487c14d37 Backed out changeset 8e119f847f97 (build busted) 2010-11-11 11:19:42 -08:00
Igor Bukanov
e32ba97023 bug 610198 - Replacing JS_GetStringBytes usage with JS_EncodeString. r=gal 2010-11-02 15:36:25 +01:00
Igor Bukanov
92b67c9caf bug 607695 - Avoid unnecessary JS_GetStringBytes. r=gal 2010-10-28 17:15:53 +02:00
Luke Wagner
af51d6c49c Bug 602129 - JM: make f.call(...) fast, part 2 (r=dvander)
--HG--
extra : rebase_source : 19405a1ec0337f39edfc3a6fe4543038c991f132
2010-10-15 19:11:51 -07:00
Brian Hackett
f9cf7a5b7d Flexible length JSObject, bug 584917. r=brendan,igor 2010-10-13 11:49:22 -07:00
Jeff Walden
fcbd8eb10b Bug 514570 - 1 - Convert primitive-this-of-type function flags into a single primitive-this flag, to pave way for strict mode unadulterated-this passing. r=jorendorff 2010-10-12 11:50:02 -07:00
Bill McCloskey
05473d29a8 Bug 601986 - Make blockchain determination faster for with, flat closures (r=igor) 2010-10-06 10:41:36 -07:00
Brendan Eich
853d03c5d2 Per ECMA-262, no .prototype for built-in functions and Function.prototype (445319, r=Waldo). 2010-10-03 22:46:39 -07:00
Gregor Wagner
fdb731becb Bug 558861 - Compartmental GC (r=gal) 2010-09-24 10:54:39 -07:00
Brian Hackett
066d48b6b6 Backed out changeset 09ffb30caa47 2010-09-20 12:05:21 -07:00
Brian Hackett
e8819f33fa Make JSObject flexible length, bug 584917. r=brendan 2010-09-20 11:40:32 -07:00
David Anderson
3bced69ba2 Fix instanceof with bound functions (bug 597167, r=brendan). 2010-09-16 19:31:11 -07:00
Luke Wagner
562fc49870 Bug 539144 - Make formal args a jit-time const offset from fp; rm argv/argc/thisv/script/callobj (r=brendan,dvander) 2010-08-09 22:43:33 -07:00
Luke Wagner
5e9978f911 Bug 581263 - remove slow natives (r=waldo,mrbkap) 2010-08-16 12:35:04 -07:00
David Mandelin
3dc48e12b2 [JAEGER] Merge from Tracemonkey. 2010-08-30 15:13:32 -07:00
Brendan Eich
790ddc9e99 Merge JSScope into JSObject and JSScopeProperty (now js::Shape; bug 558451, r=jorendorff). 2010-08-29 11:57:08 -07:00
David Mandelin
ab97c995fd [JAEGER] Merge from tracemonkey. 2010-08-26 10:35:24 -07:00
David Mandelin
d32d792513 [JAEGER] Merge from tracemonkey. Note that we will currently fail one trace test that was recently added. There is a bug in that test that will be fixed posthaste. 2010-08-17 15:32:40 -07:00
Jeff Walden
765b61e1cb Bug 429507 - ES5: Function.prototype.bind. r=brendan 2010-08-13 10:42:33 -07:00
Jeff Walden
24f0559035 Bug 516255 - Eagerly copy initial parameter values into the arguments object when a function's parameters might be mutated, and rely on normal resolution behavior in the remaining cases when parameters are never modified. r=dmandelin 2010-08-11 23:27:33 -07:00
Jeff Walden
88db90ddd5 Bug 516255 - Use different classes for arguments objects created inside and outside strict mode code, with slightly different ops, in preparation for implementing strict mode arguments objects' less magical functionality. r=dmandelin 2010-08-11 23:26:59 -07:00
David Mandelin
df3e6a9e74 [JAEGER] Merge from tracemonkey. 2010-08-09 11:36:39 -07:00
Luke Wagner
8d67384340 Bug 585231 - Remove ArgsPrivateNative (r=dmandelin) 2010-08-06 17:19:22 -07:00
Brian Hackett
5ab7972159 Fast native constructors, bug 579471. 2010-08-03 12:20:48 -07:00
Jeff Walden
443f3f510a Bug 514581 - ES5: fun.caller and fun.arguments must throw when fun is strict-mode code. r=jimb
--HG--
extra : rebase_source : 10f930852e39b0b1ef917b18b6a1332a9a815d5d
2010-08-02 23:52:12 -07:00
David Mandelin
904ccc994c Merge from Tracemonkey. 2010-07-27 11:48:08 -07:00
Brendan Eich
794e678554 Arguments.callee.caller does not work in FF 4 under certain circumstances (577648, r=jwalden). 2010-07-23 14:41:56 -07:00
David Mandelin
cf0c3c24a7 Merge from tracemonkey. 2010-07-22 18:31:01 -07:00