Commit Graph

281 Commits

Author SHA1 Message Date
Jeff Walden
e93935e339 Bug 514568 - Trace strict eval frame Call objects correctly, keep the eval script safe from GC, and properly put strict eval Call objects when the script completes. r=igor 2011-01-05 13:55:18 -06:00
Robert Sayre
a562bdb2a8 Backed out changeset 2e94f0b8d03c 2011-01-06 21:41:25 -05:00
Jeff Walden
9bfd43b2d9 Bug 514568 - Trace strict eval frame Call objects correctly, keep the eval script safe from GC, and properly put strict eval Call objects when the script completes. r=igor 2011-01-05 13:55:18 -06:00
Jeff Walden
de8c94c378 Bug 514568 - Use a fresh variable environment for strict mode code run by eval, and give strict mode eval code frames a Call object backed by those variables. r=igor 2010-10-12 11:38:06 -07:00
Jeff Walden
f489d4756b Bug 621943 - Generator frames don't correctly steal strict arguments from stack frames. r=luke 2011-01-01 23:34:33 -06:00
Luke Wagner
57bcfa328d Bug 612329 - Don't cache code-ptr in Invoke gatling gun (r=waldo) 2011-01-03 09:06:30 -08:00
Jeff Walden
59814e4551 Bug 620315 - "Assertion failure: unexpected constantly false guard detected" with "use strict", 4 > this. Fix a problem where we weren't marking functions created by |new Function| as accepting a primitive this value when their body was strict mode, by removing the duplicative bit that was being checked. r=dmandelin 2010-12-22 18:05:07 -05:00
Steve Fink
663f65a576 Bug 615277 - Implement topLevelHook for JM, match jsinterp.cpp implementation. r=dmandelin
--HG--
extra : rebase_source : 0eb332476f259b0ff256a9113d2955d55ec4ed45
2010-12-10 11:40:00 -08:00
Jason Orendorff
40cdddfee7 Bug 617405 - Assertion failure: isObject() after defining getter on .prototype property of constructor. Take 2, removes two wrong tests. r=Waldo. (Additional r=Waldo on IRC to remove the tests.)
--HG--
extra : rebase_source : 288d966f1ee349e489e0151f8b2672ce4b611c56
2010-12-08 17:01:42 -06:00
Jason Orendorff
02972ef6e4 Backed out changeset b890994e2595. Orange. 2010-12-08 17:42:35 -06:00
Jason Orendorff
66de58ce24 Bug 617405 - Assertion failure: isObject() after defining getter on .prototype property of constructor. r=Waldo.
--HG--
extra : rebase_source : 63c64f5435059473fdc3d2cff7df906628c2a760
2010-12-08 17:01:42 -06:00
Luke Wagner
4e2b64b09c Bug 612329 - Don't use gatling gun in debug mode; temporarily assert in release that cached code ptr is valid (r=damdelin) 2010-11-16 14:50:55 -08:00
timeless
953d1ecec1 Bug 609687 - Don't call call hook with null hook data (r=lw) 2010-11-16 14:16:49 -08:00
Luke Wagner
a96ea21a31 Bug 603193 - Set JSFRAME_HAS_PREVPC when activating generator (r=dvander) 2010-11-12 17:40:24 -08:00
Steve Fink
80ba8d7cfd Bug 605330 - extend jscalls (bug 507012) tracking to cover JM and fix some mismatched calls, r=dvander, a=NPODB
--HG--
extra : rebase_source : 77f64a8ee2c88cbb00ac5671ba2532f71551f28b
2010-09-20 12:43:51 -07:00
Luke Wagner ext:(%2C%20Jan%20de%20Mooij%20%3Cjandemooij%40gmail.com%3E)
43464cfd48 Bug 595884 - JM: make f.apply(x, arguments) fast (r=dvander)
--HG--
extra : rebase_source : 81f5bd888164aecab2f3e701fb31ccf81affbc21
2010-10-21 11:42:28 -07:00
Luke Wagner
6b39ea3337 Bug 605192 - JM: make f.apply(x, obj) fast, part 2 (r=dvander)
--HG--
extra : rebase_source : ed6ddf4e79424bfd22ad9daf79675ac0eef5b16a
2010-10-20 23:52:55 -07:00
Luke Wagner
036c4f5377 Bug 606138 - Gatling gun should guard against clobbered callee/this (r=waldo) 2010-10-28 17:26:19 -07:00
David Anderson
2f0a83a27d Remove JSOP_BEGIN and fix tracer integration issues (bug 603044, r=luke+dmandelin). 2010-10-15 11:36:56 -07:00
David Anderson
0c625a8d1a Backed out changeset 8ea3083a9787 2010-10-15 15:29:57 -07:00
David Anderson
3b03a237fa Remove JSOP_BEGIN and fix tracer integration issues (bug 603044, r=luke+dmandelin). 2010-10-15 11:36:56 -07:00
Nicholas Nethercote
1c23e0dd04 Bug 603825 - Fix a bunch of warnings. r=jwalden. 2010-10-13 16:49:53 -07:00
Jeff Walden
4626f47ec6 Bug 514570 - 3 - Don't box |this| for strict mode functions. r=jorendorff 2010-10-12 11:50:03 -07:00
Jeff Walden
fcbd8eb10b Bug 514570 - 1 - Convert primitive-this-of-type function flags into a single primitive-this flag, to pave way for strict mode unadulterated-this passing. r=jorendorff 2010-10-12 11:50:02 -07:00
Luke Wagner
cbc9601aa0 Bug 581893 - build a js::Invoke Gatling gun (r=waldo) 2010-09-28 15:23:43 -07:00
Luke Wagner
407b2242d7 Bug 598682, part 2 - Minor cleanups to jsinterp.h and jsinterpinlines.h (r=bhackett)
--HG--
extra : rebase_source : bd664d9cd752992faa280d8d3a848058883f57e4
2010-10-05 14:41:58 -07:00
Jim Blandy
b423689891 Bug 598682, part 1 - Minor cleanups to jsinterp.h and jsinterpinlines.h (r=lw)
--HG--
extra : rebase_source : ce5adce0b4f5155afd958f2a083085baf4dbe643
2010-10-05 14:41:55 -07:00
Brian Hackett
d73a0b5f82 Lazify fp->scopeChain, JM call path cleanup. bug 593882, r=lw,dvander. 2010-10-03 08:21:38 -07:00
Bill McCloskey
20e3b7290e Bug 535912 - Eliminate blockChain from JSStackFrame (r=cdleary) 2010-09-29 13:21:36 -07:00
Brian Hackett
1ddca3c75a Improved JM call path, bug 587707. r=lw,dvander 2010-09-29 06:27:34 -07:00
Chris Leary
2fa4fedbc1 Bug 540675: eviscerate JSStackFrame::callerVersion. (r=lw) 2010-09-13 09:38:22 -07:00
Luke Wagner
562fc49870 Bug 539144 - Make formal args a jit-time const offset from fp; rm argv/argc/thisv/script/callobj (r=brendan,dvander) 2010-08-09 22:43:33 -07:00
Luke Wagner
35220d90f3 Bug 619565 - Fix activation object handling by InvokeSessionGuard (r=waldo,a=shaver)
--HG--
extra : rebase_source : 24e4d6ecf1cb9696fda7468eb631f13d92d7ab7a
2011-02-24 12:34:33 -08:00
Robert Sayre
377db48438 Merge tracemonkey to mozilla-central. a=blockers 2011-02-25 10:00:38 -08:00
Brendan Eich
84c3f82dee Further comment fussing (636364, r=me). 2011-02-24 11:13:55 -08:00
Brendan Eich
1fb329e418 Fix comment glitch in last push (636364, r=me). 2011-02-24 11:12:03 -08:00
Brendan Eich
bb7ac49211 Followup fixes and tests in wake of global |this| binding change (636364, r=luke/gal/dvander, thanks to Waldo for the newGlobal shell function). 2011-02-23 19:38:27 -08:00
Luke Wagner
977d6849b3 Bug 635811 - prevent call objects from escaping on error paths (r=dvander,a=hardblocker) 2011-02-23 14:47:34 -08:00
Luke Wagner
08e66296bc Bug 634542 - Back out diagnostic patches (r=dvander,a=backout) 2011-02-19 14:37:46 -08:00
Luke Wagner
e8cc2a25ba Luke Wagner – Bug 634542 - Temporary diagnostic patch 2 (r=dvander,a=shaver) 2011-02-18 18:38:10 -08:00
Luke Wagner
04ad54d7a4 Bug 634542 - Temporary diagnosis patch (r=dmandelin,a=shaver) 2011-02-17 21:42:27 -08:00
Jason Orendorff
25153c3c13 Bug 500431 part 1 - Move property cache code to jspropertycache{.h,.cpp,inlines.h}. r=brendan.
--HG--
extra : rebase_source : f7a7bb63bc3cded9452807ecdd0b5b8e8f5b3ff6
2010-03-24 16:16:01 -05:00
Brendan Eich
f819b36cf4 Use direct object shape instead of identity as key for deep property cache hits (497789, r=jorendorff). 2010-03-22 11:11:44 -07:00
Igor Bukanov
f74b35769d bug 538463 - caching only single-threaded objects. r=jorendorff 2010-02-03 13:42:07 +03:00
Luke Wagner
d45e4526c5 Weaken overzealous assert in JSStackFrame::resetInvokeCallFrame (r=warnings-as-errors) 2011-03-23 19:12:40 -07:00
Luke Wagner
0c2e8ddaba Bug 636296 - Put activation objects when we pop the frame, not in ScriptEpilogue (r=dvander) 2011-03-14 11:30:36 -07:00
Luke Wagner
a15ba4f804 Bug 636296 - Change meaning of JSStackFrame::hasCallObj to be more sane (r=waldo) 2011-03-14 11:30:36 -07:00
Luke Wagner
5359dd7f1a Bug 636296 - Split out ScriptDebug{Pro,Epi}logue (r=dvander) 2011-03-14 11:30:35 -07:00
Luke Wagner
c10400d3f1 Bug 636296 - Tidy up JSStackFrame (r=dvander) 2011-03-14 11:30:35 -07:00
shaver@mozilla.org
5089017f47 only build JIT builtins if ENABLE_JIT, and lose antique *inlines.h 2008-07-11 00:10:27 -04:00
Andreas Gal
6eb6314e75 Support recording of ValueToECMAInt32, ValueToECMAUint32 and ValueToBoolean. 2008-07-02 21:48:42 -07:00
Andreas Gal
e70272bfab Removed attempt to imply ints into doubles on the fly. This can't work. Use proper float loads where needed and add some initial code for builtin functions. 2008-07-02 14:38:12 -07:00
Andreas Gal
42fcff4b38 Backed out changeset 745089a5d1c5 2008-07-02 09:35:08 -07:00
shaver@mozilla.org
fca47a2d95 no need for rooting of integer values 2008-07-02 08:11:27 -04:00
Andreas Gal
8113879262 This patch eliminates ValueToECMAInt32 and instead tries to emit specialized code depending on the true type. 32-bit integers are detected and treated like integers in fetch_int via ValueToECMA32. Similarly, int store_int NewIntInRootedValue is used if the value is really an underlying int. NewIntInRootedValue is a nop on the trace. 2008-07-02 03:33:18 -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
shaver@mozilla.org
fac133d1e5 Implement icmp_ne (in terms of LIR_ugt(i, 0)!) and make JSOP_NE traceable. 2008-06-28 17:47:33 -04:00
Andreas Gal
b6773c0340 Move obj_is_xml into interp since its not a primitive. 2008-06-28 10:12:24 -07:00
Andreas Gal
44e0963c4e Merge. 2008-06-28 09:58:48 -07:00
Andreas Gal
1f37ae3e62 Small cleanups and licensing blurb housekeeping. 2008-06-28 09:58:15 -07:00
shaver@mozilla.org
cc9079bc60 More work on tracing EQUALITY_OP. Still need to synthesize LIR_ne before it
traces correctly.  (This loses the length-test equality-check short-circuit
for strings, until such time as we have a builtin for EqualStrings as well:
regresses js1_5/String/regress-322772.)
2008-06-28 12:46:21 -04:00
shaver@mozilla.org
4fc71515e0 Add guards for XML objects, and some tracer bits to accommodate them. 2008-06-27 23:58:06 -04:00
Andreas Gal
5d9de143af More concise conversion from object to boolean. 2008-06-27 07:48:18 -07:00
Andreas Gal
e59076860a Instead of guarding on null -> boolean conversion just emit a null compare and use the boolean result. 2008-06-27 06:53:10 -07:00
Andreas Gal
3492763c96 Throw out a bunch of primitives (guards) that we are no longer interested in. 2008-06-27 06:18:12 -07:00
Andreas Gal
49fe7a95eb More cleanup and code move into TraceRecorder and prepare for LIR_ov. 2008-06-26 23:22:16 -08:00
Andreas Gal
3197b76462 Mork work on attaching nanojit to our primitives. Traces have now their own box type (Box), which is an opaque 64-bit value. Its never supposed to appear in the trace since we will optimize away all boxing operations. 2008-06-21 22:28:41 -07:00
Andreas Gal
e04746d2c0 Make fast inc/dec traceable. 2008-06-18 17:40:32 -07:00
Andreas Gal
1a0333027b Added new primitive guard_can_do_fast_inc_dec and report reason for trace aborts. 2008-06-18 16:23:24 -07:00
Andreas Gal
6fedd2b687 Call into the recorder for each primitive. Don't use vp in primitives, use &v instead. 2008-06-15 16:31:28 -07:00
Brendan Eich
74c80d5597 Kill trailing spaces. 2008-06-11 13:07:24 -07:00
Andreas Gal
73698e5e72 Pass JSContext* to all primitives (needed by the recorder.) 2008-06-11 11:46:47 -07:00
Andreas Gal
50bf94c527 Notify recorder when tracing starts/stops. Restore code accidently lost during last merge. 2008-06-11 01:22:39 -07:00
Andreas Gal
c79c0bfeef Added code to switch to the tracer and back. Incomplete and for review only. 2008-06-10 22:20:05 -07:00
Andreas Gal
17d0d41459 Added branch monitoring using a single unified branch frequency counter. 2008-06-10 16:49:05 -07:00
Andreas Gal
9684e2070f Introduced a JavaScript recording script that is loaded dynamically. 2008-06-03 21:01:23 -07:00
Brendan Eich
b2ee0f4849 Fix so it compiles, also avoid else after return. 2008-06-03 12:37:20 -07:00
Andreas Gal
53060c32ce Move all inlines that do not represent primitives out of jsinterpinlines.h since we don't have to overwrite them in jstracerinlines.h. They live in jsinterp.cpp now. Added missing error handling for prim_ddiv and prim_dmod. Make sure prim_ddiv and prim_dmod do not call other primitives. Fixed bug in dmod (-1 should be n, but since all invocations had n=-1 this was a non-issue). 2008-06-02 23:26:17 -07:00
Brendan Eich
ea827846a5 Avoid overlong lines per modeline comments. 2008-06-02 17:16:14 -07:00
Andreas Gal
a6ded872bf Steer macro naming in jsinterinlines.h using a macro. This allows us to prefix all primitives with some prefix (i.e. interp_) when we compile the tracer and replace them with new primitives that invoke the interpreter version first, and then do some tracer specific action. 2008-05-29 17:14:42 -07:00
Brendan Eich
8bfb8bfef7 Split trace-supporting inlines, add ifdefs/macros for deriving js_TracingInterpret in jstracer.cpp. 2008-05-28 19:07:25 -07:00