Commit Graph

18366 Commits

Author SHA1 Message Date
Jeff Walden
5cc35226b4 Bug 728411 - Move a couple more slot methods over to ObjectImpl. r=bhackett
--HG--
extra : rebase_source : e9e872a9557d87cb545c1c209a946a6b87d85e4d
2012-02-24 20:01:05 -08:00
Jeff Walden
04138b6238 Bug 728411 - Move checkShapeConsistency into ObjectImpl. r=bhackett
--HG--
extra : rebase_source : 92525ff32e1d27c335eb0d2c73a8b54b0d5b8a54
2012-02-23 15:45:01 -08:00
Jeff Walden
800c0e5af6 Bug 728411 - Move most other slot-access methods into ObjectImpl. r=bhackett
--HG--
extra : rebase_source : 34a66226584835cdedc5958d0475606de972180a
2012-02-23 15:39:35 -08:00
Jeff Walden
8b9d875ceb Bug 728411 - Move slot range operations into ObjectImpl. r=bhackett
--HG--
extra : rebase_source : 704d67267923e019df82de7f77f60b48c6c62128
2012-02-23 15:39:32 -08:00
Jeff Walden
e6976ebef4 Bug 737996 - Remove some essentially-obsolete configuration options from jsversion.h. r=luke
--HG--
extra : rebase_source : 4b54a0ab0a6fcdb15ee671ee8c1b460d4b4f4180
2012-03-21 12:23:07 -07:00
Terrence Cole
8904116cef Bug 735761 - Fix a cosmetic error in the test suite; r=dmandelin
This patch pushes our null results for non-run tests before running other tests
so that when we do not try to update the progress bar after we finish running.

