Commit Graph

154 Commits

Author SHA1 Message Date
Brendan Eich
1699be3a87 Bug 541455 - Do not drop "mumble"; would-be directives in the parser, let them be completion values (or useless expressions for the emitter to cull) (r=jimb). 2010-01-22 12:17:13 -08:00
Brendan Eich
983aa690e9 Analyze module pattern and private-statics pattern in order to despecialize from methods to slots/sprops (536564, r=jorendorff). 2010-01-14 09:33:14 -08:00
Jeff Walden
ad6a89209e Bug 517580 - Unconditionally build with support for getters and setters, remove support for the deprecated { x getter: function() {}} and x getter= function() {} getter syntaxes (mutatis mutandis for setter) now that ES5 provides Object.getOwnPropertyDescriptor and Object.defineProperty and { get x() { } } syntax, and provide __{define,lookup}{G,S}etter__ only if a preprocessor variable is defined (unconditionally provided for the moment). r=luke 2009-10-06 12:35:33 -07:00
Chris Leary
c55687cccc Back out changeset fecc8ed9e813. 2010-06-16 01:17:34 -07:00
Dave Herman
ddf90cda8e bug 533874, r=cdleary: expose the parser as a JS API 2010-06-15 13:32:32 -07:00
Jim Blandy
34a27f0c88 Bug 514585: Recognize "use strict" directives. r=igor 2009-11-18 13:33:53 -08:00
Jim Blandy
f06be32d20 Bug 515233: Widen JSTreeContext::flags to 32 bits. r=igor
All the bits in this uint16 field are currently in use.  Adding bits
for projects like strict mode entails relocating existing flags, which
is additional work.  Furthermore, it seems that this has already
inspired people to put flags in places they don't belong:
TSF_DESTRUCTURING is a JSTokenStream flag, but is only used by the
parser.

This patch widens the field to 32 bits, and adjusts JSFunctionBox and
a few other places to match.

We should really replace these all with bitfields.
2009-10-08 10:29:03 -07:00
Jim Blandy
f4a407f114 Bug 515233: Make the static level its own parameter to JSCompiler::compileScript. r=igor
Pre-patch, the initial static level at which a script should be
compiled to run is passed in the upper sixteen bits of the tcflags
parameter to JSCompiler::compileScript; because JSTreeContext::tcflags
is a uint16, while the tcflags parameter is a uint32, we know the
parameter's upper bits are free.

However, we would like to enlarge JSTreeContext::tcflags to 32 bits,
as we already have a handful of new flags that belong there.  This
patch moves the static level to its own parameter, which has a default
argument.
2009-10-08 10:29:03 -07:00
Jim Blandy
f98db45fa3 Bug 510117: Correct pseudocode describing use/def processing. r=brendan 2009-09-10 18:02:08 -07:00
Luke Wagner
3cf8a59c01 Bug 503952 - Use JSTempVector in scanner/parser; remove JSStringBuffer (r=brendan) 2009-08-14 16:10:59 -07:00
Jason Orendorff
335eeb15af Bug 461269 - Remove TOK_RP nodes from the parse tree. r=brendan. 2009-08-10 14:00:46 -05:00
Brendan Eich
4632276b25 Bug 499790 - common sub-expression elim for repeated (PND_ASSIGNED | PND_FUNARG), r=mrbkap. 2009-07-17 11:36:45 -07:00
Jason Orendorff
52fe5a97ba Bug 497618 - Change JSString macros to methods. r=Waldo. 2009-06-10 20:29:44 -05:00
Jason Orendorff
70dbad9c94 Bug 493232 - Wrong variable value accessed in closure. r=brendan. 2009-05-27 15:46:03 -05:00
Brendan Eich
d552a194d4 Bug 493466 - TM: youtube.com customization broken (r=mrbkap). 2009-05-18 18:02:51 -07:00
Jason Orendorff
cd986613f8 Bug 492714 - "Assertion failure: cg->staticLevel >= level, at ../jsemit.cpp" with genexp. r=brendan 2009-05-13 19:02:33 -05:00
Brendan Eich
9eb1ab4a95 Bug 471703 - Don't optimize group assignment given holey RHS (r=igor). 2009-05-07 21:50:32 -07:00
Brendan Eich
e29805bd5a Bug 487561 - More cleanup from bug 452498 and bug 487271 patches (r=mrbkap/igor, and this fixes bug 487570). 2009-04-09 15:05:12 -07:00
Brendan Eich
0b6ed95284 Bug 487538 - bug 487271 left three tests broken in its wake (r=mrbkap). 2009-04-08 18:27:44 -07:00
Brendan Eich
962b187fe5 upvar2, aka the big one take 2 (452598, r=mrbkap). 2009-04-05 21:17:22 -07:00
Andreas Gal
706120c0fb Backed out changeset 972c44aa9d1f (bug 452598). 2009-04-04 10:14:52 -07:00
Brendan Eich
5f4d9ff474 upvar2, aka the big one (452598, r=mrbkap). 2009-04-04 10:05:49 +01:00
Igor Bukanov
a572accd66 bug 419662 - nested function definitions must come after destructuring argument initializer. r=mrbkap 2009-04-03 10:02:27 +02:00
Igor Bukanov
09ffabb7a1 bug 485164 - fixing sharp semantic regressions. r=mrbkap 2009-04-03 09:53:02 +02:00
Brendan Eich
3fcd3cab28 Bug 454184 - Implement eval caching (r=mrbkap). 2009-01-27 19:56:55 -08:00
Brendan Eich
0d6dd5842d Bug 443074 - Incorrect decompilation (missing parens) with genexp in for-loop-condition (r=jorendorff). 2008-10-14 16:13:56 -07:00
Igor Bukanov
23c5063560 bug 446386 - eliminating compiler pseudo-frames. r=brendan 2008-09-08 11:47:12 +02:00
Jim Blandy
90bf6a2d1e Bug 97954: Give jsconfig.h a better name, and make room for the new js-config.h. r=bsmedberg
We'd like the SpiderMonkey configure script to generate a header file
named js-config.h to hold #definitions chosen at configure time that
affect the SpiderMonkey API, like JS_THREADSAFE.  However, that name
is very similar to that of an existing header file, jsconfig.h.  This
patch renames the existing header file, and updates all references to
it.

