Brendan Eich
5de171f5f5
Don't assume a script with sharps whose caller has no sharps has no other fixed slots (516262, r=igor).
2009-09-14 10:29:56 -04:00
Brendan Eich
016b0f207a
Bug 514981 - JSStackFrame::sharp{Array,Depth} should be locals allocated due to #n[#=] usage (r=igor).
2009-09-09 20:21:15 -07:00
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