Commit Graph

144 Commits

Author SHA1 Message Date
Jason Orendorff
c4f527861a Merge from mozilla-central to jsdbg2. 2011-07-28 13:45:51 -05:00
Jason Orendorff
0a4b0df2c1 Address review comments from brendan (bug 627829 comment 35). 2011-07-22 10:54:36 -05: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
Jason Orendorff
671bbf0bb1 Merge mozilla-central to jsdbg2. 2011-07-18 10:58:56 -05:00
Jason Orendorff
b25a91e697 Merge from tracemonkey to jsdbg2. 2011-07-11 08:53:27 -05:00
Brian Hackett
fd156b6340 Revert to 6840fbf4dcdd 2011-07-08 17:58:10 -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
752b11eaa2 Measure type inference memory usage, bug 669958. r=njn 2011-07-07 20:04:47 -07:00
Nicholas Nethercote
bc2ec1e581 Bug 671482 - Rename some identifiers to improve clarity. r=anygregor. 2011-07-15 09:31:52 +10:00
Bill McCloskey
fd629a392b Bug 661903 - Move script filename table to compartment (r=igor) 2011-07-14 16:02:12 -07:00
Brian Hackett
1b078f3536 Merge TM -> JM 2011-07-05 18:22:24 -07:00
Chris Leary
679a65fe47 Merge mozilla-central and tracemonkey. 2011-07-05 17:30:35 -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
Gregor Wagner
72e00fabf4 Bug 666058 - Don't share chunks for system compartments. r=gal,igor. 2011-07-05 14:14:33 +10: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
Brian Hackett
1186d01428 Merge TM -> JM 2011-06-06 09:48:04 -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
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
58811dfa16 [INFER] Address array review comments, add back backedge table, bug 657412. 2011-06-01 11:15:51 -07:00
Luke Wagner
07c939e83e Bug 538293 - remove inlineCallCount and this STACK_QUOTA silliness (r=dvander)
--HG--
extra : rebase_source : 724910c67423b0720ca5c3732699bca4d64324ef
2011-05-27 18:15:39 -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
Brian Hackett
131bcf7ab2 [INFER] Disable inference and infallibly discard jitcode on OOM, bug 637674. 2011-05-18 12:34:17 -07:00
Jason Orendorff
001c42745d Merge from tracemonkey to jsdbg2. This merge reveals a bug in DebugFrame_getOlder, to be fixed separately. 2011-05-16 17:50:52 -05:00
Brian Hackett
55015fcf39 Merge TM -> JM 2011-05-11 20:37:23 -07:00
Brian Hackett
769796394d [INFER] Reset use count when recompiling, bug 650163. 2011-05-09 15:11:32 -07:00
Brian Hackett
c930c3e982 Merge TM -> JM
--HG--
rename : js/src/GlobalObject.cpp => js/src/vm/GlobalObject.cpp
2011-05-09 09:49:48 -07:00
Jason Orendorff
03415943ee Merge from tracemonkey to jsdbg2. 2011-05-04 12:13:58 -05:00
Jason Orendorff
a0e4b2bf22 Merge from tracemonkey to jsdbg2. 2011-04-29 10:12:46 -05:00
Paul Biggar
b005c6c2d4 Merge backout. 2011-04-29 04:01:23 -07:00
Paul Biggar
15828cd649 Backed out changeset 334ada87e329 (bug 628332) - those a11y errors arrived at the same time as this landing, so backing this out to see if that fixes it. 2011-04-29 04:00:57 -07:00
Brian Hackett
838352f9db Merge TM -> JM 2011-04-28 13:02:47 -07:00
Christian Holler
faf48eb1e7 Bug 628332 - Avoid double-frees when compartment allocation fails (r=billm). 2011-04-27 16:09:00 -07:00
Jason Orendorff
4fcb55d0aa New rule: a Debug object cannot be attached to a compartment that is not in debug mode. Includes a jsapi-test to check that we do not crash if you turn debug mode off while a Debug object is already attached. (This changeset moves all the Debug object tests under jit-tests because the jit-test runner lets tests ask for debug mode.)
--HG--
rename : js/src/tests/js1_8_5/extensions/debug-object-01.js => js/src/jit-test/tests/debug/debug-object-01.js
rename : js/src/tests/js1_8_5/extensions/debug-object-02.js => js/src/jit-test/tests/debug/debug-object-02.js
rename : js/src/tests/js1_8_5/extensions/debug-object-03.js => js/src/jit-test/tests/debug/debug-object-03.js
rename : js/src/tests/js1_8_5/extensions/debug-object-04.js => js/src/jit-test/tests/debug/debug-object-04.js
rename : js/src/tests/js1_8_5/extensions/debug-object-05.js => js/src/jit-test/tests/debug/debug-object-05.js
rename : js/src/tests/js1_8_5/extensions/debug-object-06.js => js/src/jit-test/tests/debug/debug-object-06.js
rename : js/src/tests/js1_8_5/extensions/debug-object-07.js => js/src/jit-test/tests/debug/debug-object-07.js
rename : js/src/tests/js1_8_5/extensions/debug-object-08.js => js/src/jit-test/tests/debug/debug-object-08.js
rename : js/src/tests/js1_8_5/extensions/debug-object-09.js => js/src/jit-test/tests/debug/debug-object-09.js
rename : js/src/tests/js1_8_5/extensions/debug-object-10.js => js/src/jit-test/tests/debug/debug-object-10.js
rename : js/src/tests/js1_8_5/extensions/debug-object-11.js => js/src/jit-test/tests/debug/debug-object-11.js
rename : js/src/tests/js1_8_5/extensions/debug-object-12.js => js/src/jit-test/tests/debug/debug-object-12.js
rename : js/src/tests/js1_8_5/extensions/debug-object-13.js => js/src/jit-test/tests/debug/debug-object-13.js
rename : js/src/tests/js1_8_5/extensions/debug-object-14.js => js/src/jit-test/tests/debug/debug-object-14.js
rename : js/src/tests/js1_8_5/extensions/debug-object-15.js => js/src/jit-test/tests/debug/debug-object-15.js
rename : js/src/tests/js1_8_5/extensions/debug-object-16.js => js/src/jit-test/tests/debug/debug-object-16.js
rename : js/src/tests/js1_8_5/extensions/debug-object-17.js => js/src/jit-test/tests/debug/debug-object-17.js
rename : js/src/tests/js1_8_5/extensions/debug-object-18.js => js/src/jit-test/tests/debug/debug-object-18.js
rename : js/src/tests/js1_8_5/extensions/debug-object-19.js => js/src/jit-test/tests/debug/debug-object-19.js
rename : js/src/tests/js1_8_5/extensions/debug-object-20.js => js/src/jit-test/tests/debug/debug-object-20.js
rename : js/src/tests/js1_8_5/extensions/debug-object-21.js => js/src/jit-test/tests/debug/debug-object-21.js
2011-04-27 17:37:14 -05:00
Chris Leary
e9c15c147e Merge mozilla-central to tracemonkey. 2011-05-09 14:27:44 -07:00
Igor Bukanov
0370e3ab43 bug 652416 - race fixes and other cleanups for background finalization. r=anygregor
--HG--
extra : rebase_source : b1685fff8fa5dab43b9b595daa6118249d3ef891
2011-04-25 22:05:30 +02:00
Brian Hackett
43c276be4a [INFER] Bytecode SSA analysis, bug 650715. 2011-04-22 07:59:45 -07:00
Christian Holler
b0902374f8 Bug 628332 - Avoid double-frees when compartment allocation fails (r=billm). 2011-05-03 04:26:40 -07:00
Jason Orendorff
d48b27e096 Rearrange some stuff. This way more js::Debug methods can be private, without making anything new public; all the event dispatch code is in one place; and we avoid having JSCompartment methods in jsdbg.cpp. 2011-04-21 14:44:53 -05:00
Chris Jones
6fd4cbff2d Bug 642381, part 2: Rename LazilyConstructed to Maybe. r=luke 2011-04-28 17:48:51 -05:00
Brian Hackett
68b35100e1 Merge TM -> JM 2011-04-19 08:23:41 -07:00
Jason Orendorff
5e2c73b316 Add rudimentary support for Debug.prototype.hooks.debuggerHandler. Note: A new constant JSPROP_NATIVE_ACCESSOR is added in jsapi.h, so that js_InitClass can create proper accessor properties. 2011-04-18 17:42:07 -05:00