Commit Graph

60 Commits

Author SHA1 Message Date
Brendan Eich
cce4dce512 Join lambdas assigned or initialized as methods to the compiler-created function object if we can, with a read barrier to clone on method value extractions other than call expressions (471214, r=jorendorff). 2009-09-03 14:41:19 -07:00
Jason Orendorff
52fe5a97ba Bug 497618 - Change JSString macros to methods. r=Waldo. 2009-06-10 20:29:44 -05:00
Brendan Eich
7b9f2ffb1f Bug 488015 - Crash [@ js_GetUpvar ] (also bogus JS errors, also probably Crash [@js_Interpret]) (future r=mrbkap, see bug). 2009-04-15 01:57:13 -07:00
Igor Bukanov
d738892163 Backed out changeset 595ebe7b82fa - it had wrong patch 2009-04-11 10:07:42 +02:00
Igor Bukanov
de22fe3e47 bug 462734 - fixing JSOP_BINDNAME caching issues. r=brendan 2009-04-11 10:04:24 +02:00
Igor Bukanov
fd755722cc bug 486713 - fixing flag propagation to generator expression function. r=brendan 2009-04-10 20:50:47 +02:00
Brendan Eich
b9323a1394 Bug 487209 - erroneous redeclaration of let ... with try {...} catch(e) {var e...} (r=mrbkap). 2009-04-08 18:42:20 -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
09ffabb7a1 bug 485164 - fixing sharp semantic regressions. r=mrbkap 2009-04-03 09:53:02 +02:00
Igor Bukanov
fdf059f766 bug 486139 - annotating destructuring JSOP_DUP for the decompiler. r=brendan 2009-04-02 16:31:54 +02:00
Igor Bukanov
7548565a13 bug 486124 - removal of unused TCF_HAS_DEFXMLNS. r=mrbkap 2009-04-01 10:33:43 +02:00
Jim Blandy
ede7e6d142 Bug 391488: Eliminate PTRDIFF macro; delete jssttddef.h. r=jimb
Delete jsstddef.h, since its only remaining purpose is to make certain
Win16-specific definitions; we don't support Win16 any more.  In
particular, we can just subtract pointers now, so the PTRDIFF macro is
unnecessary noise.

