Commit Graph

135 Commits

Author SHA1 Message Date
Nicolas Pierron
687329b7b8 Bug 744670 - Port StackIter modification of IonMonkey. r=luke 2012-04-13 13:45:01 -07:00
David Mandelin
905c0f1adb Bug 739808: Remove method cloning optimization and method barrier, r=luke
--HG--
extra : rebase_source : d383c3704c3efd08f9fbf1324433a94fc4a8dbb8
2012-03-23 17:59:56 -07:00
Igor Bukanov
5542df3342 bug 730221 - delegating serialization of script principals to the embedding. r=:luke,:bz
Currently to serialize principals stored in JSScript we have a rather complex
schema. First there is the transcode callback that the embedding must provide
to transcode principals using XDR API. Second we use rather complex glue code
to implement that callback in terms of writing/reading nsIObjectOutputStream/
nsIObjectInputStream. This glue code is duplicated in 3 places. All this can
be avoided if we simply delegate transcoding of principals to the caller. In
addition, at least in the case of the cached startup scripts we do not even
need to transcode the principals as the the cached scripts always have the
system principal so we can skip all the transcode complexity there.

The patch implemnts this idea. In particular, the code in JS engine
responsible for transcoding of principals is replaced by the single API
function JS_XDRSetPrincipals that the embedding can use to set principals for
decoded scripts and functions. Then the startup cache uses this to set the
principals for the decoded script to the system principals. The other two
places in nsJSContext::Serialize and  XBL_SerializeFunction that need to
serialize principals together with a function or script now uses common
utilities in nsXPConnect so the serialization complexity resides in the single
 place.
