Commit Graph

17608 Commits

Author SHA1 Message Date
Brendan Eich
a2af1922f6 Merge. 2008-08-11 13:07:00 -07:00
Brendan Eich
40050a1e4d Try fixing LOAD_INTERRUPT_HANDLER based on Andreas's patch. 2008-08-11 13:05:28 -07:00
Brendan Eich
7e793185ea Match JSOP_NULLTHIS up to JSOP_NULL special cases in the decompiler. 2008-08-11 13:03:47 -07:00
Andreas Gal
120117749e Don't try to access the name of arguments beyond nargs (r=brendan). 2008-08-11 12:47:18 -07:00
Andreas Gal
285acf8b9c Merge. 2008-08-11 11:43:59 -07:00
Andreas Gal
a8e0893484 Avoid goto across initialization of sprop2 (446508). 2008-08-11 11:43:40 -07:00
Andreas Gal
ca11b2e069 Don't use asprintf (446508). 2008-08-11 11:37:35 -07:00
Brendan Eich
13cfac8f97 Rework GCF_DONT_BLOCK to be cx->gcDontBlock, assert it's set, set before entering trace and clear on exit. 2008-08-11 11:18:16 -07:00
Brendan Eich
a56862bdff Make js_ConcatStrings JS_FASTCALL and use directly as a built-in; remove gcflag param from it and from js_NewString. 2008-08-11 11:03:54 -07:00
Brendan Eich
40573b479e Unregress FastNewObject builtin to handle user-defined constructors (note to self: run tests before coffee...). 2008-08-11 10:41:08 -07:00
Brendan Eich
7967defc01 Fix ASSERT_VALID_PROPERTY_CACHE_HIT pcoff argument (my bad from 887fc4facdeb). 2008-08-11 10:40:24 -07:00
Brendan Eich
56fac8fe90 Back out extra gcflag param change (859b9a23adbf), I set bad precedent and will back out previous such shortly. Want cx->gcflags instead. 2008-08-11 10:33:23 -07:00
Brendan Eich
fced00a77b - Trace JSOP_NEWINIT/INITPROP/INITELEM/ENDINIT, which required extending the FastNewObject builtin to create a dense Array or a new Object (easy to discriminate on the constructor function's u.n.clasp member).
- Fix record_JSOP_SETELEM to avoid storing if a JSOP_POP that will be skipped follows.
2008-08-11 10:24:47 -07:00
shaver@mozilla.org
ee67ea9db4 extend js_NewObjectWithGivenProto to permit specifying additional new-thing flags (such as GCX_DONT_BLOCK) 2008-08-10 22:56:10 -04:00
Brendan Eich
0d83651633 - Skip dense array object, try prototype, in all JSOP_GET*PROP variants, interpreter and tracer.
- Test entry instead of retesting aobj->map->ops->getProperty == js_GetProperty in JSOP_CALLPROP.
- Handle object and null types as well as booleans in record_JSOP_NOT.
- Trivially implement JSOP_STRICT{EQ,NE} recording by forwarding to the non-strict record methods. This works so long as the latter trace only same-type operands and do no conversions.
2008-08-11 00:05:39 -07:00
Brendan Eich
43649cd01e Record JSOP_LOOKUPSWITCH. 2008-08-10 23:20:24 -07:00
Brendan Eich
207e579fe9 Use true and false for js_EqualString return values now that its return type is bool. 2008-08-10 23:17:28 -07:00
Brendan Eich
64fc3b0367 - Fix shapeless callee guarding to guard on function object value.
- Add JSOP_NULLTHIS to help the tracer guard shapeless callees (see trace-tests.js)
- Culled bogus record_JSOP_CALLGVAR left-over forwarding to record_JSOP_GETGVAR.
- Better shapeless callee tests.
2008-08-10 22:36:48 -07:00
Brendan Eich
a67dad8f4d Reoptimize call and new based on shape guards and branded method-ful scopes -- no need to emit function-is-interpreted guards. 2008-08-10 15:26:39 -07:00
Brendan Eich
622dce0a42 joinTest. 2008-08-10 15:21:14 -07:00
Brendan Eich
0099753ff4 Add Array (generic) join builtin, plus (not yet used) optional this-class guarding for builtins. 2008-08-10 14:50:31 -07:00
Brendan Eich
5bbc609a8b Implement JSOP_OBJECT. 2008-08-10 12:01:03 -07:00
Brendan Eich
e5b0039eaa Match native map guard specializations in tracer to interpreter, particularly to skip up the proto chain from a dense array in JSOP_CALLPROP (json2.js showed an abort here, pointing to the tracer/interpreter discrepancy). 2008-08-10 11:54:27 -07:00
Brendan Eich
18248a701c Fix JSOP_FORLOCAL to push false when guarded conditions are false while recording (449961). 2008-08-10 10:42:21 -07:00
Brendan Eich
2991c66416 - Avoid unnecessary FASTCALL builtin wrappers for existing js_* library-private or friend functions, which could be (and now are) fastcall (JS_FASTCALL). A couple of builtins avoid name collisions by using js_Fast instead of just js_ as their name prefix.
- Use GCF_DONT_BLOCK from fastcall builtins that call into the GC allocator (mostly; a few places need help still, or better: need to avoid allocation).
- Cope with C clients of jscntxt.h and its include files (these hacks should go away).
- Naming convention and function definition line-break style nit-picks.
2008-08-10 00:39:18 -07:00
Brendan Eich
f2b84e6ea0 - Test JSVAL_BOOLEAN tag in TraceRecorder::record_JSOP_TYPEOF, assert no holes or other pseudo-booleans, to unify false/true/undefined testing.
- JS_NOT_REACHED("...") not JS_ASSERT(0 && "...").
-
2008-08-09 22:27:58 -07:00
Brendan Eich
9a1bab4473 Restore C compilation support to jscntxt.h, used by liveconnect (only one file now: jsj_JavaClass.c had no need to include jscntxt.h). 2008-08-09 22:25:54 -07:00
Brendan Eich
8d0b5ebbdc camelCaps test names restored (NewTest => newTest, etc.). 2008-08-09 22:24:49 -07:00
shaver@mozilla.org
bd5846e102 JSOP_ANONFUNOBJ 2008-08-09 23:12:32 -04:00
shaver@mozilla.org
a937f98d5b JSOP_TYPEOF and JSOP_TYPEOFEXPR 2008-08-09 22:54:01 -04:00
shaver@mozilla.org
c4ca6755bf Builtin for String.prototype.concat (single int-arg version) 2008-08-09 22:15:21 -04:00
shaver@mozilla.org
3341bf1c11 Implement cmp for string-on-string.
Add < and > tests for strings.
Condition the top-level truthies test on a synthetic test name, so it can be
excluded.
2008-08-09 21:50:52 -04:00
Robert Sayre
c8dd484645 Bug 449978 – TM: trace some more builtins for string-validate-input 2008-08-09 21:47:52 -04:00
Robert Sayre
b31572b1d5 Bug 449972 – TM: give xpcshell a JIT switch 2008-08-09 18:36:17 -04:00
Robert Sayre
2ac505035a Bug 449666 – TM: Assertion failure: JSSTRING_IS_FLAT during trace recording. r=brendan 2008-08-09 18:20:18 -04:00
Brendan Eich
337988cd85 Fix obj2 typo, meant obj (obvious use-before-set, sorry about that). 2008-08-09 13:30:49 -07:00
shaver@mozilla.org
33b067062b restore preference for getarg+length over getargprop 2008-08-09 15:48:38 -04:00
shaver@mozilla.org
d431dd547d improve naming of anonymous functions and excess args 2008-08-09 15:05:34 -04:00
Brendan Eich
c90cc76482 Prettier spacing knownNatives table. 2008-08-08 22:43:31 -07:00
Andreas Gal
36eb8da275 Merge. 2008-08-08 19:24:50 -07:00
Andreas Gal
66dd6aab15 Add an assert to protect against nested exits (not implemented yet.) 2008-08-08 19:23:28 -07:00
Brendan Eich
eaf4254c15 Merge from mozilla-central. 2008-08-08 18:58:04 -07:00
Andreas Gal
8244eafaff Support calling of nested tree from within inlined frames. When we call a tree that tree expects to be the top-level tree, which means it assumes callDepth=0. If the call of the tree is within an inlined frame, thats not true (callDepth > 0). We adjust the native stack pointer accordingly before calling the tree, and then restore the value of the stack pointer after the call. Fancy stuff. 2008-08-08 18:52:08 -07:00
Andreas Gal
3f90159e8b Remove ip from InterpState. Calculate the new pc after a trace side exit relative to lr->from->root->ip, which also works if we side exit on a different tree than we entered (which can happen in case of nested trees.) 2008-08-08 18:20:20 -07:00
Brendan Eich
f028f26f52 Merge. 2008-08-08 16:40:45 -07:00
Brendan Eich
072c7b59a5 Guard against shapeless callees, with tests (more to do here, can't break the unknown callee case yet, but it should be breakable). 2008-08-08 16:37:01 -07:00
Paul O'Shannessy
055353d090 Bug 449810 – legacy storage module should throw on canceled master password entry in getAllLogins. r=dolske 2008-08-08 16:04:27 -07:00
Andreas Gal
c7be42f2f3 Add very preliminary nesting for trees. This is disabled by default. To enable set TRACEMONKEY=nesting in the environment. 2008-08-08 15:26:31 -07:00
Brendan Eich
de40e589da Merge. 2008-08-08 14:45:27 -07:00
Brendan Eich
153e03bb32 Get operator new on interpreted functions working, along with JSOP_SETPROP on an unmutated object, or one of the right shape but where the setprop is adding the next property, and it's not in the object yet. 2008-08-08 14:38:44 -07:00