Commit Graph

26115 Commits

Author SHA1 Message Date
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
Jim Blandy
249eed4eb3 Back out fix for 481444; orange on Linux TraceMonkey unit test: http://tinderbox.mozilla.org/showlog.cgi?log=TraceMonkey/1236978913.1236990062.26824.gz&fulltext=1 2009-03-13 18:07:25 -07:00
Jason Orendorff
f7ad0e9e06 Bug 481444 - TM: objectHook is called on trace, via js_NewObject [@ LeaveTree] or [@ js_SynthesizeFrame]. r=gal.
Thanks Daniel!
2009-03-12 08:34:57 -05:00
Igor Bukanov
8021720a68 backout merge 2009-03-13 18:37:27 +01: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
a9dd7cc7ab triggering tinderbox rebuild for bug 437325 to check if orange there persists 2009-03-13 16:06:23 +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
Robert Sayre
d1d5f4493f Merge mozilla-central to tracemonkey. 2009-03-13 02:40:28 -04:00
Mike Connor
b223a0bdb7 merging backout stuff 2009-03-13 00:30:53 -04:00
Mike Connor
4462dc027b Backed out changeset e27fe0b767ea to see if it helps unit test failures 2009-03-13 00:25:22 -04:00
Graydon Hoare
b65177a23f Bug 482263 - Avoid re-entering recorder while deep aborting, r=mrbkap. 2009-03-12 20:14:51 -07:00
Robert Sayre
ef566ce8da Merge tracemonkey to mozilla-central. 2009-03-12 21:56:18 -04:00
Mike Connor
936cd020e6 bug 418687 - [Mac] Firefox Menu Listing does not show Addons, Downloads, Error Console Popup Windows in PB mode, r=gavin 2009-03-12 21:41:57 -04:00
Graydon Hoare
2b47f671ac Backout changeset 5e0cc374593c for bug 482800. 2009-03-12 16:15:33 -07:00
Shawn Wilsher
053d89f52b Bug 481227 - nsAnnoProtocolHandler gets favicon data synchronously from the database
The moz-anno protocol has a special case for favicons that would load them from
the database synchronously.  This patch changes this behavior to load them
asynchronously so we do not block the main thread while they load.
r=mak
r=bz
sr=bz
2009-03-12 17:49:37 -04:00
Andreas Gal
d3533c3025 Don't emit overflow guards if the operation is constant (483030, r=danderson). 2009-03-12 16:51:34 -04:00
Andreas Gal
7118a3b6b6 Make sure we don't walk out of a thin loop even if the loop condition is constant (482800, r=danderson). 2009-03-12 16:49:29 -04:00
Boris Zbarsky
924a80cbbf Back out the crasher test change from CLOSED TREE 2009-03-12 16:20:04 -04:00
Boris Zbarsky
122019be46 Test change to trigger a crash when trying to construct a table frame so we can test the new talos stack tooling, but should compile 2009-03-12 15:47:18 -04:00
Boris Zbarsky
81d4dd38af Test change to trigger a crash when trying to construct a table frame so we can test the new talos stack tooling 2009-03-12 15:46:48 -04:00
Shawn Wilsher
563239f85e Bug 481261 - Expose when queries are being inefficient in debug builds.
This adds a warning in debug builds about queries that do not use an index to
sort, which tend to be much much slower.
r=asuth
2009-03-12 14:30:15 -04:00
Shawn Wilsher
367406c6b4 Test to ensure that the content type for moz-anno favicon URIs is set as expected.
This test is being added in bug 481227 but does not depend on the code changes
in that bug.  This test should pass with and without those changes.
r=bz
2009-03-12 14:01:12 -04:00
Michal Novotny
ee345e2f43 Bug 482601. Add tests for bug 449198. r=bzbarsky 2009-03-12 12:59:00 -04:00
Doug Turner
b9def8385d Backing out bug 473443 - drawImage of canvas onto self is incorrect. WINCE only. 2009-03-12 09:56:44 -07:00
Dão Gottwald
2a4db0c5d3 Bug 482975 - disable browser_477657.js 2009-03-12 16:57:55 +01:00
Stuart Parmenter
64dbc2c06b bug 482091. patch from Jeff Muizelaar. fix cash on maemo with plugins 2009-03-12 08:11:10 -07:00
Boris Zbarsky
0fec8a7842 Bug 482592. Use the right container in ContentInserted. r+sr=roc 2009-03-12 10:17:14 -04:00
Boris Zbarsky
a9dc16395d Bug 482585. Move some XUL textbox-specific rules out of xul.css and into the relevant bindings. r=enn, sr=dbaron 2009-03-12 10:16:33 -04:00
Igor Bukanov
16863b8913 triggering rebuild to check if bug 482038 really caused tinderbox failures 2009-03-12 15:04:00 +01:00
Dão Gottwald
6ec5e34b16 merge 2009-03-12 14:45:00 +01:00
Dão Gottwald
9e751633bf Backed out changeset 2d7dde25e45f 2009-03-12 14:44:27 +01:00
Ted Mielczarek
efd484eecc bug 482733 - nsinstall.py should support copying directories recursively. r=pike (fix the js/src copy as well) 2009-03-12 09:42:23 -04:00
Marco Bonardo
bfd1c70eda Bug 482235 - missing semicolons, sorry. 2009-03-12 14:14:12 +01:00
Pardal Freudenthal
bd18a2b059 Bug 482235 - instead of exposing bookmarklets attribute, expose scheme in uri nodes, r=mak77 2009-03-12 14:05:48 +01:00
Ted Mielczarek
6ae080c83d bug 482733 - nsinstall.py should support copying directories recursively. r=pike 2009-03-12 08:46:38 -04:00
Ted Mielczarek
2001d77007 bug 482733 - nsinstall.py should support copying directories recursively - refactor nsinstall.py and add unittests. r=pike 2009-03-12 08:46:38 -04:00
Nochum Sossonko
d081874d42 Bug 475203 - regression tests for tabstrip scrolling. r=dao 2009-03-12 13:10:38 +01:00
Ehsan Akhgari
642b2e8015 Merge backout of changeset 69322c1764ff 2009-03-12 13:38:13 +03:30
Ehsan Akhgari
7d88172665 Backed out changeset 69322c1764ff (bug 464800) due to test failures on Mac 2009-03-12 13:37:40 +03:30
Ehsan Akhgari
6797479c28 Merge backout of changeset 113bda3be8df 2009-03-12 13:36:44 +03:30
timeless@mozdev.org
292ef18fb2 Bug 482809 Crash [@ jsds_SyncFilter(FilterRecord*, jsdIFilter*) ] when appendFilter() called with Console2 installed
removing errant change that crept into rev 36f4da6e262a with the fix for bug 136292
r=roc
2009-03-12 13:04:48 +01:00
timeless@mozdev.org
e4571da779 Bug 482809 Crash [@ jsds_SyncFilter(FilterRecord*, jsdIFilter*) ] when appendFilter() called with Console2 installed
removing errant change that crept into rev 36f4da6e262a with the fix for bug 136292
r=roc
2009-03-12 12:31:34 +01:00
Ehsan Akhgari
db64244ba0 Backed out changeset 113bda3be8df (bug 463256) due to test failures on Mac 2009-03-12 13:35:14 +03:30
Igor Bukanov
3e7114aad2 bug 482038 - removal of JSRuntime.gcPoke checks from js_NewGCThing. r=brendan 2009-03-12 10:15:55 +01:00
Ehsan Akhgari
c768114b78 Bug 464800 - Download manager title window is not cleared when switching to Private Browsing; r=sdwilsh 2009-03-12 12:28:17 +03:30
Ehsan Akhgari
71225f0e10 Bug 463256 - SSL sites sometimes don't load after re-entering regular browsing mode (from Private Browsing); r=mconnor,sdwilsh 2009-03-12 12:28:09 +03:30