2012-02-13 14:10:04 +01:00
David Anderson
47563b2221 Remove JS_GetScriptedCaller (bug 732652, r=luke,mrbkap,bholley,smaug,bent). 2012-03-06 15:33:12 -08:00
David Mandelin
60e80d55b6 Bug 730511: remove obsolete typedefs intN, uintN, r=luke 2012-02-28 15:11:11 -08:00
Igor Bukanov
bb69258364 bug 730987 - remove per-context debug hooks. r=luke 2012-02-28 11:54:40 +01:00
Luke Wagner
f5e853cb76 Bug 692269 - Remove jsstr.h, vm/String.h, jsautokw.h, jsclone.h, jsopcode.tbl, jsopcode.h, jsstdint.h from INSTALLED_HEADERS (r=billm)
--HG--
extra : rebase_source : f9e20f1d52987251ad3d58c76531dcd5135076ad
2012-01-30 09:17:38 -08:00
Jeff Walden
e1e013efb8 Bug 723249 - Implement a dump() function on JSString, JSAtom, and JSObject, for easier typing than js_Dump*. Also implement JSString::equals. r=luke
--HG--
extra : rebase_source : 0bb078d0ded8aa52753261605bc72a5eef45e65e
2012-01-31 18:03:41 -08:00
Ms2ger
2ebe58f6e7 Bug 714728 - Remove jsword/jsuword in favour of intptr_t/uintptr_t; r=Waldo 2012-01-11 09:23:05 +01:00
Bobby Holley
9f17b789c2 Bug 715417 - Eliminate getPrincipalArray and globalPrivilegesEnabled from JSPrincipals. r=mrbkap 2012-01-06 17:29:02 -08:00
Jeff Walden
476c7d19c5 Bug 708735 - Use <stdint.h> types in JSAPI and throughout SpiderMonkey. Continue to provide the {u,}int{8,16,32,64} and JS{Uint,Int}{8,16,32,64} integer types through a single header, however, for a simpler backout strategy -- and also to ease the transition for embedders. r=timeless on switching the jsd API to use the <stdint.h> types, r=luke, r=dmandelin 2011-12-08 22:54:10 -05:00
Luke Wagner
a5fc0b3da5 Bug 624621 - Allow embeddings to attach an extra 'origin' principal to scripts (r=mrbkap)
--HG--
extra : rebase_source : 85ed15c9f230bc342e7810e62abace18a7177c4b
2011-06-27 17:42:53 -07:00
Brian Hackett
998e1208e3 Don't try to correlate scripts with functions in JSD interface, bug 707613. r=luke 2011-12-07 13:41:27 -08:00
Brian Hackett
4e750df483 Remove JSOP_TRAP, bug 707454. r=jorendorff 2011-12-07 13:15:48 -08:00
Brian Hackett
f0c35c0584 Merge MC -> JM 2011-12-03 10:34:26 -08:00
Brian Hackett
e970326d58 Add API for JSD to get the parent of a scope object, no bug. 2011-11-28 07:43:31 -08:00
Brian Hackett
c3b9744976 Merge MC -> JM 2011-11-26 15:03:20 -08:00
Steve Fink
5e5f0351b2 Bug 702740 - Add JS_SetFunctionCallback to JSAPI proper (still gated on --enable-trace-jscalls). r=luke
--HG--
extra : rebase_source : 1d77493b4a5a39bf1b2c615f13d77021324ea6d2
2011-12-01 11:25:37 -08:00
Brian Hackett
cc15146e95 Merge MC -> JM 2011-11-14 09:13:33 -08:00
Brian Hackett
a145bef354 Add type behavior info to script PC counts, bug 691788. r=sfink 2011-11-10 12:34:24 -08:00
Brian Hackett
d64dce75db Merge MC -> JM
--HG--
rename : js/src/jsparse.cpp => js/src/frontend/BytecodeCompiler.cpp
rename : js/src/jsparse.h => js/src/frontend/BytecodeCompiler.h
rename : js/src/jsemit.cpp => js/src/frontend/BytecodeGenerator.cpp
rename : js/src/jsemit.h => js/src/frontend/BytecodeGenerator.h
rename : js/src/jsparse.cpp => js/src/frontend/FoldConstants.cpp
rename : js/src/jsparse.cpp => js/src/frontend/ParseNode.cpp
rename : js/src/jsparse.h => js/src/frontend/ParseNode.h
rename : js/src/jsparse.cpp => js/src/frontend/Parser.cpp
rename : js/src/jsparse.h => js/src/frontend/Parser.h
rename : js/src/jsregexpinlines.h => js/src/vm/RegExpObject-inl.h
rename : js/src/jsregexp.cpp => js/src/vm/RegExpObject.cpp
rename : js/src/jsregexp.h => js/src/vm/RegExpObject.h
rename : js/src/xpconnect/src/xpcjsruntime.cpp => js/xpconnect/src/XPCJSRuntime.cpp
rename : js/src/xpconnect/src/xpcquickstubs.cpp => js/xpconnect/src/XPCQuickStubs.cpp
rename : js/src/xpconnect/src/nsXPConnect.cpp => js/xpconnect/src/nsXPConnect.cpp
2011-10-19 14:26:08 -07:00
Brian Hackett
99df9202c3 Remove JSObject::capacity and JSObject::initializedLength, split JSObject::slots into slots and elements, bug 693221. 2011-10-10 11:41:03 -07:00
Brian Hackett
e89780c40d Remove jsobj.h from installed headers, bug 690943. r=luke 2011-10-04 07:06:54 -07:00
Luke Wagner
ff185699a3 Bug 632064 - remove JS_GetScopeChain (r=mrbkap)
--HG--
extra : rebase_source : dcaab70f180d23ad3e9cd12c2d84d326b012fbb2
2011-09-28 17:57:27 -07:00
David Anderson
df566990d3 Remove LeaveTrace and related structures (bug 698201 part 5, r=luke). 2011-11-22 17:41:43 -05:00
Luke Wagner
a1f9b8a260 Bug 690645 - Make AutoScriptUntrapper not massively break invariants; tidy up decompiler a bit (r=waldo)
--HG--
extra : rebase_source : ebf821635c9be7e5c9fd9eacbbb9a6c762432e56
2011-10-04 10:48:35 -07:00
Igor Bukanov
9dc4e22f8a bug 678830 - Use JSScript, not script objects, in compile/evaluate API. r=jorendorff 2011-09-02 08:46:00 +02:00
Jim Blandy
fab58c0d9c Bug 673125: Have each JSScript maintain both a count and a flag indicating whether it should be in single-step mode. r=jorendorff.
The rationale is explained in the comments in jsscript.h.
2011-08-23 14:44:22 -05:00
Jason Orendorff
98bf4dad58 Back out 7196b000f9df (bug 673125 part 2). 2011-08-23 15:34:59 -05:00
Jim Blandy
0cf47b01d9 Bug 673125: Have each JSScript maintain both a count and a flag indicating whether it should be in single-step mode. r=jorendorff.
The rationale is explained in the comments in jsscript.h.

