Commit Graph

739 Commits

Author SHA1 Message Date
Jason Orendorff
e54535bb40 Bug 645416, part 21 - Add symbol jsids (SYMBOL_TO_JSID), removing the legacy support for object jsids (OBJECT_TO_JSID). r=terrence,r=jimb,r=efaust.
With just this patch, there are not actually any symbol jsids flowing through
the system, just as there are not actually any object jsids. But a subsequent
patch (part 23) changes this.

This patch deletes some code in CTypes.cpp that is simply confused about how
element accesses work: Int64 and UInt64 objects were never actually converted
to object jsids, so the code being removed here was already dead code.

--HG--
extra : rebase_source : 86f421c6454344e76ce5219b7b1aed5c83b45f24
2014-06-23 10:56:52 -05:00
Jason Orendorff
0bfce2ba30 Bug 645416, part 3 - Symbol layout and GC support for allocating them. r=terrence.
Layout: js/src/vm/Symbol.h defines the new class JS::Symbol. JS::Symbol is the
same size as JSString on all platforms, because the allocator does not support
smaller allocations.

Allocation: Since the purpose of symbols is to serve as property keys, they are
always allocated in the atoms compartment.

We take a lock when allocating. This could probably be replaced with a
main-thread-only assertion. However, if atom allocation is not already a
bottleneck, symbol allocation probably never will be.

Symbols are given their own finalize-class in the GC. This means we allocate a
page per zone for symbols, even though they are only ever allocated in the
atoms zone. Terrence thought this could be easily fixed later. It should be; we
never touch the page, but a 32-bit virtual address space does not just have
infinite pages to spare.

A jsapi-test exercises the new symbol allocation code. A few oddities in
jsapi-tests are fixed in passing.

Discussion after review led to some new assertions about minimum object size in
AllocateObject and AllocateNonObject.

--HG--
extra : rebase_source : 45abb651d3b1b493d77a5dd0eb554f96b058c63a
2014-06-23 10:55:51 -05:00
Jason Orendorff
c4d2ca3a88 Bug 645416, part 2 - Add support for symbols to JS::Value. r=luke.
The API for symbol Values is much like the API for strings.

The implementation behind all this is in a later patch. Here, a class
JS::Symbol is declared, but not defined anywhere yet.

The constants being deleted from js/public/Value.h probably haven't been used
since Tracemonkey days.

--HG--
extra : rebase_source : 5b2d0cc4d99223483e850ee80913eef3854c427c
2014-06-23 10:55:51 -05:00
Jason Orendorff
c3317f9be6 Bug 645416, part 1 - Add an enum for symbols to JSValueType. r=nbp.
JSVAL_TYPE_SYMBOL is inserted between STRING and NULL, rather than added at the
end, in order to preserve all the inequality relations on JSValueTypes used
throughout Value.h. (Search the header for the operators < > <= >=.)

Otherwise, this pretty much just works. Some details of Ion snapshot layout
had to change to accommodate 4-bit types.