Most places get stddef.h via jstypes.h or some other header, so we can
just delete #inclusions of jstddef.h.  The exception is jskwgen.h, so
there we explicitly include <stddef.h> instead.
2009-02-18 09:14:51 -08:00
Igor Bukanov
5fb2f0b511 bug 467495 - JSOP_DEFUN fixes to deal with non-top-level function statements redeclaring local argument and variables. r=brendan 2009-02-05 14:11:04 +01:00
Brendan Eich
5c85747b5c Bug 441479 - for-in loops should use one backward branch (with downward goto on entry; r=mrbkap). 2008-10-22 12:47:51 -07:00
Brendan Eich
a4e4559fa5 Bug 381843 - Move for-var-in and for-let-in hoisting from the emitter to the parser (r=mrbkap). 2008-10-08 18:43:28 -07:00
Igor Bukanov
23c5063560 bug 446386 - eliminating compiler pseudo-frames. r=brendan 2008-09-08 11:47:12 +02:00
Taras Glek
b9b82a2bc3 bug 443286: avoid hidden return in CHECK_AND_SET_JUMP_OFFSET. r=igor 2008-09-02 20:50:19 -07:00
Brendan Eich
18d5749230 Fix upvar decompilation for eval-from-fun case (452441, r=igor). 2008-08-29 00:24:11 -07:00
Andreas Gal
8a6d79d6b6 Annotate gotos that are emitted for break statements with SRC_BREAK (452122, r=mrbkap). 2008-08-25 14:34:26 -07: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
d491ed65d3 Fix some comments and tighten up assertions about block scope (mrbkap please look). 2008-08-11 23:45:40 -07:00
Brendan Eich
eaf4254c15 Merge from mozilla-central. 2008-08-08 18:58:04 -07:00
Blake Kaplan
3838ee5d02 Don't pass around information we don't use. bug 448595, r=brendan 2008-08-04 16:36:35 -07:00
Brendan Eich
a8c6046d8c Avoid JSOP_POPV in global scripts from load(), etc. 2008-07-26 01:23:12 +02:00
shaver@mozilla.org
8a97552a28 merge (mostly, doesn't build) 2008-07-22 23:58:43 -04:00
Brendan Eich
a6bb7cfc89 Always select gvar ops for declared global vars, instead of only if loopy/enough-used (445901, r=shaver). 2008-07-21 15:14:14 -07:00
Igor Bukanov
fc68712767 bug 441686 - eliminating JSStackFrame.(nvars|vars). r=brendan 2008-07-20 22:13:17 +02:00
Brendan Eich
78677269db Always select gvar ops for declared global vars, instead of only if loopy/enough-used. 2008-07-17 14:37:25 -07:00
shaver@mozilla.org
d571eaac32 Merge with mozilla-central as of c5dc9d84d476, and restore obj-to-boolean fixes
from 2b107c27dedf (accidentally backed out during an earlier merge).  22 test
suite failures for -L lc2 lc3 spidermonkey-n slow-n, probably needs some guard
work in TRY_BRANCH_AFTER_COND.
2008-06-29 10:01:59 -04:00
Brendan Eich
e93d1c1869 Fix bogus js_Emit return value tests (438986, r=igor). 2008-06-18 18:50:33 -07:00
Igor Bukanov
0c39954dfd [Bug 439624] renaming decltype to declType as the former is a keyword in the next C++ standard. 2008-06-18 23:35:53 +02:00
Andreas Gal
a1bf0819b2 Removed JSOP_HEADER code. Its too costly. This patch restore essentially the same performance as unmodified SM. 2008-06-10 14:44:51 -07:00
Brendan Eich
9c2b039d6f JSOP_HEADER takes a byte index of loop header counting from script->loopBase, and related changes. 2008-06-03 14:48:47 -07:00
Andreas Gal
de3107d2ee Add a per-runtime loop attribute table that associates a jsval attribute with every loop in the code. The jsval is used initially as a counter until a certain threshold is reached, at which point the loop is traced and compiled and the resulting native code object is stored in the jsval to be executed for future encounters of the loop. 2008-05-30 10:11:56 -07:00
Brendan Eich
ed4274e179 Instrument loop headers with jsvals above fp->vars and below fp->spbase. 2008-05-28 19:07:32 -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
igor@mir2.org
ac22737548 Bug 309894: non-recursive XML-filtering implementation. r,a1.9=brendan 2008-02-13 06:32:31 -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
brendan@mozilla.org
6fdb9f94ad Support let in switch-case statement lists, scoped by switch body (411279, r=mrbkap). 2008-01-08 16:49:35 -08:00
brendan@mozilla.org
9ced524053 Require explicit body block in 'for (let x ...) let y...' (410981, r=mrbkap). 2008-01-07 01:41:28 -08:00
brendan@mozilla.org
cfbfe3c2cd Track ES4 proposal by restricting let declaration to be direct child of block (408957, r=mrbkap). 2008-01-04 17:34:11 -08:00
igor@mir2.org
136aa3e109 Bug 410653: make sure that the generator cleanup code is called on all code paths. r,a=brendan 2008-01-03 10:13:42 -08:00
igor@mir2.org
365cedcc72 Bug 408271: check for missing return when parsing a function body in one place. r,a=brendan 2007-12-21 11:11:46 -08:00
crowder@fiverocks.com
eade185112 Bug 407024 - Fatal JS_Assert "JSVAL_IS_NUMBER(pn3->pn_val) || JSVAL_IS_STRING(pn3->pn_val) || JSVAL_IS_BOOLEAN(pn3->pn_val)", patch by Igor Bukanov <igor@mir2.org>, r=brendan, approvalM10=schrep 2007-12-07 13:36:58 -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