--HG--
extra : rebase_source : 02e53cddcab4c5898ef2636f78c806509ae33dcf
2012-03-21 11:49:01 -07:00
Igor Bukanov
9ba9747e3a bug 730221 - followup to bump XDR version number as the previously landed changeset made incompatible changes to xdr format. r=bugzilla_comment 2012-03-21 19:14:42 +01:00
Hessam Salehi
25b8143afe Bug 474505 - Replace uses of nsVoidPtrHashkey with nsPtrHashKey<T>; r=bsmedberg 2012-03-21 14:07:31 -04:00
Luke Wagner
c97b610edb Bug 737388 - Put back piece of prologue accidentally removed earlier (r=bhackett) 2012-03-21 01:51:11 -07:00
Brian Hackett
0baaf796f4 Use singleton types for global object initializers, bug 731398. r=dvander 2012-03-21 07:37:43 -06:00
Brian Hackett
d660ec709a Update type sets persistently for arithmetic on objects, bug 733979. r=billm 2012-03-21 06:32:18 -06:00
Luke Wagner
1e24ec622e Bug 736555 - don't use magic values to implement deleted args (r=bhackett)
--HG--
extra : rebase_source : f4e3f63512acb2ff8ee874de2d718bd7877932d6
2012-03-14 17:19:17 -07:00
Luke Wagner
527cb08cee Bug 737575 - fix arguments['integer'] (r=dvander)
--HG--
extra : rebase_source : 5cb580a47187f2a88a98efc3fa8a88ee4c8bc551
2012-03-20 17:21:58 -07:00
Terrence Cole
73512b7fd7 Bug 737221 - Add a missing pre barrier on jsid strings; r=billm
--HG--
extra : rebase_source : 970b91446c7703966aa6f397ac40d8d9d486f796
2012-03-20 16:03:50 -07:00
Steve Fink
bfb79fbda2 Fix --enable-dtrace build failure from bug 737195. r=npotb, DONTBUILD 2012-03-20 12:48:43 -07:00
Terrence Cole
74008eefc7 Bug 737195 - Add barriers to JSFunction::atom; r=billm
This is only ever initialized, so it needs generational barriers, but not
incremental barriers.
2012-03-19 17:24:05 -07:00
Bobby Holley
e3df69dd0f Bug 738874 - Don't allow non-classinfo XPCWNs to be wrapped cross-compartment. r=mrbkap 2012-03-25 22:35:50 -07:00
Makoto Kato
a41e6dd26b Bug 716333 - get rid of WithConversion (xpconnect part). r=bholley 2012-03-26 14:12:15 +09:00
Igor Bukanov
7296e0408c 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
Matt Brubeck
f83a9ab93e Merge mozilla-central and mozilla-inbound 2012-03-24 09:05:27 -07:00
Masatoshi Kimura
9177b368f2 Bug 736686 - Part 1: Make dictionary initializers callable off main thread. r=khuey 2012-03-24 12:33:49 +01:00
Dão Gottwald
766a2b3244 Backed out changeset 30798fdc5bad 2012-03-24 12:33:30 +01:00
Igor Bukanov
f8a4496d31 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
8775c56114 Backed out changeset f33e1e959036; r=bustage 2012-03-24 11:04:34 +01:00
Igor Bukanov
8e97874303 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
fbeb82e29f 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
Matt Brubeck
3141d23221 Merge mozilla-central and mozilla-inbound 2012-03-19 16:47:00 -07:00
Luke Wagner
2f1cc78598 Bug 736807 - Fix test added by fc8534cfca3d to test for gczeal (r=orange) 2012-03-19 11:47:23 -07:00
Luke Wagner
9c7fbf2d72 Bug 736807 - InitExnPrivate needs to root values since they can now be wrapped (r=bholley)
--HG--
extra : rebase_source : 4aeb6c6b271588c57c4b6e166c630a72c8c7d0d5
2012-03-19 10:49:12 -07:00
Mike Hommey
f6255df92e Bug 733773 - Reset default values for thumb, float-abi, etc. when --with-arch is specified. r=ted 2012-03-13 09:47:03 +01:00
Jesse Ruderman
3a63956918 Bug 736795 - Some shell help() messages have extra periods 2012-03-17 22:24:07 -07:00
David Mandelin
e602973e64 Bug 726794: clean up some WTF Platform.h macros, r=dvander
--HG--
extra : rebase_source : 1969660fdeda9c426c9e37a68fc067786ef79d58
2012-03-16 17:02:52 -07:00
Bill McCloskey
2898570725 Bug 736643 - Add timestamp support to GC/CC JSON output (r=terrence) 2012-03-16 16:36:26 -07:00
Jim Blandy
d3ae4a11e2 Bug 734454: Use a table to declare atoms. r=waldo 2012-03-16 16:15:31 -07:00
Jim Blandy
d437ab862a Bug 734454: Minor cleanups to atom declarations and definitions, in preparation for conversion to a table. r=waldo 2012-03-16 16:15:31 -07:00
Igor Bukanov
877dee50e1 bug 736978 - remove JS_FinalizeStub. r=:billm
Currently the GC finalizes on the background thread only objects with null
JSClass::finalize. However, this implies that any object that uses
JS_FinalizeStub for the finalizer would be prevented from the background
finalization.

