Commit Graph

51 Commits

Author SHA1 Message Date
Bobby Holley
d5c12cf9a1 Bug 749173 - Remove AutoPreserveCompartment. r=luke 2012-05-06 13:09:49 +02:00
Bobby Holley
4b797a31bf Bug 747749 - Remove call to JS_SetGlobalObject in mozJSComponentLoader. r=luke 2012-04-26 20:40:11 +02:00
David Anderson
3fab15f4fb Remove simple JS_FrameIterator uses in xpconnect (bug 744617, r=bholley).
--HG--
extra : rebase_source : c206450cf46011543f58cded4c5aff2d49932afd
2012-04-16 12:25:28 -07:00
Makoto Kato
d9d6d34cb4 Bug 716333 - get rid of WithConversion (xpconnect part). r=bholley 2012-03-26 14:12:15 +09:00
Igor Bukanov
fba835a226 bug 737624 - memory-only encoding/decoding of scripts and functions. r=:luke
The patch shrinks the API presented in jsxdrapi.h down to 4 functions to
encode/decode scripts and interpreted functions to/from the memory. The
newly introduced implementation header vm/Xdr.h replaces the former
JSXDRState with the template class XDRState parametrized by the enum
type with two constants, XDR_ENCODE and XDR_DECODE. This way a compiler
can fully eliminate the former runtime checks for the decoding/encoding
mode. As a drawback this required to explicitly instantiate the xdr
implementation as I do not want to put all the xdr code to header files.

The memory-only XDR allows to avoid coping filename and to-be-atomized
chars to a temporary buffer as the code can just access the buffer
directly. Another change is that new XDRScript takes as a parameter its
parent script. This allowed to avoid keeping filename in XDRState and
simplify the filename management.

Another change is the removal of JS_HAS_HDR. As CloneScript uses XDR to
copy a script, JS_HAS_XDR cannot be disabled.

--HG--
rename : js/src/jsxdrapi.cpp => js/src/vm/Xdr.cpp
extra : rebase_source : f8f1536a86b7c3fe7296a16b6677bd21664af98a
2012-02-20 11:58:00 +01:00
Dão Gottwald
5e96f96042 Backed out changeset 30798fdc5bad 2012-03-24 12:33:30 +01:00
Igor Bukanov
63cd1dc8b0 bug 737624 - memory-only encoding/decoding of scripts and functions. r=:luke
The patch shrinks the API presented in jsxdrapi.h down to 4 functions to
encode/decode scripts and interpreted functions to/from the memory. The
newly introduced implementation header vm/Xdr.h replaces the former
JSXDRState with the template class XDRState parametrized by the enum
type with two constants, XDR_ENCODE and XDR_DECODE. This way a compiler
can fully eliminate the former runtime checks for the decoding/encoding
mode. As a drawback this required to explicitly instantiate the xdr
implementation as I do not want to put all the xdr code to header files.

The memory-only XDR allows to avoid coping filename and to-be-atomized
chars to a temporary buffer as the code can just access the buffer
directly. Another change is that new XDRScript takes as a parameter its
parent script. This allowed to avoid keeping filename in XDRState and
simplify the filename management.

Another change is the removal of JS_HAS_HDR. As CloneScript uses XDR to
copy a script, JS_HAS_XDR cannot be disabled.

--HG--
rename : js/src/jsxdrapi.cpp => js/src/vm/Xdr.cpp
2012-02-20 11:58:00 +01:00
Ms2ger
01a1c4d2d2 Backed out changeset f33e1e959036; r=bustage 2012-03-24 11:04:34 +01:00
Igor Bukanov
5a94b9c481 bug 737624 - memory-only encoding/decoding of scripts and functions. r=:luke
The patch shrinks the API presented in jsxdrapi.h down to 4 functions to
encode/decode scripts and interpreted functions to/from the memory. The
newly introduced implementation header vm/Xdr.h replaces the former
JSXDRState with the template class XDRState parametrized by the enum
type with two constants, XDR_ENCODE and XDR_DECODE. This way a compiler
can fully eliminate the former runtime checks for the decoding/encoding
mode. As a drawback this required to explicitly instantiate the xdr
implementation as I do not want to put all the xdr code to header files.

The memory-only XDR allows to avoid coping filename and to-be-atomized
chars to a temporary buffer as the code can just access the buffer
directly. Another change is that new XDRScript takes as a parameter its
parent script. This allowed to avoid keeping filename in XDRState and
simplify the filename management.

Another change is the removal of JS_HAS_HDR. As CloneScript uses XDR to
copy a script, JS_HAS_XDR cannot be disabled.

