Commit Graph

212 Commits

Author SHA1 Message Date
Brian Hackett
3e0ad0ceba [INFER] Improve performance for non-reentrant closures, bug 663138. 2011-09-01 12:20:30 -07:00
Brian Hackett
8e19ba6201 [INFER] Encapsulate GC arena/cell iteration, bug 679887. 2011-08-26 12:39:31 -07:00
Brian Hackett
045638a1ea Merge MC -> JM 2011-08-26 11:23:35 -07:00
Brian Hackett
7f4dcc90fb [INFER] Use mark stack for type objects, bug 679887. 2011-08-26 09:50:48 -07:00
Brian Hackett
6e0458f6d1 [INFER] Watch for recompilation triggered by while compiling a call in an inlined frame, bug 680951. 2011-08-26 08:55:00 -07:00
Jason Orendorff
04e98f6fd3 Bug 677386 - Fix jsdbg2 breakpoint GC rules. r=billm. 2011-08-24 18:42:19 -05:00
Jason Orendorff
51d9a1ec05 Fix a breakpoint GC bug found by billm. See bug 677386 comment 8, first paragraph. r=billm on IRC. 2011-08-24 18:42:19 -05:00
Jason Orendorff
b33e0d70c3 Bug 680428 - onEnterFrame does not work with tracejit. r=dvander.
--HG--
rename : js/src/jit-test/tests/debug/onEnterFrame-05.js => js/src/jit-test/tests/debug/onEnterFrame-04.js
2011-08-23 14:42:17 -05:00
Brian Hackett
e3657362df [INFER] Mark singleton JSObjects as well as TypeObjects when a GC is triggered during analysis, bug 678240. 2011-08-17 13:16:11 -07:00
Brian Hackett
f3b5be7a42 [INFER] Allocate typeset data and properties from arenas, occasionally purge observed types in compartments, bug 679329. 2011-08-17 06:48:14 -07:00
Brian Hackett
06268c9f02 Merge MC -> JM 2011-08-14 19:51:16 -07:00
Brian Hackett
4c611afd71 Merge MC -> JM 2011-08-12 07:20:08 -07:00
Jason Orendorff
fbb0edbd8d Merge jsdbg2 to mozilla-inbound. See bug 672829. 2011-08-13 13:29:18 -05:00
Jason Orendorff
a84b890520 Address review comments from billm in bug 672829 comment 76. 2011-08-11 16:07:35 -05:00
Jason Orendorff
9bca815475 Address review comments from billm (bug 672829 comment 65). 2011-08-11 00:58:28 -05:00
Jason Orendorff
bba8ad1126 Address review comments from brendan (bug 672829 comment 42). 2011-08-03 19:43:39 -05:00
Brian Hackett
6c3284f1e8 Merge MC -> JM.
--HG--
rename : dom/src/threads/Makefile.in => dom/workers/Makefile.in
rename : dom/src/threads/test/Makefile.in => dom/workers/test/Makefile.in
rename : dom/src/threads/test/WorkerTest.jsm => dom/workers/test/WorkerTest.jsm
rename : dom/src/threads/test/atob_worker.js => dom/workers/test/atob_worker.js
rename : dom/src/threads/test/chromeWorker_subworker.js => dom/workers/test/chromeWorker_subworker.js
rename : dom/src/threads/test/chromeWorker_worker.js => dom/workers/test/chromeWorker_worker.js
rename : dom/src/threads/test/closeOnGC_worker.js => dom/workers/test/closeOnGC_worker.js
rename : dom/src/threads/test/importScripts_worker.js => dom/workers/test/importScripts_worker.js
rename : dom/src/threads/test/importScripts_worker_imported1.js => dom/workers/test/importScripts_worker_imported1.js
rename : dom/src/threads/test/importScripts_worker_imported2.js => dom/workers/test/importScripts_worker_imported2.js
rename : dom/src/threads/test/json_worker.js => dom/workers/test/json_worker.js
rename : dom/src/threads/test/recursion_worker.js => dom/workers/test/recursion_worker.js
rename : dom/src/threads/test/relativeLoad_sub_worker.js => dom/workers/test/relativeLoad_sub_worker.js
rename : dom/src/threads/test/relativeLoad_worker.js => dom/workers/test/relativeLoad_worker.js
rename : dom/src/threads/test/simpleThread_worker.js => dom/workers/test/simpleThread_worker.js
rename : dom/src/threads/test/terminate_worker.js => dom/workers/test/terminate_worker.js
rename : dom/src/threads/test/test_404.html => dom/workers/test/test_404.html
rename : dom/src/threads/test/test_chromeWorker.html => dom/workers/test/test_chromeWorker.html
rename : dom/src/threads/test/test_chromeWorker.xul => dom/workers/test/test_chromeWorker.xul
rename : dom/src/threads/test/test_chromeWorkerJSM.xul => dom/workers/test/test_chromeWorkerJSM.xul
rename : dom/src/threads/test/test_close.html => dom/workers/test/test_close.html
rename : dom/src/threads/test/test_closeOnGC.html => dom/workers/test/test_closeOnGC.html
rename : dom/src/threads/test/test_errorPropagation.html => dom/workers/test/test_errorPropagation.html
rename : dom/src/threads/test/test_fibonacci.html => dom/workers/test/test_fibonacci.html
rename : dom/src/threads/test/test_importScripts.html => dom/workers/test/test_importScripts.html
rename : dom/src/threads/test/test_json.html => dom/workers/test/test_json.html
rename : dom/src/threads/test/test_longThread.html => dom/workers/test/test_longThread.html
rename : dom/src/threads/test/test_navigator.html => dom/workers/test/test_navigator.html
rename : dom/src/threads/test/test_recursion.html => dom/workers/test/test_recursion.html
rename : dom/src/threads/test/test_relativeLoad.html => dom/workers/test/test_relativeLoad.html
rename : dom/src/threads/test/test_simpleThread.html => dom/workers/test/test_simpleThread.html
rename : dom/src/threads/test/test_suspend.html => dom/workers/test/test_suspend.html
rename : dom/src/threads/test/test_terminate.html => dom/workers/test/test_terminate.html
rename : dom/src/threads/test/test_threadErrors.html => dom/workers/test/test_threadErrors.html
rename : dom/src/threads/test/test_threadTimeouts.html => dom/workers/test/test_threadTimeouts.html
rename : dom/src/threads/test/test_throwingOnerror.html => dom/workers/test/test_throwingOnerror.html
rename : dom/src/threads/test/test_xhr.html => dom/workers/test/test_xhr.html
rename : dom/src/threads/test/test_xhrAbort.html => dom/workers/test/test_xhrAbort.html
rename : dom/src/threads/test/threadTimeouts_worker.js => dom/workers/test/threadTimeouts_worker.js
rename : dom/src/threads/test/xhr_worker.js => dom/workers/test/xhr_worker.js
2011-07-28 18:10:31 -07:00
Jason Orendorff
c4f527861a Merge from mozilla-central to jsdbg2. 2011-07-28 13:45:51 -05:00
Brian Hackett
beb3e0531e [INFER] Reduce inference-related script overhead, bug 674609. 2011-07-28 09:16:53 -07:00
Jason Orendorff
75a71f51e8 Merge from mozilla-central to jsdbg2 branch. 2011-07-27 18:23:16 -05:00
Jason Orendorff
722572a323 Rename jsdbg.{h,cpp} to vm/Debugger.{h,cpp}. This addresses a review comment from brendan in bug 627829 comment 42.
--HG--
rename : js/src/jsdbg.cpp => js/src/vm/Debugger.cpp
rename : js/src/jsdbg.h => js/src/vm/Debugger.h
2011-07-27 18:03:34 -05:00
Igor Bukanov
907a4b7654 bug 673795 - part2, using lists of avaiulable chunks for faster chunk selection. r=wmccloskey
--HG--
extra : rebase_source : ae4f5a82bc4042e341fdb5c08e3f0fe4b4ae8935
2011-07-26 09:55:23 +02:00
Jason Orendorff
0a4b0df2c1 Address review comments from brendan (bug 627829 comment 35). 2011-07-22 10:54:36 -05:00
Brian Hackett
dda30fa4b2 Merge MC -> JM 2011-07-21 18:53:37 -07:00
Brian Hackett
6cedc75bac [INFER] Make TypeObject a GC thing, remove lazily created type objects on GC, bug 669969. 2011-07-21 07:28:01 -07:00
Jason Orendorff
f8465f2924 Bug 637985 - Reimplement watchpoints using a JSObject bit. r=jimb. 2011-07-27 17:44:43 -05:00
Blake Kaplan
4dce96c6be Bug 669228 - Don't use the dummy global as a real global. r=jorendorff 2011-07-27 12:33:33 -07:00
Bill McCloskey
e41d5f10b1 Bug 671113 - Poison JSScripts when freed to get more crash data (r=dmandelin) 2011-07-19 14:21:58 -07:00
Jason Orendorff
052fe6b23a In JSCompartment::sweepBreakpoints, enumerate the breakpoints safely instead of reading freed memory. 2011-07-18 16:57:39 -05:00
Jason Orendorff
671bbf0bb1 Merge mozilla-central to jsdbg2. 2011-07-18 10:58:56 -05:00
Brian Hackett
89a7a7eac5 Merge MC -> JM 2011-07-15 14:40:15 -07:00
Brian Hackett
c091101935 [INFER] Lazily create type objects for singleton JS objects, bug 670185. 2011-07-15 10:14:07 -07:00
David Mandelin
0f81026221 Bug 605290: check for null globalObject before innerizing, r=luke 2011-07-13 16:47:10 -07:00
Bill McCloskey
fd629a392b Bug 661903 - Move script filename table to compartment (r=igor) 2011-07-14 16:02:12 -07:00
Brian Hackett
00d04a894d Restore per-compartment empty call shape, bug 670152. r=jorendorff 2011-07-08 11:16:25 -07:00
Brian Hackett
e0c7a11c50 [INFER] Fix build breaks with --disable-methodjit. 2011-07-05 16:52:39 -07:00
Jason Orendorff
26c054bdc4 Rename Debug to Debugger.
--HG--
rename : js/src/jit-test/tests/debug/Debug-clearAllBreakpoints-01.js => js/src/jit-test/tests/debug/Debugger-clearAllBreakpoints-01.js
rename : js/src/jit-test/tests/debug/Debug-ctor-01.js => js/src/jit-test/tests/debug/Debugger-ctor-01.js
rename : js/src/jit-test/tests/debug/Debug-ctor-02.js => js/src/jit-test/tests/debug/Debugger-ctor-02.js
rename : js/src/jit-test/tests/debug/Debug-ctor-03.js => js/src/jit-test/tests/debug/Debugger-ctor-03.js
rename : js/src/jit-test/tests/debug/Debug-debuggees-01.js => js/src/jit-test/tests/debug/Debugger-debuggees-01.js
rename : js/src/jit-test/tests/debug/Debug-debuggees-02.js => js/src/jit-test/tests/debug/Debugger-debuggees-02.js
rename : js/src/jit-test/tests/debug/Debug-debuggees-03.js => js/src/jit-test/tests/debug/Debugger-debuggees-03.js
rename : js/src/jit-test/tests/debug/Debug-debuggees-04.js => js/src/jit-test/tests/debug/Debugger-debuggees-04.js
rename : js/src/jit-test/tests/debug/Debug-debuggees-05.js => js/src/jit-test/tests/debug/Debugger-debuggees-05.js
rename : js/src/jit-test/tests/debug/Debug-debuggees-06.js => js/src/jit-test/tests/debug/Debugger-debuggees-06.js
rename : js/src/jit-test/tests/debug/Debug-debuggees-07.js => js/src/jit-test/tests/debug/Debugger-debuggees-07.js
rename : js/src/jit-test/tests/debug/Debug-debuggees-08.js => js/src/jit-test/tests/debug/Debugger-debuggees-08.js
rename : js/src/jit-test/tests/debug/Debug-debuggees-09.js => js/src/jit-test/tests/debug/Debugger-debuggees-09.js
rename : js/src/jit-test/tests/debug/Debug-debuggees-10.js => js/src/jit-test/tests/debug/Debugger-debuggees-10.js
rename : js/src/jit-test/tests/debug/Debug-debuggees-11.js => js/src/jit-test/tests/debug/Debugger-debuggees-11.js
rename : js/src/jit-test/tests/debug/Debug-debuggees-12.js => js/src/jit-test/tests/debug/Debugger-debuggees-12.js
rename : js/src/jit-test/tests/debug/Debug-debuggees-13.js => js/src/jit-test/tests/debug/Debugger-debuggees-13.js
rename : js/src/jit-test/tests/debug/Debug-debuggees-14.js => js/src/jit-test/tests/debug/Debugger-debuggees-14.js
rename : js/src/jit-test/tests/debug/Debug-debuggees-15.js => js/src/jit-test/tests/debug/Debugger-debuggees-15.js
rename : js/src/jit-test/tests/debug/Debug-debuggees-16.js => js/src/jit-test/tests/debug/Debugger-debuggees-16.js
rename : js/src/jit-test/tests/debug/Debug-enabled-01.js => js/src/jit-test/tests/debug/Debugger-enabled-01.js
rename : js/src/jit-test/tests/debug/Debug-getYoungestFrame-01.js => js/src/jit-test/tests/debug/Debugger-getYoungestFrame-01.js
rename : js/src/jit-test/tests/debug/Debug-getYoungestFrame-02.js => js/src/jit-test/tests/debug/Debugger-getYoungestFrame-02.js
rename : js/src/jit-test/tests/debug/Debug-multi-01.js => js/src/jit-test/tests/debug/Debugger-multi-01.js
rename : js/src/jit-test/tests/debug/Debug-multi-02.js => js/src/jit-test/tests/debug/Debugger-multi-02.js
rename : js/src/jit-test/tests/debug/Debug-multi-03.js => js/src/jit-test/tests/debug/Debugger-multi-03.js
2011-07-05 07:48:26 -05:00
Jason Orendorff
1f245d40df Merge from tracemonkey to jsdbg2. 2011-07-01 19:02:40 -05:00
Brian Hackett
dee99963bb Merge TM -> JM 2011-07-01 16:24:32 -07:00
Jason Orendorff
be6339e5c2 Add breakpoints.
This adds a new per-compartment implementation of breakpoints and
reimplements the jsdbgapi.h "trap" entry points on top of it. Most
jsdbgapi.h-using code will still work, but there is no longer a single
runtime-wide trapList protected by a lock. Embeddings must follow the
compartment rules for thread safety.

