Граф коммитов

46 Коммитов

Автор SHA1 Сообщение Дата
Jeff Walden 81f4ca4ee6 Bug 1502355 - Declare |JSClass| in consistent fashion everywhere. r=arai
Differential Revision: https://phabricator.services.mozilla.com/D87376
2020-08-18 20:50:07 +00:00
Philip Chimento 1fab6fc78e Bug 1426865 - Add default visibility to JSAPI symbols. r=sfink
Depends on D49098

Differential Revision: https://phabricator.services.mozilla.com/D49099

--HG--
extra : moz-landing-system : lando
2019-10-27 22:34:11 +00:00
Ted Campbell 6e05e62cb0 Bug 1547824 - Change JS::Value from union to class. r=jwalden
Now that all the bad type-punning is gone, JS::Value has a single
asBits_ field and we should use a class aggregate type instead.

Differential Revision: https://phabricator.services.mozilla.com/D46325

--HG--
extra : moz-landing-system : lando
2019-09-19 23:56:55 +00:00
Gurzau Raul 6bd9ca2b13 Backed out 4 changesets (bug 1547824) for build bustage at vm/Interpreter.h on a CLOSED TREE.
Backed out changeset f87ca6d25d62 (bug 1547824)
Backed out changeset 261a25ae16e2 (bug 1547824)
Backed out changeset d2df23e104f1 (bug 1547824)
Backed out changeset 0188973c2b10 (bug 1547824)
2019-09-20 02:52:10 +03:00
Ted Campbell 248faef2dc Bug 1547824 - Change JS::Value from union to class. r=jwalden
Now that all the bad type-punning is gone, JS::Value has a single
asBits_ field and we should use a class aggregate type instead.

Differential Revision: https://phabricator.services.mozilla.com/D46325

--HG--
extra : moz-landing-system : lando
2019-09-19 21:12:05 +00:00
Narcis Beleuzu 1d3737ff0d Backed out changeset d99e941429d0 (bug 1568923) for SM bustages on RelocationOverlay.h . CLOSED TREE 2019-08-22 20:31:45 +03:00
krystal fdda6b6a38 Bug 1568923 - String deduplication during tenuring. r=sfink
Most live nursery strings can be deduplicated in moveToTenured through a hashset. 
Dependent strings are complicated to deal with since their chars need to be updated with the newly deduplicated base chars.
If the dependent string is tenured, its bases cannot be deduplicated since a tenured dependent string chars cannot be updated. Otherwise, the following steps will be able to update its chars.
1. Preserve the nursery base chain by saving dependent string nursery bases in its relocation overlay. This allows dependent string nursery root base to be reached.
2. Calculate the original dependent string base offset: dependent string nursery chars - dependent string root base nursery chars. Root base nursery chars is saved in its relocation overlay.
3. Update the dependent string chars with its new root base chars and the calculated offset.
4. Assign either the root base or the undepended string in which the dependent string uses chars from as the new base to unchain any potentially long dependency chain.

Differential Revision: https://phabricator.services.mozilla.com/D39440

--HG--
extra : moz-landing-system : lando
2019-08-22 17:09:27 +00:00
Jon Coppeard d4f47d27ad Bug 1573844 - Remove references to js::Class and remove the alias r=tcampbell
The final huge patch. This is a search-and-replace removal of js::Class followed by clang-format and removal of the alias from TypeDecls.h.

Depends on D41986

Differential Revision: https://phabricator.services.mozilla.com/D41987

--HG--
extra : moz-landing-system : lando
2019-08-14 19:13:12 +00:00
Jon Coppeard 66fc30ba53 Bug 1573844 - Remove js::Class definition and alias JSClass to it r=tcampbell,mccr8
JSClass contained void* members corresponding to the internal pointer members of js::Class. This stores the internal members in JSClass and removes js::Class.

This leaves js::Class aliased to JSClass while we remove references to it. I also aliased Jsvalify and Valueify into global scope temporarily to make this compile. These get removed in the following patches.

I had to remove a few functions which now don't compile with js::Class being the same type as JSClass.

Differential Revision: https://phabricator.services.mozilla.com/D41983

