Commit Graph

2681 Commits

Author SHA1 Message Date
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
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
Brendan Eich
f644a96ebb Better idea for avoiding level-1 property cache collisions. 2008-08-08 14:28:10 -07:00
Brendan Eich
4e0e30452f Improve first-level property cache hash function to avoid collisions in linear sequence of setprops. 2008-08-08 14:12:55 -07:00
Ben Turner
184d478d40 Bug 447711 - "FindInJSObjectScope calls JS from within a request and a lock". r+sr=jst. 2008-08-08 13:13:41 -07:00
Ben Turner
b21229606c Bug 443871 - "Protect against null objects in a title's scope/map". r=brendan. 2008-08-08 12:17:42 -07:00
Igor Bukanov
b16852c1cd bug 412296 - removal of minarg support for fast native 2008-08-08 18:02:50 +02:00
Andreas Gal
c1ce126b85 Don't activate a tree if it has globals, since we can't handle that yet. 2008-08-07 19:59:21 -07:00
Andreas Gal
f2972efa5c Remove tracking of outer trees and merging of globals since globals will be maintained centrally soon, not attached to trees. 2008-08-07 19:40:41 -07:00
Brendan Eich
43f60608f4 Fix bug 449627. 2008-08-07 18:12:31 -07:00
Bob Clary
969199e57d JavaScript Tests - regression test for bug 448595, by Oliver Hunt 2008-08-07 18:00:38 -07:00
Andreas Gal
f77dcbe3f6 We don't deallocate JIT-related data structures when the JIT is shut down. Add a TODO for this. 2008-08-07 17:52:48 -07:00
Andreas Gal
2d0c9c41ab Hand the script in when updating the oracle regarding global variable slots even if we don't use it right now. This will be useful for caching information across runtimes. 2008-08-07 17:43:13 -07:00
Andreas Gal
3ac96b066b Use a typedef SlotList instead of Queue<uint16>. 2008-08-07 17:22:21 -07:00
Andreas Gal
a21818bc72 Teach typemaps how to capture the types of all slots in a slot list. 2008-08-07 17:20:49 -07:00
Andreas Gal
d9159ecfb2 When merging globals from inner trees to outer trees, make sure to push the expected type upstream as well. 2008-08-07 17:08:27 -07:00
Andreas Gal
afda8f7095 When we trash a tree, we have to trash all outer trees that call it as well. 2008-08-07 17:01:00 -07:00
Andreas Gal
d988d3523a Recognize loop edges that hit a nested tree. 2008-08-07 16:41:20 -07:00
Andreas Gal
bbe7acfbaf Fix typo (missing memcmp in statement). 2008-08-07 16:27:26 -07:00
Andreas Gal
600b9c3e14 Remove type-map hash code. A direct memcmp seems to be faster (probably some SSE magic behind it in gcc/glibc). 2008-08-07 16:26:56 -07:00
Andreas Gal
27e8ef817a Factor out the code to capture the current stack type map and move around the type map method implementations to make sure they can see the FORALL macros. 2008-08-07 16:23:50 -07:00
Andreas Gal
01e3af1f79 We expect no interned globals in a new tree. Assert on that. 2008-08-07 15:44:11 -07:00
Andreas Gal
7351e39b63 Merge. 2008-08-07 15:41:50 -07:00
Andreas Gal
00b12bbaca Always trash TreeInfo when we recompile. This avoids the much dreaded JS_ASSERT(insInt32) errors and we can do this now because the demotion information is provided by the oracle and no longer stored in the typemap directly. 2008-08-07 15:38:54 -07:00
Andreas Gal
95f5262e4f Use an oracle to predict when slots are demotable. This allows trashing the TreeInfo* object in the root fragment more aggressively. Rebuild the stack type map at every compile to avert type map mismatches. Purge all global slot info when we re-record a tree. 2008-08-07 15:28:43 -07:00
Brendan Eich
e04a6b22c4 Don't fail to flush cx->thread's JIT cache if JS_THREADSAFE. 2008-08-06 23:38:57 -07:00
Andreas Gal
e09041e2a5 If we run into an error during compilation, blacklist that fragment. If we run out of memory, flush the cache. 2008-08-06 22:26:20 -07:00
Andreas Gal
0fe0cf9a98 Flush JIT cache for all contexts. Clear nanojit error state when we start compiling. 2008-08-06 22:18:33 -07:00
Andreas Gal
e9733ceed9 Remove dead code. 2008-08-06 22:10:30 -07:00
Andreas Gal
9385e7842c Add a helper to flush the JIT code cache (and the fragment lookup quick cache). On a global shape mismatch trash the entire cache (might be a bit overly aggressive). Similary, during GC flush the code cache. 2008-08-06 21:56:25 -07:00
Andreas Gal
cd8d6cd3da Merge. 2008-08-06 19:31:52 -07:00
Andreas Gal
d1a1a76121 Tracker outer trees for every tree and merge globals of inner trees into all outer trees as we register inner trees with outer trees. 2008-08-06 19:25:24 -07:00
shaver@mozilla.org
7c89606155 add tests for missing and excess arity for trace-entry function context 2008-08-06 22:24:39 -04:00
Andreas Gal
6bb6800be5 Add a contains method to Queue. 2008-08-06 19:06:37 -07:00
Andreas Gal
3785f2a5af Fix misleading debug text. 2008-08-06 19:04:41 -07:00
Andreas Gal
ff22344594 Fix tracing of code inside methods that were called with arity mismatch. 2008-08-06 18:51:26 -07:00
Brendan Eich
f23efc77b2 Replace bogus assertion with runtime test for correct abort test (getter or setter, given sprop hit from propcache). 2008-08-06 17:54:36 -07:00
Andreas Gal
c8df243f32 Fix nonEmptyStack1 test. 2008-08-06 17:44:39 -07:00
Graydon Hoare
aaf41f8ee5 Bug 447713, remove the import/export functionality from spidermonkey, r=brendan 2008-08-06 17:34:58 -07:00
Bob Clary
8977765520 JavaScript Tests - regression test for bug 443569, by Jesse Ruderman 2008-08-07 05:18:54 -07:00
Bob Clary
93b3246f1a JavaScript Tests - regression test for bug 442333 2008-08-07 05:00:42 -07:00
Bob Clary
8447a6217c JavaScript Tests - regression test for bug 442242, by Igor Bukanov 2008-08-07 04:47:33 -07:00
Bob Clary
80a4237137 JavaScript Tests - regression test for bug 441477, by Jason Orendorff 2008-08-07 03:23:36 -07:00
Bob Clary
628a0aabbe JavaScript Tests - regression test for bug 440558, by Ben Turner 2008-08-07 02:54:46 -07:00
Bob Clary
c02b8f58c9 JavaScript Tests - regression tests for bug 435345, by Cyrus Omar 2008-08-06 21:58:03 -07:00
Bob Clary
2569db84d4 JavaScript Tests - regression tests for bug 434837, by Cyrus Omar 2008-08-06 21:48:28 -07:00
Bob Clary
aefe5a062e JavaScript Tests - regression tests for bug 446169, by romaxa, Igor Bukanov 2008-08-06 19:59:24 -07:00
Bob Clary
7c449116ff JavaScript Test - binary operator evaluation order, bug 433672 2008-08-06 19:15:12 -07:00
Gavin Sharp
348213c998 Bug 449503: fix --enable-dtrace, r=igor 2008-08-06 17:51:38 -07:00
Andreas Gal
d41941073e Disable outerlining, to be replaced with nesting. 2008-08-06 17:34:06 -07:00
Andreas Gal
1bf2697257 Add a helper to emit a tree-call into the currently recording trace. 2008-08-06 16:24:29 -07:00
Andreas Gal
1b8f21c8f3 Add CallTree builtin. 2008-08-06 15:56:31 -07:00
Andreas Gal
6bd49e0d49 Make ip in InterpStruct const*. 2008-08-06 15:55:00 -07:00
Andreas Gal
bc93ceb9d5 Merge. 2008-08-06 15:04:18 -07:00
Andreas Gal
27de48d1f9 Cleanup stack offset calculation and eliminate the stack offset fiddling that was necessary for nanojit prior to adding the getTop hook. 2008-08-06 15:04:02 -07:00
Brendan Eich
5331ec8967 Add first non-empty stack testcase, which now passes (yay). 2008-08-06 13:53:34 -07:00
Brendan Eich
0f1f29e9a4 Merge again, I lost to Andreas\! 2008-08-06 13:44:07 -07:00
Andreas Gal
2acb2afdec Always trashing the tree on a type mismatch can't work since the first iteration comes in as undefined for loop-outputs and then kills the main tree that deals with the proper stable types. Have to find a different way to deal with this. 2008-08-06 13:41:04 -07:00
Brendan Eich
586464070d Merge. 2008-08-06 13:37:45 -07:00
Andreas Gal
fcaab6d007 Pull recompile flag out of the state and pass in as argument. Trash the tree if a secondary trace can't be connected to the loop header. This is very aggressive and might need more tinkering. Trashing the tree on every mismatch doesn't seem to work well, so thats currently disabled. 2008-08-06 13:37:29 -07:00
Brendan Eich
6e215765df - Add builtins to support for-in loops, both iterating and getting/setter properties by name using o[i] instead of o.p where i is 'p'.
- Record JSOP_ITER and JSOP_ENDITER, which must be handled since tracing could start in between them (and always will, until we nest or unless we outerline).
- Add a null state guard in JSOP_FORVAR's recorder method.
- Pick include order, indentation, and trailing space nits.
2008-08-06 13:36:29 -07:00
Andreas Gal
d1d2895356 Merge. 2008-08-06 13:23:55 -07:00
Andreas Gal
a253b66a09 If we stop recording, immediately attempt to trigger the tree. 2008-08-06 13:18:30 -07:00
shaver@mozilla.org
9615dbd804 add test for non-empty stack on trace entry (fails currently, but no longer crashes) 2008-08-06 16:12:49 -04:00
Andreas Gal
141f71186c Properly deal with trace entry with non-empty stack. 2008-08-06 12:38:17 -07:00
Bob Clary
f4b3de7f12 JavaScript Tests - regression test for bug 433279, by nanto_vi (TOYAMA Nao), Jesse Ruderman 2008-08-06 10:50:20 -07:00
Igor Bukanov
46b1a8edf2 bug 447762 - merging var and local JS bytecodes. r=brendan 2008-08-06 16:13:22 +02:00
Andreas Gal
0ed65746a7 Split side exit handling from js_ExecuteTree. 2008-08-06 06:34:16 -07:00
Bob Clary
ea4d3895ed JavaScript Test - regression test for bug 427798, by Igor Bukanov 2008-08-06 02:39:15 -07:00
Bob Clary
8a5fdc395e JavaScript Tests - regression test for bug 422269, by Igor Bukanov 2008-08-06 02:25:25 -07:00
Bob Clary
4f4763f9a8 JavaScript Tests - regression test for bug 410852, by Rob Sayre 2008-08-06 01:46:49 -07:00
Bob Clary
8112f86430 JavaScript Tests - regression test for bug 438415, by Brian Crowder 2008-08-05 23:47:20 -07:00
Blake Kaplan
40e2a77e0b Bug 449152 - js_CheckAccess should init out params on failure, r=brendan 2008-08-05 14:49:50 -07:00
Bob Clary
8b19078644 merge commit for test, bug 430740 2008-08-05 13:48:32 -07:00
Bob Clary
97df12d1ba JavaScript Tests - modify test for BOM to whitespace conversion, bug 430740 2008-08-05 13:46:36 -07:00
Brendan Eich
a1c6f2606a Comment or/and test framework not being traceable. 2008-08-05 11:36:25 -07:00
Brian Crowder
848148a3cd Bug 384244 - update jsdtoa with interesting pieces of more-recent dtoa, r=igor 2008-08-05 11:18:29 -07:00
Blake Kaplan
3e20948873 Try to fix the orange by overriding platform-specific errors 2008-08-04 18:04:19 -07:00