Commit Graph

202 Commits

Author SHA1 Message Date
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
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
Jim Blandy
88decefd28 Merge from TM. 2011-06-07 12:12:28 -07:00
Jim Blandy
8bd7752c01 Backed out changeset d02083014f57; build problems in nsXPConnect.cpp 2011-06-06 09:01:47 -07:00
Jason Orendorff
6a958619a0 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.  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
Brian Hackett
5c5438cc38 Merge TM -> JM 2011-06-02 12:59:28 -07:00
Brian Hackett
58811dfa16 [INFER] Address array review comments, add back backedge table, bug 657412. 2011-06-01 11:15:51 -07:00
Brian Hackett
1354314184 Merge TM -> JM 2011-05-27 15:08:04 -07:00
Jason Orendorff
0305e45450 Merge from tracemonkey to jsdbg2. 2011-05-25 17:52:35 -05:00
Jason Orendorff
5323e5a91c Debuggees are globals, not compartments. 2011-05-23 11:11:09 -05:00
Igor Bukanov
3e2ef6c4ef bug 656261 - better GC arena layout. r=wmccloskey 2011-05-19 21:01:08 +02:00
Brian Hackett
131bcf7ab2 [INFER] Disable inference and infallibly discard jitcode on OOM, bug 637674. 2011-05-18 12:34:17 -07:00