--HG--
extra : rebase_source : 0d537b172ce70c049269b1f09380f0eeabec9c92
2011-08-23 14:44:22 -05:00
Steve Fink
93cd3119ac Bug 673631 - Clean up probes and register (almost) all profiler control entry points in JS_DefineProfilingFunctions (r=luke,waldo,jst)
Previously, JS_DefineProfilingFunctions only defined a very basic set of
functions (startProfiling and stopProfiling), and various scattered places
added more specific ones (start/stop vtune, dumpProfile, etc.) This patch makes
jsdbgapi do all of it, so that all users get the same set.

Also rename JS_DumpProfile -> JS_DumpBytecode to avoid name conflict. The
bytecode dumps are how the counters ("profiles") are displayed, so the
DumpProfile name was bogus anyway.

--HG--
extra : rebase_source : 2d3e626ef43ac41c6da401a779775a63fc96a427
2011-07-26 15:56:09 -07:00
Jason Orendorff
0cc8abb074 Merge from mozilla-central to jsdbg2. 2011-08-01 17:46:33 -05:00
Jason Orendorff
c4f527861a Merge from mozilla-central to jsdbg2. 2011-07-28 13:45:51 -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
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
Nick Fitzgerald
9098b89abc Bug 674283 - Add source map urls to JSScript. r=jorendorff. 2011-07-29 10:44:45 -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
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
fcfd80cfc5 Merge from TM. Huge merge. Stack changes from bug 656462. 2011-06-15 16:14:09 -05:00
Jason Orendorff
0305e45450 Merge from tracemonkey to jsdbg2. 2011-05-25 17:52:35 -05: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
Jim Blandy
f629983808 merge tm 2011-04-18 09:18:20 -07:00
Jason Orendorff
372f84a7c1 Add an empty Debug constructor into the shell and a JS_DefineDebugObject function to jsdbgapi.h. 2011-04-14 13:41:31 -07:00
Steve Fink
f944ff55d2 Bug 637393 - Add JS_DumpProfile, JS_DumpAllProfiles to disassemble one or all scripts' along with execution counts of each op
--HG--
extra : rebase_source : 58afddcf73ded6505fabe3ef42495faa5cb6915a
2011-05-10 11:26:39 -07:00
Luke Wagner
64207228c7 Bug 602994 - Clean up eval, remove unneeded security checks, assert equivalence of principal lookup (r=waldo,mrbkap) 2011-04-08 10:52:51 -07:00
Jason Orendorff
953a8d71f6 Bug 645160 - jsdIStackFrame is incorrectly truncated at indirect eval calls. r=mrbkap. 2011-05-11 11:11:40 -05:00
Steve Fink
715faebf0e Bug 638178 - Add jsdIScript.getExecutableLines for fast identification of breakable lines (r=timeless)
--HG--
extra : rebase_source : a7d66e9ec47ccedfdf1abc3c1d339629c7eb5f3d
2011-03-03 10:11:54 -08:00
Steve Fink
093e050f1b Backout 8d39d7a5b85c 2011-05-24 16:53:07 -07:00
Steve Fink
baaa9a6514 Bug 638178 - Add jsdIScript.getExecutableLines for fast identification of breakable lines (r=timeless) 2011-03-03 10:11:54 -08:00