Jim Blandy
4778b96a85
Bug 480132: Clone lexical blocks only when needed. r=igor
...
Terminology:
A "script block" is an object of class Block allocated by the byte
compiler and associated with a script. Script blocks are never
modified, and may be used as a prototype for a "closure block":
A "closure block" is an object of class Block that holds variables
that have been closed over (although we actually leave the variables
on the stack until we leave their dynamic scope). A closure block is
a clone of a script block (its prototype is a script block).
Adjust the meanings of fp->blockChain and fp->scopeChain:
fp->blockChain is always the innermost script block in whose static
scope we're executing.
fp->scopeChain is the current scope chain, including 'call' objects
and closure blocks for those function calls and blocks in whose
static scope we are currently executing, and 'with' objects for with
statements; the chain is typically terminated by a global object.
However, as an optimization, the young end of the chain omits block
objects we have not yet needed to clone.
Closures need fully reified scope chains, so have js_GetScopeChain
reify any closure blocks missing from the young end of fp->scopeChain
by cloning script blocks as needed from fp->blockChain. Thus, if we
never actually close over a particular block, we never place a closure
block for it on fp->scopeChain.
Have JSOP_ENTERBLOCK and JSOP_LEAVEBLOCK always keep fp->blockChain
current. When JSOP_LEAVEBLOCK pops a block from fp->blockChain that
has been cloned on fp->scopeChain, pop fp->scopeChain as well.
Remove the JSFRAME_POP_BLOCKS flag, as it is no longer needed.
Ensure that the JIT won't have to create closure blocks or call
js_PutBlockObject; it can't handle those things yet. Note our current
script block when we begin recording. Abort recording if we leave
that block; we can't tell in advance whether it will need to be "put"
in future trace invocations. Abort recording if we call
js_GetScopeChain while in the static scope of lexical blocks. Remove
JIT tests based on JSFRAME_POP_BLOCKS.
Verify that generators capture the correct value for blockChain.
Add a constructor to JSAutoTempValueRooter for rooting JSObject
pointers.
2009-03-13 23:43:32 -07:00
Robert Sayre
8e061e35da
Backout patch for Bug 480132. Debug only nit fix busts static analysis compile.
2009-03-14 02:20:45 -04:00
Jim Blandy
40e8a7d560
Bug 480132. SpiderMonkey clones too many blocks into the heap. r=igor
2009-03-14 02:09:28 -04:00
Igor Bukanov
4b95050fe2
Backed out changeset 57de81309176 - bug 437325 - due to mochitest leaks on tinderbox
2009-03-13 18:36:46 +01:00
Igor Bukanov
3de011b9cd
bug 437325 - JSThread is no longer shared between runtimes. r=brendan
2009-03-13 12:36:21 +01:00
Igor Bukanov
75640ecce1
Backed out changeset 4159ebdfe31e to fix some typos in the patch
2009-03-13 12:21:04 +01:00
Igor Bukanov
8eeedd9647
bug 437325 - JSThread is not shared between runtimes. r=brendan
2009-03-13 12:10:34 +01:00
Jason Orendorff
37f2985bdf
Bug 476177 - TM: cx->stackPool must not be accessed on trace. r=brendan.
...
--HG--
extra : rebase_source : 746d61b54aa38cbe18fe31bce4efcbbad4629678
2009-01-30 17:40:05 -06:00
Boris Zbarsky
dc570eacdd
Bug 466935. Make JS_JIT_SPEW non-DEBUG build again. r=dmandelin,brendan
2008-12-11 13:55:04 -05:00
Jason Orendorff
b7fb9bc849
Bug 460865 - Read barrier for cx->fp. r=mrbkap, r=dmandelin.
...
--HG--
extra : rebase_source : 19963188b2f9f96336ce6ca28dbaefccf3a639b7
2008-12-09 10:38:32 -06:00
Igor Bukanov
b31f8300ea
bug 452913 - fixing sprop management, r=brendan, a.9.1b2=sayer
2008-11-17 13:59:39 +01:00
Brendan Eich
bab1f697ee
Bug 464978 - TM: hang with "[] + null" (r=danderson).
2008-11-15 10:33:50 -08:00
Brendan Eich
cb47c4cf08
Bug 456511 - (imacros) TM: Make conversion work on arbitrary JSObjects (r=gal).
2008-11-13 00:30:20 -08:00
Andreas Gal
074d900a57
Backed out changeset a40f2117bcc0
2008-11-12 17:39:48 -08:00
Brendan
0ca607d76b
Add imacros to support conversion of arbitrary JSObjects (456511, r=gal).
2008-11-12 16:55:45 -08:00
Andreas Gal
708f08ca9c
Properly handle side exits in scripted constructors (originally mrbkap, r=brendan, 453462).
2008-09-18 14:13:37 -07:00
Brendan Eich
94b10f6170
Avoid needless prototype-shape purges (454035, r=igor).
2008-09-09 11:24:03 -07:00
Igor Bukanov
23c5063560
bug 446386 - eliminating compiler pseudo-frames. r=brendan
2008-09-08 11:47:12 +02:00
Brendan Eich
9cd8e5a539
Upvar, v0.1 (limited to looking up from eval in a function, to the function's args and vars).
2008-08-21 03:47:33 -07:00
Brendan Eich
eaf4254c15
Merge from mozilla-central.
2008-08-08 18:58:04 -07:00
Brendan Eich
f644a96ebb
Better idea for avoiding level-1 property cache collisions.
2008-08-08 14:28:10 -07:00
Brendan Eich
4e0e30452f
Improve first-level property cache hash function to avoid collisions in linear sequence of setprops.
2008-08-08 14:12:55 -07:00
Graydon Hoare
aaf41f8ee5
Bug 447713, remove the import/export functionality from spidermonkey, r=brendan
2008-08-06 17:34:58 -07:00
Igor Bukanov
dcdf0df942
bug 445391 - re-enable OJI for Firefox 3.1, the configure changes is from jst, r=jst,crowder, sr=benjamin
2008-07-29 19:53:03 +02:00
Igor Bukanov
fc68712767
bug 441686 - eliminating JSStackFrame.(nvars|vars). r=brendan
2008-07-20 22:13:17 +02:00
Igor Bukanov
708422ea13
[Bug 433337] jsinterp.cpp source no longer split between 2 compilation units when compiling on Windows. r=brendan
2008-07-17 10:57:34 +02:00
Igor Bukanov
d24b2f9846
[Bug 432881] SM: JSVAL_VOID as a pseudo-boolean. r=brendan
2008-06-25 11:43:02 +02:00
Igor Bukanov
c6b43c7494
[Bug 433382] More efficient interpreter switch when computed goto is not available. r=brendan
2008-06-20 11:55:49 +02:00
Igor Bukanov
fed7ad6a4a
Backed out changeset 97977f224aff due to build breakage
2008-06-20 11:46:36 +02:00
Igor Bukanov
ac0a058f20
[Bug 433382] More efficient interpreter switch when computed goto
...
is not available. r=brendan
2008-06-20 10:06:45 +02:00
Igor Bukanov
26b618a50f
Backed out changeset 21527193c49b: the patch has used CSRCS, not CPPSRCS.
2008-06-20 09:45:29 +02:00
Igor Bukanov
feb0f05335
[Bug 433382] More efficient interpreter switch when computed goto is not available. r=brendan
2008-06-20 09:36:56 +02:00
igor@mir2.org
e34384934d
[Bug 429739] proper handling of __noSuchMethod__ when it is invoked as constructor. r=brendan a1.9=dsicore
2008-04-29 14:17:11 -07:00
brendan@mozilla.org
b5b5553389
Fix hang when GetPropertyTreeChild calls js_GenerateShape calls js_GC (424636, r=igor, a=beltzner).
2008-04-28 23:19:42 -07:00
igor@mir2.org
e573263407
[Bug 430871] Eliminating unused JSINVOKE_INTERNAL and JSFRAME_INTERNAL. r=brendan a1.9=dsicore
2008-04-27 23:50:37 -07:00
igor@mir2.org
c0d5c51190
[bug 423874] backing out as a simpler patch would do the job with less code.
2008-03-29 03:34:29 -07:00
igor@mir2.org
eaa513c2f5
bug=423874 r=brendan a1.9b5=dsicore Allocating native functions together with JSObject
2008-03-21 01:19:23 -07:00
brendan@mozilla.org
8c8498de43
Fix for JSCLASS_NEW_RESOLVE-related bug in js_FillPropertyCache, found by Mike Moening <MikeM@RetekSolutions.com> (418989, r=shaver, a=beltzner).
2008-03-19 17:44:59 -07:00
igor@mir2.org
8e2eeba5aa
bug=421274 r=brendan a=beltzner Eliminating SAVE_SP_AND_PC() macro
2008-03-17 01:58:28 -07:00
igor@mir2.org
9e25b95889
bug 421274: backing out again due to crashes on 64 bit Linux.
2008-03-13 11:03:02 -07:00
igor@mir2.org
8205bdd921
bug=421274 r=brendan a1.9=mtschrep eliminating SAVE_SP_AND_PC and friends from the interpreter loop
2008-03-12 23:48:23 -07:00
igor@mir2.org
d75b521da0
backing out bug 421274
2008-03-12 23:23:09 -07:00
igor@mir2.org
e8279e4617
bug=421274 r=brendan a1.9=mtschrep eliminating SAVE_SP_AND_PC and friends from the interpreter loop
2008-03-12 22:52:52 -07:00
igor@mir2.org
8ad00a0798
bug=421266 r=brendan a1.9=beltzner js_Interpret now takes just single cx argument.
2008-03-06 14:47:46 -08:00
igor@mir2.org
28f24f8321
bug=418641 r=brendan a1.9=dsicore Avoiding code bloat on slow paths in the interpreter.
2008-03-05 12:26:06 -08:00
igor@mir2.org
03f433c720
bug=420399 r=brendan a1.9=blocking1.9 eliminating the pc stack in the interpreter
2008-03-04 15:30:58 -08:00
igor@mir2.org
d9417500fc
Bug 419969: the interpreter loop belongs to its own compilation unit. r,a1.9=brendan
2008-03-04 04:52:43 -08:00
brendan@mozilla.org
4f4cb9e28b
Unregress perf in wake of 418069 (420426, r=mrbkap, a=mconnor).
2008-03-01 14:15:21 -08:00
brendan@mozilla.org
da4792dd55
Optimize object initialisers via property cache; remove JSOP_SET{NAME,PROP} cache hazards (129496, r=shaver).
2008-02-26 17:59:36 -08:00
brendan@mozilla.org
a76138b7d2
Beware non-native objects along scope and proto chains in property cache hit testing (418540, r=shaver).
2008-02-20 21:51:12 -08:00
brendan@mozilla.org
f337b63afc
Guard property cache tests with native ops or obj guards (417981, r=shaver).
2008-02-18 11:32:01 -08:00
brendan@mozilla.org
fc623a24eb
Optimize ComputeGlobalThis (395993, r=mrbkap).
2008-02-15 18:46:46 -08:00
igor@mir2.org
f86e5a86d2
Bug 416601: property cache is properly disabled under with statements with generators. r=brendan a1.9=blocking1.9
2008-02-15 03:38:40 -08:00
igor@mir2.org
ac22737548
Bug 309894: non-recursive XML-filtering implementation. r,a1.9=brendan
2008-02-13 06:32:31 -08:00
jag@tty.nl
e76dc17580
Bug 416685: jsinterp.c warning: empty body in an if-statement (times 4). r=/a=brendan
2008-02-11 02:55:59 -08:00
brendan@mozilla.org
23c36b84f4
Return of the property cache (365851, r=shaver).
2008-02-07 15:18:45 -08:00
mrbkap@gmail.com
ace379fdfe
Give the JS engine some knowledge of wrappers so that they can compare equal and be noticed when they take part in __proto__ cycles. bug 397855, r=brendan sr=dveditz
2007-12-20 14:59:44 -08:00
brendan@mozilla.org
7d8fcab4dc
Remove DUMP_CALL_TABLE (preliminary patch for 365851, r=igor).
2007-12-14 13:36:02 -08:00
igor@mir2.org
22c2a33a75
Bug 403878: No compiler pseudo-frames when compiling functions. r,a=brendan
2007-11-29 06:49:42 -08:00
igor@mir2.org
a4162380a8
Bug 398609: simpler handling of hidden properties, r,a=brendan
2007-11-19 09:15:45 -08:00
igor@mir2.org
7d6e57125d
Bug 398609: backing out due to test failures.
2007-11-18 16:58:46 -08:00
igor@mir2.org
64dc5b1984
Bug 398609: cleanup of hidden properties support. r,a=brendan
2007-11-18 16:36:49 -08:00
igor@mir2.org
837c046912
Bug 398609: Backing out due to mochi test failure.
2007-11-13 07:47:28 -08:00
igor@mir2.org
6c43fd5702
Bug 398609: cleanup of hidden properties. r,a=brendan
2007-11-13 06:56:18 -08:00
igor@mir2.org
cc6784b030
Bug 394551: no JS frames for fast native calls. r=brendan
2007-09-18 00:34:54 -07:00
igor@mir2.org
aacdc13f0f
Bug 394551: taking out the last patch as broke Windows build.
2007-09-17 12:28:14 -07:00
igor@mir2.org
065a93dd1c
Bug 394551: no JS frames for fast native calls. r=brendan
2007-09-17 12:08:46 -07:00
brendan@mozilla.org
ba3ad2ce7a
Fast (frame-less) native call optimizations (385393, r=igor).
2007-08-01 21:33:52 -07:00
brendan@mozilla.org
18e7692117
Backing out, see bug 389122 and orange or red tinderboxes.
2007-07-21 16:21:20 -07:00
brendan@mozilla.org
5f038f69ae
Fast natives and related optimizations (385393, r=igor).
2007-07-21 14:39:42 -07:00
igor@mir2.org
1aa40de49d
Bug 384151: refactoring boxing of primitive values, r=brendan
2007-06-14 00:07:01 -07:00
hg@mozilla.com
465265d0d4
Free the (distributed) Lizard! Automatic merge from CVS: Module mozilla: tag HG_REPO_INITIAL_IMPORT at 22 Mar 2007 10:30 PDT,
2007-03-22 10:30:00 -07:00