--HG--
extra : moz-landing-system : lando
2019-08-15 08:32:22 +00:00
Jon Coppeard d21beb7f9e Bug 1572782 - Remove unused js::FreeOp alias and remaining references r=tcampbell?
Differential Revision: https://phabricator.services.mozilla.com/D41413

--HG--
extra : moz-landing-system : lando
2019-08-12 12:35:11 +00:00
Jon Coppeard a00726d223 Bug 1572782 - Remove js::FreeOp and make JSFreeOp opaque in public API r=tcampbell?
Merge js::FreeOp and JSFreeOp, but alias the former to the latter while we fix uses.

Differential Revision: https://phabricator.services.mozilla.com/D41410

--HG--
extra : moz-landing-system : lando
2019-08-12 10:43:32 +00:00
Oana Pop Rus 44aafcc0d0 Backed out 4 changesets (bug 1572782) for build bustages at build/src/obj-firefox/dist/include/nsIXPCScriptable.h on a CLOSED TREE
Backed out changeset ec9d15c69bc8 (bug 1572782)
Backed out changeset 8239e4baa0f4 (bug 1572782)
Backed out changeset 9fd7bea2b512 (bug 1572782)
Backed out changeset 11d750555fe1 (bug 1572782)
2019-08-12 13:37:03 +03:00
Jon Coppeard fa84e34044 Bug 1572782 - Remove unused js::FreeOp alias r=tcampbell?
Differential Revision: https://phabricator.services.mozilla.com/D41413

--HG--
extra : moz-landing-system : lando
2019-08-12 10:16:04 +00:00
Jon Coppeard 9d51a35e93 Bug 1572782 - Remove js::FreeOp and make JSFreeOp opaque in public API r=tcampbell?
Merge js::FreeOp and JSFreeOp, but alias the former to the latter while we fix uses.

Differential Revision: https://phabricator.services.mozilla.com/D41410

--HG--
extra : moz-landing-system : lando
2019-08-12 10:15:57 +00:00
Jon Coppeard dd05bccccd Bug 1542184 - Use PersistentRooted for rooting vectors of GC things from rust code r=fitzgen?
This replaces the use of heap-alloced Rooted with PersistentRooted which is safe wrt destruction order.

I had to add PersistentRooted and StackGCVector to OPAQUE_TYPES to make this work... I'm not really sure what this does.

Differential Revision: https://phabricator.services.mozilla.com/D30668

--HG--
extra : moz-landing-system : lando
2019-05-10 17:36:34 +00:00
Yoshi Cheng-Hao Huang 222255214e Bug 1534967 - Part 1: use RootedIdVector. r=jonco
Differential Revision: https://phabricator.services.mozilla.com/D25042
2019-04-08 10:46:53 +08:00
Yoshi Cheng-Hao Huang 7f012345b7 Bug 1521732 - Part 5: RootedObjectVector. r=sfink,jonco
s/AutoObjectVector/RootedObjectVector/g

Depends on D23185

Differential Revision: https://phabricator.services.mozilla.com/D23186

--HG--
extra : moz-landing-system : lando
2019-03-26 14:00:51 +00:00
Yoshi Cheng-Hao Huang edbc333422 Bug 1521732 - Part 3: Use RootedValueVector instead. r=sfink,jonco
s/AutoValueVector/RootedValueVector/g

Depends on D23183

Differential Revision: https://phabricator.services.mozilla.com/D23184

--HG--
extra : moz-landing-system : lando
2019-03-26 13:58:20 +00:00
Yoshi Cheng-Hao Huang 9125968c60 Bug 1521732 - Part 1: StackGCVector and RootedVector. r=sfink
Introduce a MOZ_STACK_CLASS StackGCVector, which is
specialization of inline capacity to 8 of GCVector.

Differential Revision: https://phabricator.services.mozilla.com/D23182

--HG--
extra : moz-landing-system : lando
2019-03-25 06:39:12 +00:00
Andy Wingo 7d559ef8c3 Bug 1527860 - Remove ENABLE_BIGINT #ifdef r=jandem,froydnj
Differential Revision: https://phabricator.services.mozilla.com/D19766

--HG--
extra : moz-landing-system : lando
2019-02-14 15:03:44 +00:00
Ehsan Akhgari e5e885ae31 Bug 1521000 - Part 2: Adjust our clang-format rules to include spaces after the hash for nested preprocessor directives r=sylvestre
# ignore-this-changeset

