Commit Graph

186 Commits

Author SHA1 Message Date
Steve Singer
74ec6b9f20 Bug 1030400 - Add sym to the 32 bit big endian branch. r=jorendorff 2014-06-25 18:48:00 +02:00
Jason Orendorff
aa5af229d2 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.
2014-06-23 10:55:51 -05:00
Jason Orendorff
2e4bca5600 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.
2014-06-23 10:55:51 -05:00
Jason Orendorff
63903fca62 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.
2014-06-23 10:55:51 -05:00
Terrence Cole
1a13d39839 Bug 1017650 - Re-arrange the GC API include dependency ordering; r=jonco 2014-06-16 11:59:45 -07:00
Jon Coppeard
742d6c52c1 Bug 1021114 - Remove GCMethods::kind() in favour or RootKind::rootKind() r=terrence 2014-06-07 10:34:57 +01:00
Ryan VanderMeulen
6f0dbcc424 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
Jon Coppeard
e6832a4174 Bug 1021114 - Remove GCMethods::kind() in favour or RootKind::rootKind() r=terrence 2014-06-07 10:34:57 +01:00
Jon Coppeard
990b58b2f9 Bug 1008473 - Fix breakage on little endian 32 bit builds r=terrence 2014-06-03 16:29:39 +01:00
Jon Coppeard
86dc4ddeca Bug 1008473 - Make Value::toGCThing() return a Cell pointer rather than void* r=terrence 2014-06-02 16:10:53 +01:00
Ehsan Akhgari
5292a10a42 Bug 1013663 - Fix some bad implicit conversion constructors in the JS engine; r=jorendorff,jandem 2014-05-25 21:46:24 -04:00
Heiher
e1c2fbcb4b Bug 997274 - Value.h uses NUNBOX32 and PUNBOX64 instead of JS_BITS_PER_WORD. r=nbp 2014-05-21 06:47:10 -07:00
Terrence Cole
d991454d37 Bug 989414 - Access the store buffer through the chunk trailer; r=jonco 2014-05-01 09:26:12 -07:00
Jon Coppeard
d67f0ed243 Bug 959787 - Handlify remaining JS APIs r=terrence r=bz r=bholley 2014-04-30 10:10:33 +01:00
Nicholas Nethercote
8f7a0990e8 Bug 952650 (part 18) - Rename JSVAL_IS_SPECIFIC_BOOLEAN. r=till. 2014-04-28 16:55:40 -07:00
Nicholas Nethercote
121cf9ba60 Bug 952650 (part 16) - Remove JSVAL_TO_PRIVATE. r=till. 2014-04-28 16:01:31 -07:00
Nicholas Nethercote
7d15c38836 Bug 952650 (part 15) - Remove JSVAL_TO_GCTHING. r=till. 2014-04-28 16:01:30 -07:00
Nicholas Nethercote
9da212679f Bug 952650 (part 14) - Remove JSVAL_IS_GCTHING. r=till. 2014-04-28 16:01:30 -07:00
Nicholas Nethercote
22241fec6d Bug 952650 (part 13) - Remove JSVAL_IS_PRIMITIVE. r=till. 2014-04-27 20:27:54 -07:00
Nicholas Nethercote
2aae5772c2 Bug 952650 (part 12) - Remove JSVAL_TO_OBJECT. r=till. 2014-04-27 19:58:52 -07:00
Rodrigo Rodriguez Jr.
76724a5e28 Bug 952650 (part 11) - Remove JSVAL_TO_INT. r=njn. 2014-04-27 19:55:08 -07:00
Rodrigo Rodriguez Jr.
3d9f96fd48 Bug 952650 (part 10) - Remove JSVAL_IS_NUMBER. r=njn. 2014-04-27 19:48:45 -07:00
Rodrigo Rodriguez Jr.
fd3acee3e0 Bug 952650 (part 9) - Remove JSVAL_IS_INT. r=njn. 2014-04-27 19:47:02 -07:00
Rodrigo Rodriguez Jr.
ed3320f992 Bug 952650 (part 8) - Remove JSVAL_TO_STRING. r=njn. 2014-04-27 19:45:46 -07:00
Rodrigo Rodriguez Jr.
7020d33c12 Bug 952650 (part 7) - Remove JSVAL_IS_BOOLEAN. r=njn. 2014-04-27 19:44:05 -07:00
Rodrigo Rodriguez Jr.
cf436f0880 Bug 952650 (part 6) - Remove JSVAL_IS_STRING. r=njn. 2014-04-27 19:41:01 -07:00
Rodrigo Rodriguez Jr.
0cf9bff2a9 Bug 952650 (part 5) - Remove JSVAL_TO_DOUBLE. r=njn. 2014-04-27 19:38:31 -07:00
Rodrigo Rodriguez Jr.
98a55a7f8d Bug 952650 (part 4) - Remove JSVAL_IS_DOUBLE. r=njn. 2014-04-27 19:35:40 -07:00
Rodrigo Rodriguez Jr.
9e62890e1f Bug 952650 (part 3) - Remove JSVAL_TO_BOOLEAN. r=njn. 2014-04-27 19:34:12 -07:00
Rodrigo Rodriguez Jr.
ddb500cb53 Bug 952650 (part 2) - Remove JSVAL_IS_VOID. r=evilpies. 2014-04-27 19:32:05 -07:00
Rodrigo Rodriguez Jr.
34b9987192 Bug 952650 (part 1) - Remove JSVAL_IS_NULL. r=terrence. 2014-04-27 19:30:51 -07:00
Terrence Cole
996100701b Bug 989414 - Implement BarrieredValue in terms of BarrieredPtr using GCMethods; r=jonco 2014-04-25 14:18:18 -07:00
Nicolas B. Pierron
431a4b559c Bug 990106 part 3 - Recover RInstructions during bailouts. r=jandem 2014-04-29 10:17:51 -07:00
Shu-yu Guo
754cc81137 Bug 716647 - Part 1: Introduce JS_OPTIMIZED_OUT magic for optimized out slots and teach Debugger about them. (r=jandem) 2014-04-24 01:59:36 -07:00
Ms2ger
272e2f0d6d Bug 981371 - Fix a confused assertion in JSVAL_IS_OBJECT_IMPL (64-bits); r=luke 2014-03-27 21:05:13 +01:00
Luke Wagner
6841ecc72b Bug 979541 - Remove nonLazyScript use in ArgumentsObject::elements (r=jandem) 2014-03-05 14:49:36 -06:00
Jan de Mooij
c988391400 Bug 977538 - Disable PGO for CanonicalizeNaN. r=luke 2014-02-27 20:48:59 +01:00
Benjamin Bouvier
9fd3eb51d1 Bug 939843: Required changes in Spidermonkey; r=mjrosenb 2014-02-27 16:23:11 +01:00
Terrence Cole
7e8aca51e9 Bug 959787 - Handlify several JSAPI interfaces that can GC, Part 1; r=sfink,Ms2ger 2014-01-14 12:41:22 -08:00
Nicolas B. Pierron
766304139d Bug 958471 - Assert range of Object/String Values' payload. r=jandem 2014-01-16 03:06:31 -08:00
Jon Coppeard
f4418b5f63 Bug 959683 - Use rooting typedefs consistently in our public API r=sfink 2014-01-15 10:31:00 +00:00
Sean Stangl
34032f2d84 Bug 939505 - Use JS_DEBUG in public headers. r=jorendorff 2013-12-06 15:03:08 -08:00
Jeff Walden
b07a5143c5 Bug 943839 - Simplify Anchor and get rid of JS_AnchorPtr. r=terrence 2013-12-02 15:43:30 -08:00
Jon Coppeard
9f8805a850 Bug 935136 - Remove the now unnecessary UnbarrieredMutableValueOperations r=terrence 2013-11-19 22:53:36 +00:00
Ed Morley
fdfcb204b1 Backed out changeset b75c703f2e7e (bug 935136) 2013-11-20 16:38:13 +00:00
Jon Coppeard
c92389ebf5 Bug 935136 - Remove the now unnecessary UnbarrieredMutableValueOperations r=terrence 2013-11-19 22:53:36 +00:00
Michael Shuen
cd59b81d1f Bug 937916 - Implement TrueValue() and FalseValue(). r=sfink 2013-11-15 21:46:39 -05:00
Jon Coppeard
cac0f5c43c Bug 935136 - Always barrier assignments to Heap<Value> r=terrence 2013-11-12 11:21:01 +00:00
Jan de Mooij
e2598f29bf Bug 859892 - Rename JS_CANONICALIZE_NAN to JS::CanonicalizeNaN. r=Waldo 2013-10-17 10:16:17 +02:00
Nathan Froyd
a78625bd98 Bug 925807 - define JS_BITS_PER_WORD in terms of JS_64BIT; r=njn 2013-10-11 15:11:48 -04:00