Commit Graph

71753 Commits

Author SHA1 Message Date
Jason Orendorff
9f710511b7 Rename eval scripts to non-held scripts and remove a bogus assertion in DebuggerFrame_getScript. 2011-07-06 14:53:56 -05:00
Jason Orendorff
c00de482a4 Add a passing test for Debugger.Frame.prototype.live. 2011-07-05 10:08:49 -05:00
Jason Orendorff
59c4f629be Rename getYoungestFrame to getNewestFrame.
--HG--
rename : js/src/jit-test/tests/debug/Debugger-getYoungestFrame-01.js => js/src/jit-test/tests/debug/Debugger-getNewestFrame-01.js
rename : js/src/jit-test/tests/debug/Debugger-getYoungestFrame-02.js => js/src/jit-test/tests/debug/Debugger-getNewestFrame-02.js
2011-07-05 07:54:47 -05:00
Jason Orendorff
da62d5e77d Remove some nonsense from JS_DefineDebuggerObject. 2011-07-05 07:50:08 -05: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
8fc23fced7 Add Debug.Script.getChildScripts. 2011-07-05 06:57:06 -05:00
Jason Orendorff
1ceaa9d843 Merge from tracemonkey to jsdbg2. 2011-07-01 19:22:47 -05:00
Jason Orendorff
1f245d40df Merge from tracemonkey to jsdbg2. 2011-07-01 19:02:40 -05:00
Jason Orendorff
18a3fe661b Two changes: Try to make tests/debug/gc-06.js more reliable with conservative GC. And remove the new compartment assertions from jsdbgapi.h, to avoid disturbing jsdbgapi.h-using code other than JSD (such as the shell's trap() function). 2011-07-01 10:30:16 -05:00
Jason Orendorff
6520ac2269 Adjust compartment assertions in the new implementations of jsdbgapi.h Trap entry points. Some are tightened up, but JS_ClearScriptTraps no longer asserts, as that caused a test to fail in debug builds. 2011-06-29 10:16:55 -05:00
Jason Orendorff
ada69f18d9 Fix test jit-test/tests/debug/Debug-ctor-03.js: only expect new Debug(parent) to fail if parent really cannot be put into debug mode. 2011-06-28 18:08:49 -05: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
4230b2f588 Revise comments on js::Debug::mark. Also inline Debug::sweepCompartment into Debug::sweepAll. 2011-06-28 14:48:22 -05:00
Jason Orendorff
8d25455a7a Add Script.prototype.getAllOffsets and getLineOffsets. 2011-06-28 14:46:00 -05:00
Jason Orendorff
5287606d54 Quick follow-up for thinko in bug 667925: lists can be empty. r=orange. 2011-06-28 12:28:02 -05:00
Jason Orendorff
8b9d92f2ef Bug 667925 - Line number is bogus on JSOP_TRACE opcodes. r=brendan. 2011-06-28 12:15:32 -05:00
Jason Orendorff
f87c801c95 Add Script.prototype.getOffsetLine. 2011-06-25 20:58:17 -05:00
Jason Orendorff
1c0e0f089a Add Frame.prototype.offset. 2011-06-25 19:13:19 -05:00
Jim Blandy
8659cd535a Test that we get the same Debug.Script instance for different closures made from the same 'function' expression/declaration/statement. 2011-06-24 14:10:26 -07:00
Jim Blandy
6176d9b411 Fix 'if' in DebugObject_trace: the scope of a declaration includes its initializer. 2011-06-24 14:02:23 -07: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
29b34b6b75 Change js::Debug::heldScripts to have pointers to debuggee-compartment objects as keys, rather than wrappers.
--HG--
rename : js/src/jit-test/tests/debug/Script-gc.js => js/src/jit-test/tests/debug/Script-gc-01.js
2011-06-20 18:30:36 -05:00
Jason Orendorff
4370701afc Change js::Debug::objects to have referents as keys, rather than cross-compartment wrappers of referents.
This adds support for cross-compartment WeakMaps and changes js::Debug::objects to be one. It eliminates the vexing JSMSG_DEBUG_STREAMS_CROSSED error messsage.

The GC interaction between jsgc and jsdbg is a little more complex now; like the cross-compartment wrapper maps, Debug::objects must be marked (just once) during per-compartment GC. In other ways this is a simplification.
2011-06-20 18:26:05 -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
9945b3dbb5 GlobalObject::getOrCreateDebuggers must be called in the global object's compartment, since it may create an object. 2011-06-20 14:06:42 -05:00
Jason Orendorff
d90314e09c Initial support for Debug.Script instances. r=jorendorff, push=jorendorff. 2011-06-17 16:28:32 -05:00
Jason Orendorff
38ba6a702a Merge. 2011-06-17 11:12:33 -05:00
Jason Orendorff
a212e74aed Fix MSVC-only errors and a warning. 2011-06-16 10:25:10 -05:00
Jim Blandy
b9b63b7f8e Define new macro, THIS_DEBUGOBJECT_OWNER_REFERENT, which also provides the owning Debug. r=jorendorff, push=jorendorff. 2011-06-15 18:02:02 -05:00
Jim Blandy
088562e69d Comment fixes, assertions, and cleanups to Debug GC-related code. r=jorendorff, push=jorendorff. 2011-06-15 18:00:06 -05:00
Jim Blandy
f79cb0d6c7 Use WeakMap for the Debug::objects, the mapping from referents to Debug.Objects. r=jorendorff, push=jorendorff. 2011-06-15 17:53:26 -05:00
Jason Orendorff
fcfd80cfc5 Merge from TM. Huge merge. Stack changes from bug 656462. 2011-06-15 16:14:09 -05:00
Andrew McCreight
3f1b66195e Backout bug 653248 due to bug 667011 2011-06-15 10:55:58 -07:00
Brendan Eich
b2a9eace38 Inherited non-configurable accessor properties mis-reported as own properties (637994, r=jwalden). 2011-06-14 23:48:59 -07:00
Brendan Eich
a2fa4d23af No else after return. 2011-06-14 19:32:33 -07:00
Jim Blandy
a282ee62d3 Bug 660039: Provide a WeakMap usable from C++. r=jorendorff
Remove WeakMap class; implement the JavaScript object using functions static to jsweakmap.cpp.

Define a new WeakMap class template, parameterized by Key and Value types,
and accepting a MarkPolicy argument saying how to mark them.

Add assertions to check that we check and set the right mark bits, and
tests that trip them in the presence of mistakes in earlier revisions of
this patch.
2011-06-14 19:21:47 -07:00
Jim Blandy
7cdc628e2a Bug 661567: Use RuntimeAllocPolicy in JS WeakMap objects, not ContextAllocPolicy. r=jorendorff 2011-06-14 19:21:47 -07:00
Jim Blandy
900b1f6059 Bug 661567: Implement RuntimeAllocPolicy, providing proper memory accounting in GC'd objects that live longer than a JSContext. r=luke 2011-06-14 19:21:47 -07:00
Jim Blandy
fe837eb8a0 Bug 661567: Use ObjectValueMap typedef name where appropriate. r=gal 2011-06-14 19:21:47 -07:00
Luke Wagner
70b6adcc95 Bug 664159 - Fix eval-in-frame crash (r=waldo) 2011-06-14 17:35:19 -07:00
Nikhil Marathe
524b87e3d5 Bug 656519 - Fix consumers outside SpiderMonkey to use new ArrayBuffer APIs. r=mrbkap
--HG--
extra : rebase_source : f359987831611155029114b5f85080155c6a12d5
2011-06-14 15:37:21 -04:00
Nikhil Marathe
566af7c712 Bug 656519 - Add an interpreter fast-path for getting length from a typed array. r=mrbkap
--HG--
extra : rebase_source : b2d583778e14877cb0e01f0739d08cd31dc9c757
2011-06-14 15:35:54 -04:00
Nikhil Marathe
f96aadd8f3 Bug 656519 - Do a small size optimization for arraybuffer objects, possibly avoiding a second malloc entirely for small array buffers. r=mrbkap
--HG--
extra : rebase_source : 2dcaee6b42f47dafcfbb866a45ed2452f029a253
2011-06-14 15:34:06 -04:00
Nikhil Marathe
acda759fc1 Bug 656519 - Avoid a malloc (and a finalizer) by storing the malloc'd array in our slots instead of in a separate malloc'd structure in our private field. r=mrbkap
--HG--
extra : rebase_source : 791ede2d8db96f56e4ef8478d491aec413d3e392
2011-06-14 15:33:11 -04:00
Chris Leary
cb10121547 Avoid copy construction for paren info vector. (rs=dmandelin)
--HG--
extra : rebase_source : 659e9e5aa1946b2693645664584f98dfe068d19f
2011-06-14 11:53:14 -07:00
Jim Blandy
cde354a9bd Cross stack segment boundaries when looking for the youngest frame. Correctly check that live stack frames are on the stack. 2011-06-08 07:25:22 -07:00
Makoto Kato
cd7ae32ee3 Bug 635617 - 64-bit crash [@ MakeDay] r=jwalden 2011-06-08 10:41:37 +09:00
Makoto Kato
8aef16bd3b Bug 667076 - follow up for bustage on Win64. r=luke 2011-07-01 15:59:58 +09:00
Jeff Walden
0dfbe6d91b Bug 657298 - Various bugs in setting the length of an array. r=dmandelin
--HG--
extra : rebase_source : f27bd4d0141df46d7ef054c91c2601d3b50d9690
2011-06-28 10:05:53 -07:00
Jeff Walden
d2d6ef6dd4 Bug 667527 - Remove the array-length limitation from the method used in certain cases to append values to newborn arrays, and name it more generally than previously. r=dmandelin
--HG--
extra : rebase_source : 1f7ee1dc5f5bd3185a8c7e02c5fdf8dcef765cb4
2011-06-28 10:05:40 -07:00