--HG--
extra : amend_source : 7221c8d15a765df71171099468e7c7faa648f37c
extra : histedit_source : a0cce6015636202bff09e35a13f72e03257a7695
2019-01-18 10:16:18 +01:00
Tooru Fujisawa 7983faeb5d Bug 1511393 - Use c-basic-offset: 2 in Emacs mode line for C/C++ code. r=nbp 2018-12-01 04:52:05 +09:00
Benjamin Bouvier a7f1d173a0 Bug 1511383: Update vim modelines after clang-format; r=sylvestre
- modify line wrap up to 80 chars; (tw=80)
- modify size of tab to 2 chars everywhere; (sts=2, sw=2)

--HG--
extra : rebase_source : 7eedce0311b340c9a5a1265dc42d3121cc0f32a0
extra : amend_source : 9cb4ffdd5005f5c4c14172390dd00b04b2066cd7
2018-11-30 16:39:55 +01:00
Sylvestre Ledru 265e672179 Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset

--HG--
extra : amend_source : 4d301d3b0b8711c4692392aa76088ba7fd7d1022
2018-11-30 11:46:48 +01:00
inspiro 9bd2a49d9a Bug 1320105 : Renamed jsid to PropertyKey and included in JS namespace. r=jandem
Renamed jsid to PropertyKey and included in JS namespace

Differential Revision: https://phabricator.services.mozilla.com/D11017