--HG--
rename : js/src/jsconfig.h => js/src/jsversion.h
2008-09-05 10:19:17 -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
fc68712767 bug 441686 - eliminating JSStackFrame.(nvars|vars). r=brendan 2008-07-20 22:13:17 +02:00
Brendan Eich
d0966c0fc0 Clean up for-in ops and naming nit (443039, r=igor). 2008-07-01 18:59:18 -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
7598733582 [bug 424376] backing out - too much compatibility problems. 2008-03-28 15:27:36 -07:00
igor@mir2.org
d6b3cc6e3b bug=424376 r=brendan a1.9b5=beltzner Compile-time function objects are no longer exposed through SpiderMonkey API. 2008-03-23 03:04:38 -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
1379a0de12 Avoid O(n^2) hazard under JS_ARENA_RELEASE, simplifying arena-pool usage and eliminating debug code (416628, r=igor). 2008-02-11 00:55:02 -08:00
brendan@mozilla.org
2d27499625 Final js1.8 feature: sugar for object destructuring (404734, r=mrbkap). 2008-01-29 22:27:13 -08:00
igor@mir2.org
d8ee415593 Bug 410649: function statement and destructuring parameter name clash now favours the function. r,a=brendan 2008-01-20 02:34:06 -08:00
brendan@mozilla.org
d56e272e19 * Menu of -D flags for enabling instrumentation, as a commented-out CFLAGS += setting for convenient testing. * js_FindProperty and js_LookupPropertyWithFlags return indexes into the scope and prototype chains, respectively, to support internal instrumentation, and to pave the way for the return of the property cache (bug 365851).. * jsutil.[ch] JSBasicStats struct and functions for computing mean/sigma/max and auto-scaling histogram. * JS_SCOPE_DEPTH_METER instrumentation for compile- and run-time scope chain length instrumentation: + At compile time, rt->hostenvScopeDepthStats and rt->lexicalScopeDepthStats meter scope chains passed into the compile and evaluate APIs. + At runtime, rt->protoLookupDepthStats and rt->scopeSearchDepthStats track steps along the prototype and scope chains until the sought-after property is found. * JS_ARENAMETER uses JSBasicStats now. * Added rt->liveScopePropsPreSweep to fix the property tree stats code that rotted when property tree sweeping moved to after the finalization phase. * Un-bitrotted some DEBUG_brendan code, turned some off for myself via XXX. * Mac OS X toolchain requires initialized data shared across dynamic library member files, outlaws common data, so initialize extern metering vars. * Old HASHMETER code in jshash.[ch] is now JS_HASHMETER-controlled and based on JSBasicStats. * DEBUG_scopemeters macro renamed JS_DUMP_SCOPE_METERS; uses JSBasicStats now. * Disentangle DEBUG and DUMP_SCOPE_STATS (now JS_DUMP_PROPTREE_STATS) and fix inconsistent thread safety for liveScopeProps (sometimes atomic-incremented, sometimes runtime-locked). * Compiler-modeled maxScopeDepth will propagate via JSScript to runtime for capability-based, interpreter-inlined cache hit qualifier bits, to bypass scope and prototype chain lookup by optimizing for common monomorphic get, set, and call site referencing a prototype property in a well-named object (no shadowing or mutation in 99.9% of the cases). 2008-01-12 16:31:31 -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
8b7011f509 bug 397289: removing JSParseNode.pn_ts. r,a=brendan 2007-11-13 14:18:17 -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
fa98070cd2 Bug 397210: JSTokenStream is stored in JSParseContext. r=brendan 2007-10-02 16:10:09 -07:00
igor@mir2.org
91ee82b969 Backing out the patch 397210. 2007-10-01 13:46:10 -07:00
igor@mir2.org
9ffab6a112 Bug 397210: JSTokenStream is stored in JSParseContext. r=brendan 2007-10-01 13:25:25 -07:00
igor@mir2.org
ab560f0cb7 Bug 385729: objects and regexps are stored in separated tables in JSScript. r=brendan,mrbkap 2007-07-08 02:03:34 -07:00
crowder@fiverocks.com
daa4556abc Bug 357016: spidermonkey should be buildable by a C++ compiler, patch by
crowder/Jason Orendorff, r=brendan
2007-07-05 13:37:47 -07:00
igor@mir2.org
9137bfaf4e Bug 349326: for-in loop now always closes iterator objects. r=brendan 2007-07-02 05:13:23 -07:00
brendan@mozilla.org
31ef926445 Support generator expressions for JS1.8 (380237, r=mrbkap). 2007-05-17 18:41:17 -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