To fix this the patch removes JS_FinalizeStub replacing it with NULL in all
cases when the class has no custom finalizer. For style consistency the patch
also removed the usage of JSCLASS_NO_OPTIONAL_MEMBERS in the static
declarations as the compiler fills the missing fields with null in any cases.
2012-03-19 15:27:58 +01:00
Prabindh Sundareson
b62d17df9a Bug 735594 - Add check for MOZ_JSDEBUGGER so that --enable-jsd=no works. r=bholley+khuey 2012-03-15 20:12:45 -04:00
Jared Wein
883053cd10 Bug 730318 - Implement a way for chrome js to enumerate the plugin objects on a page for activation. r=khuey 2012-03-27 13:50:50 -07:00
Andrew McCreight
d1c47fdce5 Bug 736563 - mark global objects held by live windows black during GC. r=smaug 2012-03-27 12:22:10 -07:00
Bobby Holley
ff990375c6 Bug 738956 - Wrap values in nsStructuredCloneContainer::InitFromVariant before passing them to JS_WriteStructuredClone. r=khuey 2012-03-27 11:43:11 -07:00
Bill McCloskey
ad804cbc84 Bug 738841 - Fix handling of 'this' in methodjit without TI (r=bhackett) 2012-03-27 10:54:04 -07:00
Luke Wagner
4098eb7793 Bug 739494 - rm JSOP_DEFLOCALFUN (r=bhackett)
--HG--
extra : rebase_source : bb055d312548d6f04096e2320838addfbffd65fc
2012-03-26 22:08:03 -07:00
Luke Wagner
e58143c4c1 Bug 737552 - Remove 'funargs' (r=jimb)
--HG--
extra : rebase_source : 768b5b36503747a7ab95cc745439be4c36e64168
2012-03-20 11:18:37 -07:00
Luke Wagner
d523a82ac7 Bug 737570 - Fix handling of overwritten arguments via non-toplevel function statement named 'arguments' (r=waldo)
--HG--
extra : rebase_source : 91a45e78412a86f647375485fcd038505a134f0d
2012-03-19 19:22:59 -07:00
Bill McCloskey
97d5ffd408 Bug 736605 - Add more timers to GC statistics (r=terrence) 2012-03-16 14:55:56 -07:00
Bobby Holley
ab0445c528 Bug 596351 - Proxies should throw TypeErrors for assignments to read-only properties in ES5 strict mode. r=luke 2012-03-16 12:47:21 -07:00
Bobby Holley
7aa891a8c8 Bug 734475 - Take the full union of native sets when bringing non-PreCreate XPWNs across compartments. r=mrbkap 2012-03-16 12:47:20 -07:00
Luke Wagner
6c8e2f8935 Bug 736012 - Unwind current frame on failure to enter jit code from loop header (r=bhackett)
--HG--
extra : rebase_source : 5dcfb53368a6f816b44d26cf43b564f1525d74bb
2012-03-16 10:04:17 -07:00
Terrence Cole
7f9923f96d Bug 730961 - Make internal marking interface indirect; r=billm
Now that all of the marking interface users use indirect marking, we can pass
through the indirection internally and stop passing every object through the
stack.
2012-03-14 14:07:16 -07:00
Peter Van der Beken
526e189372 Fix for bug 736229 (Stop storing expando objects in the wrapper cache, store the proxy instead). r=jst. 2012-03-14 15:22:10 +01:00
Marco Bonardo
ff249f47c5 Merge inbound and central 2012-03-16 13:42:16 +01:00
Ms2ger
126a61ae1e Bug 722154 - Part f: Remove custom quickstubs for vertexAttrib[1-4]fv; r=bjacob 2012-03-16 10:53:41 +01:00
Ms2ger
0fa822c551 Bug 722154 - Part e: Remove custom quickstubs for uniform[1-4][i,f]v and uniformMatrix[2-4]fv; r=bjacob 2012-03-16 10:52:42 +01:00
Ms2ger
6c8b1e6b1c Bug 722154 - Part d: Remove custom quickstub for readPixels; r=bjacob 2012-03-16 10:50:51 +01:00
Ms2ger
9fe057f15e Bug 722154 - Part c: Remove custom quickstubs for compressedTexImage2D and compressedTexSubImage2D; r=bjacob 2012-03-16 10:50:33 +01:00
Ms2ger
475f50510f Bug 722154 - Part b: Remove custom quickstub for bufferSubData; r=bjacob 2012-03-16 10:50:18 +01:00
Ms2ger
3b2c005617 Bug 722154 - Part a: Remove custom quickstub for bufferData; r=bjacob 2012-03-16 10:50:00 +01:00
Ms2ger
90fe48b371 Bug 550309 - Part e: Remove custom quickstub for getImageData and return an actual ImageData; r=bz 2012-03-16 10:48:55 +01:00
Ms2ger
364d2a12d3 Bug 550309 - Part c: Implement ImageData; r=bz 2012-03-16 10:44:08 +01:00
Bobby Holley
fcdd9b391d Bug 735826 - Fix jit-tests for browser builds on mac. r=dmandelin 2012-03-15 19:47:06 -07:00
Bobby Holley
6261b39dd3 Bug 736316 - Components.utils.getGlobalForObject should unwrap cross-compartment wrappers. r=khuey 2012-03-15 19:47:06 -07:00
Jeff Walden
c99af04c11 Bug 735313 - StringBuffer still needs length validation. r=luke 2012-03-14 15:29:29 -07:00
Ryan VanderMeulen
4c60195e21 Backout ca1873b20652 (bug 735594) due to mochitest-4 orange. r=http://i.qkme.me/36kr7a.jpg 2012-03-15 21:27:51 -04:00
David Mandelin
9fc3bd66af Bug 728623: disable jitcode address randomization on Win64, r=dvander 2012-03-14 17:36:34 -07:00
Matthew Gregan
2236c84d27 Bug 734784 - Update system-headers to reflect changes to libvpx includes. r=cpearce 2012-03-15 12:06:02 +13:00
Jeff Walden
7068919618 Back out bug 735313, an invariant was relaxed but not all assertions of it were adjusted properly, and I'm not 100% confident tinderboxen will correctly handle the new failure mode. r=bustage 2012-03-14 15:24:51 -07:00
Prabindh Sundareson
fd437e4fad Bug 735594 - Add check for MOZ_JSDEBUGGER so that --enable-jsd=no works. r=bholley 2012-03-15 20:12:45 -04:00
Jeff Walden
bb310a3fde Bug 735313 - StringBuffer still needs length validation. r=luke 2012-03-14 12:41:15 -07:00
Ehsan Akhgari
aad636cb78 Backout changeset ea6be5f60c42 (bug 722946) for breaking Windows builds 2012-03-14 14:29:58 -04:00
Terrence Cole
6ab75b39c1 Bug 722946 - Add method to HashTable for inline rekeying/removal; r=luke
It is possible in several places to have unconstrained client objects as the key
of a HashMap/HashSet.  For generational and compacting GC, we will need to move
these objects in memory.  This means we will need to remove and re-insert these
keys in a new location, during GC.  Because we cannot safely allocate memory
for this, we need a specialized algorithm inside the HashTable itself.
2012-02-03 15:43:34 -08:00
Terrence Cole
4679d4aef3 Bug 734517 - Fix barriering of funName in InitExnPrivate; r=billm
InitExnPrivate needs to trigger barriers when copying out to the heap, but not
when copying data into the on-stack vector.
2012-03-12 18:32:39 -07:00
Blake Kaplan
7a4eeff601 Bug 727884 - Make nsWrapperCache::WrapObject take a JSObject scope instead of XPCWrappedNativeScope. r=peterv 2012-03-14 16:25:40 +01:00
Brian Hackett
b27a80e3b8 Don't generate addprop PIC for JSOP_SETNAME, bug 735161. r=dvander 2012-03-14 08:11:14 -07:00
Jacek Caban
43d5109d07 Bug 729067 - configure.in changes LDFLAGS before calling js/src/configure r=glandium 2012-03-14 15:07:34 +01:00
Mike Hommey
135e75b50c Bug 716544 - Only define android bionic headers as system headers, and only use stlport includes when compiling C++. r=khuey 2012-03-13 09:47:02 +01:00
Ekanan Ketunuti
6dd7569b81 Bug 722180 - Remove error codes for proxies. r=khuey 2012-02-01 18:53:29 +07:00
Bobby Holley
c9729c8e9a Bug 735544 - Allow exception stacks to cross compartment boundaries. r=luke 2012-03-15 15:19:52 -07:00
Terrence Cole
a61bf25367 Bug 736168 - Remove MarkablePtr; r=billm
Now that the marking indirection work is complete, this is no longer used and
should be removed.