--HG--
rename : js/src/jsxdrapi.cpp => js/src/vm/Xdr.cpp
2012-02-20 11:58:00 +01:00
Igor Bukanov
c8154dcd0e 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
Igor Bukanov
524dbd7e47 bug 728250 - remove JSPrincipals::codebase. r=:luke,:bz
In just 2 cases where JSPrincipals::codebase is used it can be reconstructed from the values stored in the associated nsJSPrincipal. In addition the patch makes nsJSprincipals to inherit both from nsIPrincipal and JSPrincipals allowing to use static_cast to convert between nsIPrincipal and JSPrincipals pointers and to drop many cases of manual JSPrincipal reference counting.
2012-03-09 10:48:50 +01:00
David Mandelin
0822e24e67 Bug 733260 followup: use uint32_t for array and string lengths, r=luke
--HG--
extra : rebase_source : 1729b4b927fde0678872b9de62a7466381aa07c3
2012-03-06 15:52:55 -08:00
David Mandelin
fb07fe8847 Bug 733260: remove typedef jsuint, r=luke
--HG--
extra : rebase_source : e8f576e1b5b189b47807c613c0cff79f5c8038e7
2012-03-05 18:43:45 -08:00
Bobby Holley
3ca761b44b Bug 720580 - Stop passing aExtraPtr to InitClassesWithNewWrapedGlobal. r=mrbkap
We only ever pass null here anyway, and this whole infrastructure is going away real soon now.
2012-03-05 15:22:44 -08:00
Bobby Holley
5dd44b1a43 Bug 720580 - Remove unnecessary aIID parameter from nsIXPConnect::InitClassesWithNewWrappedGlobal. r=mrbkap 2012-03-05 15:22:44 -08:00
David Mandelin
3588ac5aae Bug 730511: remove obsolete typedefs intN, uintN, r=luke 2012-02-28 15:11:11 -08:00
Luke Wagner
8ef5f08923 Bug 729584 - mozJSComponentLoader::ImportInto needs to wrap exceptions (r=bholley)
--HG--
extra : rebase_source : c5c575a789647348fcca5bf9ef5368873f0016f4
2012-02-23 13:50:01 -08:00
Marco Bonardo
ae9b10638c Bug 722254 - Add an XPCOMUtils method to generate a singleton factory.
Use the new factory in Places js services, to ensure they can't be instanced multiple times.
r=bsmedberg
2012-02-07 10:17:42 +01:00
Igor Bukanov
ac75a17316 bug 723021 - moving native stack limits into runtime. r=luke 2012-01-31 23:28:22 +01:00
Luke Wagner
d85fb51b34 Bug 675078 - rm JSThreadData and JSThread (JSRuntime is now officially single-threaded) (r=igor,rs=mccr8)
--HG--
extra : rebase_source : f6d2c2c6083f4589691ede571159bfd7e7ef8701
2011-07-18 14:54:48 -07:00
Matt Brubeck
193896461a Back out 79deba022227 (bug 675078) because of Win debug mochitest-other failures 2012-01-24 17:32:30 -08:00
Luke Wagner
6068502afa Bug 675078 - rm JSThreadData and JSThread (JSRuntime is now officially single-threaded) (r=igor) 2011-07-18 14:54:48 -07:00
Ms2ger
42f91549b4 Bug 709086 - Don't use JS_GetParent in mozJSSubScriptLoader::LoadSubScript; r=jorendorff 2012-01-02 19:05:19 +01:00
Ms2ger
609cf3bed0 Bug 714057 - Remove uintn users from XPConnect; r=bholley+khuey 2012-01-02 19:05:19 +01:00
Ms2ger
766a34f6ff Bug 713645 - Remove superfluous inclusions of jscntxt.h; r=luke 2012-01-02 19:05:19 +01:00
Matt Brubeck
dc2f219dc0 Merge mozilla-central and mozilla-inbound 2011-12-28 11:17:19 -08:00
Josh Matthews
d9f302116b Bug 463122 - Propagate mozJSComponentLoader exceptions that occur while executing the script. r=mrbkap 2011-12-28 11:55:11 -05:00
Ms2ger
e27ef6c21a Bug 713550 - Move Base64 code on nsXPConnect to XPCOM / xpcpublic.h; r=bholley+khuey 2011-12-28 09:13:38 +01:00
Jeff Walden
62f48d8793 Bug 711647 - Add MOZ_DELETE to a bunch of deliberately-not-implemented methods across the tree. r=dbaron
--HG--
extra : rebase_source : 507006c0f099da6851b585d2062267d285978ad7
2011-12-16 14:42:07 -05:00
Phil Ringnalda
e3ce373803 Bug 695345 - Bring back ISO8601DateUtils.jsm, a=akeybl 2011-12-18 18:50:13 -08:00
Ms2ger
ba42d4d955 Bug 705188 - Use IDL for mozIJSSubScriptLoader::LoadSubScript, {xpcIJSModuleLoader,nsIXPCComponents_Utils}::Import; r=bz 2011-12-18 11:09:16 +01:00
John Schoenick
c7eec081e4 Bug 687679 - Rename JS_CompileFile to JS_CompileUTF8File, fix users. r=jorendorff,jst 2011-12-16 11:08:59 -08:00
Ms2ger
66852ffea5 Backed out changeset ba447ace2594 (bug 687679) for bustage. 2011-12-16 21:17:16 +01:00
John Schoenick
3973db5adb Bug 687679 - Rename JS_CompileFile to JS_CompileUTF8File, fix users. r=jorendorff,jst 2011-12-16 11:08:59 -08:00
Jeff Walden
735580ff0e 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
Mike Hommey
45173f5be0 Bug 695843 part 9 - Use FileLocations in the component manager. r=bsmedberg 2011-11-08 18:10:51 +01:00
Mike Hommey
de095d8e38 Bug 695843 part 8 - Properly handle jar-in-jars when importing modules. r=mrbkap 2011-12-08 11:03:36 +01:00
Mike Hommey
f5f83e1536 Bug 695843 part 7 - Use the URI string as the key for the various mozJSComponentLoader hashtables. r=mrbkap 2011-11-08 18:08:49 +01:00
Ryan VanderMeulen
13f1ad255a Bug 705401 - Remove the rest of TraceVis. r=dvander 2011-11-28 16:08:25 -08:00
Ms2ger
82e462084f Bug 701467 - Remove JS_TRUE/JS_FALSE from xpconnect; r=bholley 2011-11-26 11:05:59 +01:00
Justin Lebar
c8fe01fc69 Bug 586010 - Send dump() output to Android device log. r=bz
--HG--
extra : rebase_source : f1712d831aaa6fbd8e1bfd6060fbb4aa951ccb74
2011-11-09 19:27:08 -05:00
Luke Wagner
d542a26a63 Bug 650411 - assert in debug/release builds that JSRuntime is only used in a single-threaded manner (r=jorendorff,sr=dmandelin)
--HG--
extra : rebase_source : f18561fff556332789e05623ab0cec2e7faacf78
2011-07-01 14:11:31 -07:00
Ted Mielczarek
d8cdf2fb12 bug 695685 - Make JS module/component dump go to stdout and flush. r=mrbkap 2011-10-19 10:01:24 -04:00
Ehsan Akhgari
92064e6d3f Bug 690892 - Replace PR_TRUE/PR_FALSE with true/false on mozilla-central; rs=dbaron
Landing on a CLOSED TREE
2011-10-17 10:59:28 -04:00
Bobby Holley
15105e6aa0 Bug 688012 - Manual fixup of multi-line c++ cast alignment. r=mrbkap 2011-10-14 10:52:49 -07:00
Bobby Holley
29a01876ca Bug 688012 - Hoist 'else' clauses to the line of the previous close-curly-brace. r=mrbkap
xpcfix -epc `find | grep -P "cpp$|h$" | perl -pe 's/\n/ /'`