JS_ClearAllTraps was removed, replaced by the per-compartment API
JS_ClearAllTrapsForCompartment.

The new implementation asserts that the PC passed to JS_SetTrap is
actually an offset of an instruction, not just a random number. This
caused quite a few tests to fail; fixes are included.

Added Debug.Script.prototype.setBreakpoint, getBreakpoints,
clearBreakpoint, and clearAllBreakpoints; and
Debug.prototype.clearAllBreakpoints.

In addition to tests targeting the new functionality, this changeset
includes some tests for Debug.Script.prototype.getLineOffsets, which is
hard to test without breakpoints.
2011-06-28 16:06:34 -05:00
Jason Orendorff
cebed13303 Support disabling debug mode in a compartment with scripts on the stack. Dump the debug-mode JIT code during a later GC. 2011-06-23 12:25:48 -05:00
Jason Orendorff
7b711756ef Fix Debug-ctor-03.js (regression: the exception is being thrown in the wrong compartment since rev e05d3da5866a) and make removeDebuggee throw if it would disable debug mode in a compartment with scripts on the stack. 2011-06-20 15:33:53 -05:00
Jason Orendorff
9c28130121 Back out 305a3a0e26fd (bug 680428). 2011-08-23 15:36:48 -05:00
Jason Orendorff
6514983537 Bug 680428 - onEnterFrame does not work with tracejit. r=dvander.
--HG--
rename : js/src/jit-test/tests/debug/onEnterFrame-05.js => js/src/jit-test/tests/debug/onEnterFrame-04.js
extra : rebase_source : f3c4ff14ae6a95e7c891ea5aac2cfee8c2e28c68
2011-08-23 14:42:17 -05:00
Kyle Huey
d3e7553ab9 Mass revert m-i to the last known good state 2011-07-13 18:22:33 -07:00
David Mandelin
1fdf7dccd7 Bug 605290: Check for null cx->globalObject, r=luke 2011-07-13 16:47:10 -07:00
Brian Hackett
1186d01428 Merge TM -> JM 2011-06-06 09:48:04 -07:00
Brian Hackett
b0ae81df4a [INFER] Apply arguments and script review comments, bug 657412. 2011-06-06 08:32:41 -07:00
Jason Orendorff
6367a9c217 Automatically turn debug mode on/off when adding/removing debuggees.
This allows most of the tests to run without the -d command-line flag.

