Read-only Git mirror of the Mercurial gecko repositories at https://hg.mozilla.org. How to contribute: https://firefox-source-docs.mozilla.org/contributing/contribution_quickref.html
Go to file
Jim Blandy bbfb18733b 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
accessible Disable A11Y tests that randomly fail due to loading remote images. (bug 481720) 2009-03-11 20:02:17 -07:00
browser Backed out changeset e27fe0b767ea to see if it helps unit test failures 2009-03-13 00:25:22 -04:00
build Bug 480967 Don't leak MSYS paths into makefiles, fix Solaris bustage r=bsmedberg 2009-03-11 16:51:47 +08:00
caps Bug 472032 - [win64] sizeof(long) != sizeof(void*) assertion in nsScriptSecurityManager.cpp; changed SecurityLevel to use PRWord, clarified assertion on the protected code; r+sr=dveditz 2009-02-26 18:31:17 +01:00
chrome Bug 480065. Make chrome registry not mess with inline stylesheets. r=bsmedberg, sr=dbaron 2009-03-10 09:52:23 -04:00
config bug 482733 - nsinstall.py should support copying directories recursively. r=pike 2009-03-12 08:46:38 -04:00
content Backing out bug 473443 - drawImage of canvas onto self is incorrect. WINCE only. 2009-03-12 09:56:44 -07:00
db Bug 481261 - Expose when queries are being inefficient in debug builds. 2009-03-12 14:30:15 -04:00
dbm Bug 473837, land NSS_3_12_3_BETA2 2009-01-21 04:43:31 +01:00
docshell Bug 478245 - Crash [@ nsEventStateManager::PreHandleEvent], r+sr=dbaron 2009-03-11 17:43:08 +02:00
dom Merge tracemonkey to mozilla-central. 2009-03-12 21:56:18 -04:00
editor Crash tests for bug 456727. 2009-02-26 11:55:15 +01:00
embedding Bug 328412 - Find in empty document triggers "ASSERTION: No first node!"; r=bzbarsky sr=jst 2009-03-04 08:43:02 +01:00
extensions Fix some issues found with valgrind. Bug 479759 and bug 481692. r=Masatoshi Kimura <VYV03354@nifty.ne.jp> 2009-03-10 23:12:52 +02:00
gfx b=480098 correct weight units in gfxFcFontEntry::AdjustPatternToCSS r=roc 2009-03-11 15:00:43 +13:00
intl Fix some issues found with valgrind. Bug 479759 and bug 481692. r=Masatoshi Kimura <VYV03354@nifty.ne.jp> 2009-03-10 23:12:52 +02:00
jpeg Bug 456388 - Remove PR_STATIC_CALLBACK and PR_CALLBACK(_DECL) from the tree; r+sr=brendan 2008-10-10 17:04:34 +02:00
js Bug 480132: Clone lexical blocks only when needed. r=igor 2009-03-13 23:43:32 -07:00
layout Back out the crasher test change from CLOSED TREE 2009-03-12 16:20:04 -04:00
media Bug 481601 - Fix crash in [@ _vorbis_block_ripcord - vorbis_block_clear] - r=conrad.parker 2009-03-10 13:45:09 +13:00
memory/jemalloc Bug 478576 - infinite loop in jemalloc:chunk_recycle_reserve; r=pavlov 2009-02-21 03:09:22 +01:00
modules bug 482091. patch from Jeff Muizelaar. fix cash on maemo with plugins 2009-03-12 08:11:10 -07:00
netwerk Bug 482601. Add tests for bug 449198. r=bzbarsky 2009-03-12 12:59:00 -04:00
nsprpub Merge tracemonkey to mozilla-central. 2009-03-09 14:45:46 -04:00
other-licenses Bug 480079 - Move comm-central 7zSD.sfxes out of mozilla-central (Thunderbird, SeaMonkey, and Sunbird). r=philringnalda, r=mcsmurf, r=mschroeder 2009-02-26 14:31:08 -08:00
parser back out changes that weren't supposed to be checked in 2009-03-10 00:03:48 -07:00
plugin/oji Bug 470282 - nsProxyRelease.h include guard is not setup properly. r+bnewman 2009-03-11 20:22:48 -07:00
probes Landing basic framework for dtrace support (bug 388564). Patch by john.rice@sun.com and padraig.obriain@sun.com. r+a=ted.mielczarek@gmail.com, sr=sayrer@gmail.com 2007-10-10 16:03:14 -07:00
profile b=477727; WinCE doesn't have DELETE_ON_CLOSE; r=dougt 2009-02-10 15:10:08 -08:00
rdf Port xpcom to 64-bit Mac OS X, part 1. b=478687 r=mstange sr=bsmedberg 2009-03-06 12:32:57 -06:00
security Bug 412749 - "self signed" should read "self-signed". r=kaie, ui-r=johnath 2009-03-11 13:26:44 +01:00
storage Bug 481261 - Expose when queries are being inefficient in debug builds. 2009-03-12 14:30:15 -04:00
sun-java Bug 454097 - [OS/2] get rid of VisualAge in configures; m-c part; r=mozilla 2008-10-11 03:01:28 +02:00
testing bug 482084 - rewrite xpcshell test harness, bustage fix followup, sort the results of glob 2009-03-11 16:29:45 -04:00
toolkit Bug 481227 - nsAnnoProtocolHandler gets favicon data synchronously from the database 2009-03-12 17:49:37 -04:00
tools Don't rely on NS_TraceMallocStartupArgs to initialize TLS index. (Bug 442192) r=brendan 2009-03-11 07:51:30 -07:00
uriloader Bug 482370 - after noupdate documents are associated with the wrong application cache. r+sr=jst 2009-03-10 14:58:00 -07:00
view Bug 298889 - iframe invisible when window is transparent; r+sr=roc 2009-02-24 17:53:32 +01:00
webshell Bug 461888 - Remove unused PACKAGE_FILE and PACKAGE_VARS and .pkg files, mozilla-central part, r=bsmedberg 2008-11-03 19:46:28 -08:00
widget Bug 390734 - groupboxes need native theming on Windows. ui-r=faaborg, r+sr=vlad 2009-03-11 19:11:01 -07:00
xpcom Bug 470282 - nsProxyRelease.h include guard is not setup properly. r+bnewman 2009-03-11 20:22:48 -07:00
xpfe Bug 474369 - get rid of nsVoidArray; xpfe part; r+sr=neil 2009-03-08 10:38:59 +01:00
xpinstall Bug 474763: Enable xpinstall test suite and fix switching on/offline. r=bsmedberg 2009-02-24 13:12:54 -08:00
xulrunner Bug 442109 - youtube videos don't play; r=vladimir 2009-02-25 16:25:12 +01:00
.hgignore Bug 97954: Allow SpiderMonkey to be built on its own, or as part of Mozilla. 2008-10-29 08:29:22 -07:00
.hgtags Added tag FENNEC_M11 for changeset f817a4378f32 2009-02-10 20:20:24 -05:00
aclocal.m4 Bug 40967 - Avoid leaking MSYS paths in Makefiles: use c:/dir/path paths whenever possible, r=ted 2009-03-09 10:55:41 -04:00
allmakefiles.sh bug 474737 - Windows ce tools refactor, NPOTB r=dougt, ted 2009-01-28 13:13:56 -05:00
client.mk Bug 422986 - client.mk doesn't support parallel make. r=ted 2009-02-19 18:23:17 +01:00
client.py Bug 454594: need a makefile target that can upload files via ssh. r=bsmedberg, NPOB 2008-11-13 15:37:04 +00:00
configure.in Bug 473705: Enable SVG Animation (SMIL) support in builds by default. r+sr=roc 2009-03-10 13:36:38 -07:00
LEGAL
LICENSE Revert License to previous version to make the SeaMonkey installer suck less. 2007-01-08 18:59:04 +00:00
Makefile.in bug 420474 - upload debug info for Linux and mac builds to symbol server. r=bsmedberg 2009-03-11 11:56:57 -04:00
README.txt Bug 471548 - Add link in readme to moz-central. r=bsmedberg 2009-02-07 13:47:00 +01:00

An explanation of the Mozilla Source Code Directory Structure and links to
project pages with documentation can be found at:

    https://developer.mozilla.org/en/Mozilla_Source_Code_Directory_Structure

For information on how to build Mozilla from the source code, see:

    http://developer.mozilla.org/en/docs/Build_Documentation

To have your bug fix / feature added to Mozilla, you should create a patch and
submit it to Bugzilla (http://bugzilla.mozilla.org). Instructions are at:

    http://developer.mozilla.org/en/docs/Creating_a_patch
    http://developer.mozilla.org/en/docs/Getting_your_patch_in_the_tree

If you have a question about developing Mozilla, and can't find the solution
on http://developer.mozilla.org, you can try asking your question in a
mozilla.* Usenet group, or on IRC at irc.mozilla.org. [The Mozilla news groups
are accessible on Google Groups, or news.mozilla.org with a NNTP reader.]

You can download nightly development builds from the the Mozilla FTP server.
Keep in mind that nightly builds, which are used by Mozilla developers for
testing, may be buggy. Firefox nightlies, for example, can be found at:

    ftp://ftp.mozilla.org/pub/firefox/nightly/latest-trunk/