This is a conservative pass, which doesn't catch absolutely all cases. But it should be good enough.
2011-10-14 10:52:48 -07:00
Bobby Holley
57d7a7ba1f Bug 688012 - Move the open-brace for if, else, for, while, and switch to the same line as the keyword or condition. r=mrbkap
xpcfix -bpc `find | grep -P "cpp$|h$" | perl -pe 's/\n/ /'`

This is a huge, repetitive patch, and I confess having only skimmed a lot of it. I'm reasonably confident in the tool here though.

Updated to fix 'else' as well.
2011-10-14 10:52:48 -07:00
Bobby Holley
b9fef5e5b7 Bug 688012 - Fix alignment of arguments and tests relative to parens. r=mrbkap
xpcfix -puc `find | grep -P "cpp$|h$" | perl -pe 's/\n/ /'`

Some of these changes aren't quite ideal, but it's the best my tooling can do and I think it's very much a step in the right direction. This is necessary to do first, because doing if(foo) -> if (foo) changes the location of parentheses, which affects how other things should be aligned. So this has to be built into the tooling, and we might as well take care of the pre-existing issues first.
2011-10-14 10:52:48 -07:00
Bobby Holley
5096858bb0 Bug 688012 - Move all multi-line continuation backslashes to column 79 (where possible). r=mrbkap
xpcfix -c `find | grep -P "cpp$|h$" | perl -pe 's/\n/ /'`

This isn't a huge deal, but it's necessary for the other style changes we want to make. Specifically, when adding and removing things from lines within macros, xpcfix corrects continuation backslashes by putting them at column 79. If we make sure that this is also the default everywhere, then everything will match up.

git diff -w shows no changes here as well.
2011-10-14 10:52:48 -07:00
Bobby Holley
667df88643 Bug 688012 - Remove trailing whitespace within XPConnect. r=mrbkap
xpcfix -w `find | grep -P "cpp$|h$" | perl -pe 's/\n/ /'`

git diff -w verifies that this patch contains no non-whitespace changes.
2011-10-14 10:52:47 -07:00