JSAPI functions are not extern "C" anymore. This warning has a couple false
positives due to template specialization (see first patch of this bug), but we
were already working around them, because apparently some mingw builds use it.
Once I fix cbindgen to generate the specializations as needed we can remove
those workarounds, but this is green in the meantime and doesn't hurt.
Depends on D61626
Differential Revision: https://phabricator.services.mozilla.com/D61627
--HG--
extra : moz-landing-system : lando
Most of the code was copied from the String nursery allocation code paths and
then adjusted to work with BigInts. Where applicable, the newly added BigInt
functions were placed right next to the String functions, so it's easier to
compare them against each other. In a follow-up bug, we should try to reduce
these code duplications.
In contrast to Strings, nursery allocated BigInts will also try to nursery
allocate their heap digits, when needed, in the nursery. This works similar to
the slots and elements storage for objects, which can also be nursery
allocated. Supporting nursery allocation for BigInt digits is important when we
want to support nursery allocation of BigInts using heap digits, because it
avoids the extra overhead of registering malloc memory with nursery cells.
Differential Revision: https://phabricator.services.mozilla.com/D54772
--HG--
extra : moz-landing-system : lando
This macro is defined when building the Rust bindings, but it doesn't
actually affect anything.
Differential Revision: https://phabricator.services.mozilla.com/D51771
--HG--
extra : moz-landing-system : lando
We want to remove flat strings (JSFlatString). With this patch we only expose
linear strings (JSLinearString) to API consumers.
This is very mechanical for the most part, because code typically only cares
about linear strings and not the null-termination aspect.
CTypes's Library.cpp has some Windows-specific code where we relied on null-terminated
strings. This patch adds JS_CopyStringCharsZ for that use case.
Differential Revision: https://phabricator.services.mozilla.com/D48314
--HG--
extra : moz-landing-system : lando
RustJSPrincipal is used in Servo; we just return the conservative value of 'false'.
Differential Revision: https://phabricator.services.mozilla.com/D47478
--HG--
extra : moz-landing-system : lando
Transition to syn 1.0 is ongoing, but these take a long time to build.
Hopefully we already patch coreaudio-sys manually so all the crates dependent on
bindgen are effectively in-tree.
I published v0.51.1-oldsyn to avoid pulling all these dependencies for now.
Differential Revision: https://phabricator.services.mozilla.com/D46966
--HG--
rename : third_party/rust/quote-0.6.11/tests/conditional/integer128.rs => third_party/rust/quote/tests/conditional/integer128.rs
rename : third_party/rust/unicode-xid-0.1.0/scripts/unicode.py => third_party/rust/unicode-xid/scripts/unicode.py
extra : moz-landing-system : lando
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
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
Just like C++14 sized deallocation support, we don't want to support
this. We shouldn't be using `new` on over-aligned types anyway.
Differential Revision: https://phabricator.services.mozilla.com/D41819
--HG--
extra : moz-landing-system : lando
Using process-wide prefs is consistent with the other JIT options and is simpler
to work with (one place to initialize for all runtimes).
Differential Revision: https://phabricator.services.mozilla.com/D37385
--HG--
extra : moz-landing-system : lando
We are changing the representation of values on 64-bit. Part 5 of this patch stack has more details on the changes.
Differential Revision: https://phabricator.services.mozilla.com/D29056
--HG--
extra : moz-landing-system : lando
We are changing the representation of values on 64-bit. Part 5 of this patch stack has more details on the changes.
Differential Revision: https://phabricator.services.mozilla.com/D29056
--HG--
extra : moz-landing-system : lando
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
- Replace AutoIdVector with RootedIdVector.
- Replace JS::MutableHandleIdVector through rustbindgen in wrapper.hpp,
otherwise MutableHandleIdVector will be converted to u8 in rust, and
causes only 1 byte is passed to props in GetPropertyKeys.
- Add another glue function GetMutableHandleIdVector to get the object.
Differential Revision: https://phabricator.services.mozilla.com/D25360
This adds a pre write barrier to Heap<T> so that these can be uses as non-roots in the heap without breaking our snapshot at the beginning invariant if they are written to during an incremental GC. This makes it harder to misuse and allows us to take out manual barriers in at least one place.
Differential Revision: https://phabricator.services.mozilla.com/D25083