--HG--
extra : rebase_source : e3141e6a9ee32ef563dab43a4942a9e67d234865
2014-06-23 10:55:51 -05:00
Bill McCloskey
08dc80ac48 Bug 1017302 - Expose add-on IDs to JS engine (r=bholley) 2014-06-21 11:54:22 -07:00
Brian Hackett
cf6c9fa3ca Bug 1020012 - Consolidate ScriptSources with the same source, r=luke. 2014-06-21 10:39:04 -07:00
Jan de Mooij
a2a4ffc44c Bug 1027528 part 3 - Make JS_EncodeString and friends handle Latin1 strings. r=Waldo 2014-06-20 12:39:44 +02:00
Birunthan Mohanathas
f475f7189b Bug 1026535 - Fix mismatched class/struct tags. r=ehsan 2014-06-18 17:57:51 -07:00
Nicholas Nethercote
39f29c384a Bug 1010064 - Allow memory reports to be anonymized. r=bsmedberg.
--HG--
extra : rebase_source : 5eb756b17a97e751deb0f47e909fdb35533cb23b
2014-05-20 23:06:54 -07:00
Ryan VanderMeulen
75b29a3306 Backed out changeset aca2ec2457ec (bug 1016738) for re-introducing frequent WebRTC crashes. 2014-06-17 21:12:43 -04:00
Bill McCloskey
f78d78d6ea Bug 1016738 - Simplify/fix "dead compartment" logic (r=luke,jonco) 2014-06-17 11:20:33 -07:00
Jan de Mooij
7c009a346a Bug 1025875 part 8 - Make JS_EncodeStringToUTF8, print etc work with Latin1 strings. r=Waldo 2014-06-17 15:18:23 +02:00
Brian Hackett
c90d15b368 Bug 1024038 - Remove YARR, r=jandem. 2014-06-16 15:37:53 -07:00
Jim Blandy
0b21a198f7 Bug 960786: SpiderMonkey should provide an introspection API for memory heap analysis (ubi::Node) r=sfink 2014-06-16 15:18:57 -07:00
Terrence Cole
e596c6f439 Bug 1017650 - Re-arrange the GC API include dependency ordering; r=jonco
--HG--
extra : rebase_source : bc27b7206c674ef2247169dd700b9fbf61e5bd74
2014-06-16 11:59:45 -07:00
Nicholas Nethercote
fcbaa23ac2 Backout 277bacd9f2f8 (bug 1023719) for causing intermittent crashes.
--HG--
extra : rebase_source : e6c9e54dd2df572da7f8cdf3cd6226a1aeeee883
2014-06-13 06:39:16 -07:00
Nicholas Nethercote
c910878600 Bug 1023719 - Report notable classes in the JS memory reporter. r=till.
--HG--
extra : rebase_source : 5a842c36cf7202f6751290da80cefb005fd8db95
2014-04-15 19:43:18 -07:00
Lars T Hansen
931ec954cc Bug 933313: Per-worker generational GC for PJS. r=jandem r=terrence r=shu r=jonco 2014-06-09 22:04:14 -07:00
Bill McCloskey
a8724b8a11 Bug 1016738 - Back out for webrtc crashes. 2014-06-09 12:30:38 -07:00
Jon Coppeard
521b24a4d6 Bug 1021114 - Remove GCMethods::kind() in favour or RootKind::rootKind() r=terrence 2014-06-07 10:34:57 +01:00
Jon Coppeard
f0d27d5981 Bug 988486 - Make more GCRuntime members private and add necessary accessors r=terrence 2014-06-07 10:34:57 +01:00
Ryan VanderMeulen
559d06da25 Backed out 3 changesets (bug 1021114, bug 988486) for GC crashes on a CLOSED TREE.
Backed out changeset f56234ba7ec7 (bug 1021114)
Backed out changeset 14a4a9062253 (bug 988486)
Backed out changeset 03eccac81e15 (bug 988486)
2014-06-07 00:03:17 -04:00
Jan de Mooij
b5b6eca182 Bug 1020869 - Make IdToTypeId, StringIsArrayIndex etc work with Latin1 strings. r=bhackett 2014-06-07 14:59:52 +02:00
Jon Coppeard
744336b199 Bug 1021114 - Remove GCMethods::kind() in favour or RootKind::rootKind() r=terrence 2014-06-07 10:34:57 +01:00
Jon Coppeard
388b62b349 Bug 988486 - Make more GCRuntime members private and add necessary accessors r=terrence 2014-06-07 10:34:57 +01:00
Jim Chen
3b5c74e922 Bug 1013326 - Move script principals APIs to jsfriendapi; r=luke 2014-06-06 18:39:40 -04:00
Jason Orendorff
736717218a Bug 1017067 - Merge deleteProperty/deleteElement ops back into a single deleteGeneric op. r=bhackett. 2014-06-05 13:19:23 -04:00
Carsten "Tomcat" Book
056689a934 Backed out changeset d15632d88126 (bug 933313) for cppunit testfailures on a CLOSED TREE 2014-06-06 15:49:45 +02:00
Lars T Hansen
432f0db8de Bug 933313: Per-worker generational GC for PJS. Take 2. r=jandem, r=shu, r=terrence, r=jonco 2014-06-06 11:42:10 +02:00
Carsten "Tomcat" Book
8cd3bb75dc Backed out changeset d89d4281fd8d (bug 933313) for bustage on a CLOSED TREE 2014-06-06 10:18:04 +02:00
Lars T Hansen
314ad612f7 Bug 933313 - Per-worker generational GC for PJS. r=jandem, r=shu, r=terrence 2014-06-06 09:21:52 +02:00
Jon Coppeard
ebc18728f1 Bug 1020690 - Type exact stack rooting machinery. r=sfink
--HG--
extra : rebase_source : 366ff0579912b8a03f29abb882cabcc982a44d47
2014-06-05 10:38:00 -04:00
Ryan VanderMeulen
d3795dc945 Backed out changeset 846ee7c7debf (bug 1020690) for bustage.
CLOSED TREE
2014-06-05 14:39:11 -04:00
Jon Coppeard
67b18cac0f Bug 1020690 - Type exact stack rooting machinery. r=sfink 2014-06-05 10:38:00 -04:00
Victor Porof
2a214c6cba Bug 1017790 - Expose category information in the profiler data, r=djvj 2014-06-04 14:37:49 -04:00
Victor Porof
46455c55fd Bug 1019182 - ProfileEntry flags should be zeroed when setting frame data, r=djvj 2014-06-04 14:37:49 -04:00
Jon Coppeard
18ebc7a15f Bug 1008473 - Fix breakage on little endian 32 bit builds r=terrence 2014-06-03 16:29:39 +01:00
Jan de Mooij
f3da5b23d3 Bug 1018568 - Make AutoAssertOnGC a nop in opt builds. r=terrence 2014-06-03 09:27:18 +02:00
Bill McCloskey
2e3b71fa6d Bug 1016738 - Simplify/fix "dead compartment" logic (r=luke,jonco) 2014-05-30 07:46:12 -07:00
Jon Coppeard
a223582947 Bug 1008473 - Remove some redundant methods and misc tidyup r=terrence 2014-06-02 16:11:24 +01:00
Jon Coppeard
bbd134a650 Bug 1008473 - Make Value::toGCThing() return a Cell pointer rather than void* r=terrence 2014-06-02 16:10:53 +01:00
Phil Ringnalda
61966eed95 Merge f-t to m-c 2014-05-31 20:31:07 -07:00
Victor Porof
3e8338b918 Bug 1007203 - Set the categories as flags on profile entries, r=djvj 2014-05-30 21:41:11 -04:00
Victor Porof
5643294005 Bug 1007203 - Always add categories when pushing to the pseudostack, r=djvj 2014-05-23 17:12:29 -04:00
Jan de Mooij
f9e9e6abbc Bug 1018243 - Use unsigned char instead of char for latin1 strings. r=luke 2014-05-31 10:44:32 +02:00
Ryan VanderMeulen
cc5c76fc96 Backed out changeset 0d61bcf08362 (bug 1013531) for bustage.
CLOSED TREE
2014-05-29 13:26:55 -04:00
Terrence Cole
732d0a85ef Bug 1013531 - Clarify the naming of the rooting analysis supression guards; r=sfink
--HG--
extra : rebase_source : ce44e4a4428414a132eae7167c485ff366b1f0a6
2014-05-28 17:34:36 -07:00
Victor Porof
f885cc502d Bug 1004726 - Clean up profiler pseudo-stack representation (relanded), r=djvj,jchen 2014-05-28 18:44:41 -04:00
Victor Porof
b71b27f52a Backed out changeset c2429d6c41fb (Bug 1004726) for regressions on B2G, r=me 2014-05-26 21:51:50 -04:00
Ehsan Akhgari
ad3b490e96 Bug 1013663 - Fix some bad implicit conversion constructors in the JS engine; r=jorendorff,jandem 2014-05-25 21:46:24 -04:00