--HG--
extra : rebase_source : e8116e9680c5a2005d0f9e6aea774b292cdca59c
2012-03-15 11:14:14 -07:00
Luke Wagner
e50cce1904 Bug 733950 - re-add the f.apply(arguments) optimization (r=bhackett) 2012-02-10 16:31:48 -08:00
Luke Wagner
fccfecaaff Bug 733950 - create arguments object eagerly (r=bhackett)
--HG--
rename : js/src/jsfun.cpp => js/src/vm/ArgumentsObject.cpp
2012-01-17 16:35:12 -08:00
Luke Wagner
225350a951 Backed out changeset d2107141265f to fix message 2012-03-15 10:39:02 -07:00
Luke Wagner
dd715c4d77 Backed out changeset 8f3b804118ef to fix message 2012-03-15 10:37:24 -07:00
Luke Wagner
a58068f5eb Bug 730497 - re-add the f.apply(arguments) optimization (r=bhackett)
--HG--
rename : js/src/jsfun.cpp => js/src/vm/ArgumentsObject.cpp
extra : rebase_source : 28c9c4c7ea9841ea42142cf88d1091d20a4f7f9d
2012-02-10 16:31:48 -08:00
Luke Wagner
4222e81877 Bug 730497 - create arguments object eagerly (r=bhackett)
--HG--
rename : js/src/jsfun.cpp => js/src/vm/ArgumentsObject.cpp
extra : rebase_source : 78e9eccc7c3dd4570d2f78f7b5b5eb2138813e99
2012-01-17 16:35:12 -08:00
Luke Wagner
1843d7c72e Bug 730497 - rm flat closures (r=bhackett,waldo)
--HG--
extra : rebase_source : cf704765ad227abced9e8804aaeb1dc8d12fc5a8
2012-02-27 23:49:02 -08:00
Terrence Cole
a683dde987 Bug 722946 - Add method to HashTable::Enum for inline rekeying; r=luke
It is possible in several places to have unconstrained client objects as the key
of a HashMap/HashSet. For generational and compacting GC, we will need to move
these objects in memory. This means we will need to remove and re-insert these
keys in a new location, during GC. Because we cannot safely allocate memory for
this, we need a specialized algorithm inside the HashTable itself.
2012-03-14 13:48:59 -07:00
Steve Fink
8fedb6a491 Bug 735118 - Add a --debugger flag on jstests.py to allow setting the debugger name and args to use. r=dmandelin
--HG--
extra : rebase_source : 19d4aaeaf8ddbe83d7b529cafd472e1edae783c1
2012-03-13 14:21:58 -07:00
Steve Fink
8f10efae3b Bug 735519 - Fix a bunch of "inlined function used but not defined" warnings. r=dmandelin
--HG--
extra : rebase_source : 3886a738be227a90f78b872dc17c308b2f9ebcc5
2012-03-14 12:28:48 -07:00
Terrence Cole
ebb0263408 Bug 735533 - Don't copyright empty files; r=dmandelin 2012-03-13 17:21:06 -07:00
Terrence Cole
8bcab405ff Bug 735491 - Fix possible recursion when tracing Debugger objects; r=billm
--HG--
extra : rebase_source : 9a1365dd7dffdd4a34f2390bc1739b490369cbe5
2012-03-13 15:38:05 -07:00
Ed Morley
28935417cc Merge mozilla-central to mozilla-inbound 2012-03-13 20:52:11 +00:00
Lukas Blakk
2fe69d3c6f Merging in version bump NO BUG 2012-03-13 13:38:38 -07:00
Kyle Huey
3232e8df17 No bug: Fix ply being stupid, take 2. r=me 2012-03-13 10:31:53 -07:00
David Mandelin
d53ceaae12 Bug 704259: part 2, don't set cx->generatingError in JS_ReportPendingException, r=luke 2012-03-06 18:49:05 -08:00
David Mandelin
9562de2b67 Bug 704259: part 1, refactor use of cx->generatingError without changing behavior, r=luke
--HG--
extra : rebase_source : 748e23ae07d8dc3c2cec165228d858abfc6a535f
2012-03-06 18:49:00 -08:00
Terrence Cole
620f254a87 Bug 531396 - Expose detailed GC timing information API; r=smaug,billm
Extensions such as MemChaser would really like an easier to parse and more
complete record of GC events than what can be gleaned from the message console.
This patch adds GC and CC observer messages formatted as JSON containing
detailed statistics.
2012-03-05 15:33:24 -08:00
Brian Hackett
fb3983c82b Disable regexp cloning optimization for global/sticky regexps, bug 728021. r=dmandelin 2012-03-13 08:37:52 -07:00
Marco Bonardo
3e58667468 Merge last green PGO from inbound to central 2012-03-13 11:17:21 +01:00
Masatoshi Kimura
e441461b51 Bug 721569 - Implement Blob constructor. r=sicking 2012-03-12 21:44:56 -07:00
Masatoshi Kimura
c89a117b0c Bug 721569 - Implement nullable types. r=khuey 2012-03-12 21:44:51 -07:00