Now a compartment is in debug mode if
 * JSD1 wants debug mode on, thanks to a JS_SetDebugMode* call; OR
 * JSD2 wants debug mode on, because a live Debug object has a debuggee
   global in that compartment.

Since this patch only adds the second half of the rule, JSD1 should be
unaffected.

The new rule has three issues:

1. When removeDebuggee is called, it can cause debug mode to be turned
   off for a compartment. If any scripts from that compartment are on
   the stack, and the methodjit is enabled, returning to those stack
   frames will crash.

2. When a Debug object is GC'd, it can cause debug mode to be turned off
   for one or more compartments. This causes the same problem with
   returning to deleted methodjit code, but the fix is different: such
   Debug objects simply should not be GC'd.

3. Setting .enabled to false still does not turn off debug mode
   anywhere, so it does not reduce overhead as much as it should.

A possible fix for issue #1 would be to make such removeDebuggee calls
throw; a different possibility is to turn off debug mode but leave all
the scripts alone, accepting the performance loss (as we do for JSD1 in
JSCompartment::setDebugModeFromC).  The fix to issues #2 and #3 is to
tweak the rule--and to tweak the rule for Debug object GC-reachability.

--HG--
rename : js/src/jit-test/tests/debug/Debug-ctor.js => js/src/jit-test/tests/debug/Debug-ctor-01.js
2011-06-02 21:58:46 -05:00
Jason Orendorff
fcfd80cfc5 Merge from TM. Huge merge. Stack changes from bug 656462. 2011-06-15 16:14:09 -05:00