--HG--
extra : moz-landing-system : lando
2018-11-20 12:01:42 +00:00
Jan de Mooij 6d0be5a5cf Bug 1466121 part 2 - Make Compartment and Zone classes instead of structs. r=luke
--HG--
extra : rebase_source : 1394dc86b035340f99c241f3ee1af5dd407bdb67
2018-06-07 16:45:04 +02:00
Jan de Mooij f7fb3be6ec Bug 1466121 part 1 - Rename JSCompartment to JS::Compartment. r=luke
--HG--
extra : rebase_source : cd7140ecda54f0caa02a96f562167b3c9a107450
2018-06-07 16:44:40 +02:00
Robin Templeton de41c625dd Bug 1366287 - Part 1.0: Define a new BigInt primitive type, with a GDB prettyprinter, Rust binding support, and a new out-of-line TraceKind. (Disabled by default, implemented only incompletely, currently passing --enable-bigint will disable JITs, will be flipped on Eventually once every sub-aspect is in place, Don't Have A Cow, Man.) r=jwalden, r=Ms2ger, r=sfink
--HG--
extra : rebase_source : aa13bd94bc6157ff8134894e3ba2e7a2b53e28d9
2018-05-24 11:26:09 -07:00
Jeff Walden ca78e29895 Bug 1449051 - Move JS::Value::layout's members into JS::Value, make JS::Value a union, and apply correct code style to the union fields. r=sfink
--HG--
extra : rebase_source : 6a13e636b90c06419b89942b2848be92b21c4020
2018-03-27 20:20:43 -07:00
Kris Maglione 4f1d6d3f42 Bug 1445551: Part 6 - Remove JSAddonId type and addonId compartment flag. r=mccr8
This compartment flag was only ever needed in order to track system-privileged
add-on code running under the compartment-per-addon system. That system, and
the legacy add-ons it supported, are gone.

WebExtension compartments have their add-on ID stored on their principal, and
are tracked in less obtrusive ways, so this code is no longer useful.

MozReview-Commit-ID: NVEd3Oawak

--HG--
extra : rebase_source : 31908a4daa5e7897ce165a5383110fb722391662
2018-03-13 21:02:34 -07:00
Jason Orendorff e7c94fff59 Bug 1439063 - Part 1: Move several public headers from js/src to js/public. r=jandem.
js/src/jsalloc.h -> js/public/AllocPolicy.h
jsalloc.cpp -> js/src/util/AllocPolicy.cpp
jsbytecode.h -> merge into js/public/TypeDecls.h
jsprf.h -> js/public/Printf.h
jsprf.cpp -> js/src/util/Printf.cpp
jsprototypes.h -> public/ProtoKey.h
jswrapper.h -> js/Wrapper.h

--HG--
rename : js/src/jsalloc.h => js/public/AllocPolicy.h
rename : js/src/jsprf.h => js/public/Printf.h
rename : js/src/jsprototypes.h => js/public/ProtoKey.h
rename : js/src/jswrapper.h => js/public/Wrapper.h
rename : js/src/jsalloc.cpp => js/src/util/AllocPolicy.cpp
rename : js/src/jsprf.cpp => js/src/util/Printf.cpp
extra : rebase_source : 98b16d94c469202eab0303a8da844f1d0b6aa809
extra : amend_source : e0b16c1077226d6fe240f4d7096537f93b43f2b8
extra : histedit_source : d94e0ba7904a7d66742c7fac43f638aaec4fa4e5
2018-02-21 10:30:19 -06:00
Jason Orendorff f5bc70ac9c Bug 1429206 - Part 1: Use js/TypeDecls.h instead of redeclaring certain types. r=jandem.
This adds JS::Zone to TypeDecls.h. Arguably that is pretty borderline, but
even though the Zone type is only used in a dozen or so places in Gecko,
it's a central concept.

--HG--
extra : rebase_source : 2267ad26c8888f3db9213acdb64ce7a56b1c16e5
extra : source : 7f7eb82a83f47c8e1a4b67527c42f88e35f9ff4a
2017-12-18 14:45:06 -06:00
Jason Orendorff 4e0c34d1c3 Bug 1363200 - JSAPI for realms: JS::SetDestroyRealmCallback. r=sfink
--HG--
extra : rebase_source : ad62e332bab6c31db2c98581163b1ca5fe8103f0
extra : intermediate-source : 0f72e0175f55a309ea4bc70240347e6659174af4
extra : source : ac9c7e04c174c8b2e4ca0e533a8a2838d293f700
2017-05-23 16:35:31 -05:00
Jason Orendorff 3b36ad843d Bug 1363200 - JSAPI for realms: Add JS::Realm opaque type and GC rooting policy for it. r=sfink
--HG--
extra : rebase_source : 383cf50c2457dcda9e2c779cafbc62052b12a6a9
2017-06-29 09:57:46 -07:00
Chris Peterson d126c3c24f Bug 1063962 - Replace jschar typedef with C++11 char16_t type. r=jandem 2014-07-21 21:43:21 -07:00
Jason Orendorff 26bdfdcc2f 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 64a2896773 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
Bill McCloskey a144caadb7 Bug 1017302 - Expose add-on IDs to JS engine (r=bholley) 2014-06-21 11:54:22 -07:00
Jan de Mooij ce729bb6e9 Bug 1018243 - Use unsigned char instead of char for latin1 strings. r=luke 2014-05-31 10:44:32 +02:00
Sean Stangl e4de4469c3 Bug 948638 - Always use jsid struct types. r=Waldo 2013-12-10 15:45:41 -08:00
Sean Stangl 33cecd91b2 Bug 939505 - Use JS_DEBUG in public headers. r=jorendorff 2013-12-06 15:03:08 -08:00
Jim Blandy e2f0547581 Bug 892643: Implement PersistentRooted<T>, an unrestricted-lifetime rooting type. r=terrence, jcoppeard 2013-11-04 13:35:08 -08:00
Ehsan Akhgari b7d148db05 Bug 895047 - Make char16_t available everywhere and use that to define PRUnichar and jschar; r=jcranmer,jorendorff,glandium 2013-10-17 00:36:13 -04:00
Phil Ringnalda b808ef7069 Back out ee100983f921 (bug 895047) for build bustage
CLOSED TREE
2013-10-16 21:51:55 -07:00
Ehsan Akhgari 5582e7b472 Bug 895047 - Make char16_t available everywhere and use that to define PRUnichar and jschar; r=jcranmer,jorendorff,glandium 2013-10-17 00:36:13 -04:00
Nicholas Nethercote 01c70c8c97 Bug 911020 - Introduce js/TypeDecls.h, which holds very commonly used type declarations from the JS engine. r=luke.
--HG--
extra : rebase_source : 008ef689989f93b46627b8be8608bdbc544ca3a2
2013-08-27 19:59:14 -07:00