Commit graph

980 commits

Author SHA1 Message Date
Brian Smith
61b73a894a Issue #2313 - Implement WebAssembly sign extension opcodes. https://bugzilla.mozilla.org/show_bug.cgi?id=1389461 2023-09-26 16:06:17 +08:00
Moonchild
3798308cff Issue #2307 - Follow-up: remove some missed SIMD scalar types. 2023-09-26 16:03:23 +08:00
Moonchild
45c19ce1c5 Issue #2307 - Part 3b: Fix build bustage. 2023-09-22 09:57:05 +08:00
Moonchild
50a4412750 Issue #2307 - Part 3: Remove SIMD.js support
This gets rid of the SIMD-specific scalar types in JS.
This considerably deviates from Mozilla's work because of our divergent
path.
2023-09-22 09:56:35 +08:00
Moonchild
b086ec848b Issue #2307 - Part 2b: Remove superfluous dev comment 2023-09-22 09:52:53 +08:00
Moonchild
20f39d9450 Issue #2307 - Part 2: Move SIMD code generation to masm methods 2023-09-22 09:52:31 +08:00
Moonchild
ba51ff6a74 Issue #2307 - Part 1: Extend masm with the pmovmskb SSE2 instruction. 2023-09-22 09:52:02 +08:00
Brian Smith
8f44226445 Issue #2308 & #1240 Follow-up - Fill in missing JSOP_INC/DEC cases for Doubles in Ion. 2023-09-20 09:31:08 +08:00
Brian Smith
209d714434 Issue #2308 & #1240 Follow-up - Replace JSOP_POS in ++/-- with JSOP_TONUMERIC. https://bugzilla.mozilla.org/show_bug.cgi?id=1519135 2023-09-20 09:30:06 +08:00
Brian Smith
2b637c564f Issue #2308 & #1240 Follow-up - Fill in missing JSOP_INC/DEC cases for Ion on Intel32/64. 2023-09-20 09:29:46 +08:00
Brian Smith
e12e377e51 Issue #2308 & #1240 Follow-up - Add BigInt support to JSOP_INC and JSOP_DEC. https://bugzilla.mozilla.org/show_bug.cgi?id=1526309 2023-09-20 09:29:18 +08:00
Brian Smith
5c8a6c5bb8 Issue #2308 & #1240 Follow-up - Introduce new increment and decrement operations. https://bugzilla.mozilla.org/show_bug.cgi?id=1508521 2023-09-20 09:29:01 +08:00
Brian Smith
e9202b0b0f Issue #2308 - Fix JSON BigInt regressions. https://bugzilla.mozilla.org/show_bug.cgi?id=1522433 2023-09-20 09:28:44 +08:00
Brian Smith
7392901a9b Issue #2026 Follow-up: Fill in missing BigInt64 cases in js::IsTypedArrayConstructor(). Hopefully fixes RSA errors on ProtonMail. 2023-09-20 09:28:07 +08:00
Martok
6ff7b5269e Issue #2298 - Support '#x in obj' ergonomic brand check syntax 2023-08-31 22:39:41 +08:00
Martok
b0d9f0e2ed Issue #2298 - Carry private-ness of names through ParseNodeHandler 2023-08-31 22:38:30 +08:00
Brian Smith
9f80f52d0a Issue #2255 - Disable untested code path in Stopwatch.(h|cpp). https://bugzilla.mozilla.org/show_bug.cgi?id=1325299 Multiprocessor support in Windows returned bogus times causing debug asserts. This may or may not be related to the issue but found it trying to debug it. 2023-08-17 09:13:23 +08:00
Martok
dc5702a0f2 Issue #2172 - add null zone sanity checks 2023-08-10 22:14:10 +08:00
Martok
8893997378 Issue #2172 - ensure pointers in RegExpShared are updated after GC compacting 2023-08-10 22:13:56 +08:00
Martok
cd1920af58 Issue #2172 - add missing RegExpShared TraceKind declaration 2023-08-10 22:13:21 +08:00
Brian Smith
0e1816aa4c No Issue - Fix building with --enable-js-lto Needed to include jscntxt.h due to de-unified building. 2023-08-08 09:43:24 +08:00
Brian Smith
5c3cedb141 Issue #1240 - Follow-up: Add missing JSVAL_TYPE_BIGINT cases in JitFrames.cpp. As pointed out by roytam1 during testing with Discord. 2023-07-29 23:43:04 +08:00
Brian Smith
df03810723 Issue #1240 - Follow-up: Fix incorrect values in Number() constructor. https://bugzilla.mozilla.org/show_bug.cgi?id=1466893 Our code base was using the return value to create the Number object. However with the BigInt changes, it is no longer stored in rval, use args[0]. 2023-07-29 23:42:50 +08:00
Brian Smith
b7e487bdf1 Issue #2026 - Part 4 - Fill in missing dense elements case and fix a comment. https://bugzilla.mozilla.org/show_bug.cgi?id=1456569 Skipped this during the initial implementation, not sure when or if this code path is used, but I figure it should be there just in case. Also fix debug builgs by removing an no longer valid MOZ_ASSERT. 2023-07-29 23:42:33 +08:00
Brian Smith
3ce9cf4deb Issue #2026 - Part 2b - Format BigInts representable as int64_t without first converting them to strings. https://bugzilla.mozilla.org/show_bug.cgi?id=1543677 2023-07-29 23:38:56 +08:00
Brian Smith
d972016c23 Issue #2026 - Part 2a - Support BigInt in NumberFormat and toLocaleString. https://bugzilla.mozilla.org/show_bug.cgi?id=1543677 2023-07-29 23:38:30 +08:00
Brian Smith
b64643e410 Issue #2026 - Part 1 - Implement BigInt64 and BigUint64Array. https://bugzilla.mozilla.org/show_bug.cgi?id=1456569 2023-07-29 23:38:09 +08:00
Brian Smith
15115c97fd Issue #1240 - Part 11 - Fix several issue reported on review. Skip over block delimiters when parsing BigInt literals. Update BigInt hashing to account for the possibility of moving GC. https://bugzilla.mozilla.org/show_bug.cgi?id=1531018 Make HashableValue comparison of BigInts infallible. https://bugzilla.mozilla.org/show_bug.cgi?id=1530406 Fix BigInt constructor API CallArgs usage. https://bugzilla.mozilla.org/show_bug.cgi?id=1526279 2023-07-25 09:15:38 +08:00
Brian Smith
2d5ee3c457 Issue #1240 - Part 10 - Implement minimal Ion support for BigInt. https://bugzilla.mozilla.org/show_bug.cgi?id=1507484 Implement IC support for BigInt. https://bugzilla.mozilla.org/show_bug.cgi?id=1522431 2023-07-25 09:15:18 +08:00
Brian Smith
4aa193b16b Issue #1240 - Part 9 - Fix incorrectly parsing decimal BigInt 0n. The decimal parser strips leading 0s, so prevent tokenbuf being empty. 2023-07-25 09:14:59 +08:00
Brian Smith
7a30b0fa2d Issue #1240 - Part 8 - Fix incorrect asserts with debug enabled. Fix BigInt errors in remainder operations https://bugzilla.mozilla.org/show_bug.cgi?id=1524136 Also fix 2 debug asserts in fallthroughs due to missing BigInt cases. 2023-07-25 09:14:42 +08:00
Brian Smith
4a3f1b7570 Issue #1240 - Part 7 - Handle BigInt values in XPCVariant code. https://bugzilla.mozilla.org/show_bug.cgi?id=1603055 2023-07-25 09:14:25 +08:00
Brian Smith
1355043d40 Issue #1240 - Part 5g - Implement BigInt comparison operators. Implement BigInt support for equality operators. https://bugzilla.mozilla.org/show_bug.cgi?id=1486173 Part 3. Implement BigInt support for relational comparison operators. https://bugzilla.mozilla.org/show_bug.cgi?id=1492669 2023-07-25 09:14:06 +08:00
Brian Smith
bbbab3898f Issue #1240 - Part 6c - Implement asIntN and asUintN methods for BigInt values. https://bugzilla.mozilla.org/show_bug.cgi?id=1501104 2023-07-25 09:13:51 +08:00
Brian Smith
e004b99054 Issue #1240 - Part 6b - Use ToIndex when constructing TypedArray with length argument. https://bugzilla.mozilla.org/show_bug.cgi?id=1317383 Part 2. 2023-07-25 09:13:36 +08:00
Brian Smith
e8f0ea219f Issue #1240 - Part 6a - Implement BigInt.prototype.toLocaleString. https://bugzilla.mozilla.org/show_bug.cgi?id=1366287 Part 5. 2023-07-25 09:13:18 +08:00
Brian Smith
e3ec738471 Issue #1240 - Part 5f - Add DataView methods for BigInt access. https://bugzilla.mozilla.org/show_bug.cgi?id=1528582 2023-07-25 09:12:59 +08:00
Brian Smith
03734326e8 Issue #1240 - Part 5e - BigInt bitwise operators. https://bugzilla.mozilla.org/show_bug.cgi?id=1490387 2023-07-25 09:12:38 +08:00
Brian Smith
20b52c9e2e Issue #1240 - Part 5d - Use the radix when parsing BigInts. Fixes Hex, Octal and Binary BigInt literal parsing. Previously it was only parsing in decimal. 2023-07-25 09:12:20 +08:00
Brian Smith
d44e3c9941 Issue #1240 - Part 5c -Implement ToInt32OrBigInt operation. https://bugzilla.mozilla.org/show_bug.cgi?id=1490387 2023-07-25 09:12:02 +08:00
Brian Smith
44b5d8dec3 Issue #1240 - Part 5b - BigInt support for basic arithmetic operations. https://bugzilla.mozilla.org/show_bug.cgi?id=1471134 Parts 3-5. 2023-07-25 09:11:46 +08:00
Brian Smith
25ee810247 Issue #1240 - Part 5a - BigInt to Number conversion. https://bugzilla.mozilla.org/show_bug.cgi?id=1466893 2023-07-25 09:10:14 +08:00
Brian Smith
dc23241afb Issue #1240 - Part 4 - Implement parser support for BigInt literals. https://bugzilla.mozilla.org/show_bug.cgi?id=1505849 Partially based on https://bugzilla.mozilla.org/show_bug.cgi?id=1456568 Un-result-ified the BigInt XDR code, so we can enable it. https://bugzilla.mozilla.org/show_bug.cgi?id=1419094 Uninitialised memory read with BigInt right-shift https://bugzilla.mozilla.org/show_bug.cgi?id=1679003 2023-07-25 09:09:57 +08:00
Brian Smith
07b6c03dc7 Issue #1240 - Part 3c - Fast-forward to the V8 version of BigIntType. Disabling some sections temporarily since the dependencies are not there yet. Based on the following: https://bugzilla.mozilla.org/show_bug.cgi?id=1502797 https://bugzilla.mozilla.org/show_bug.cgi?id=1471134 https://bugzilla.mozilla.org/show_bug.cgi?id=1441098 Part 3 & 4 Add structured clone support for BigInt and Enable BigInt wrapping from DOM bindings. https://bugzilla.mozilla.org/show_bug.cgi?id=1522738 2023-07-25 09:09:18 +08:00
Brian Smith
d42d5ce138 Issue #1240 - Part 3b - Implement WrappingOperations.h for wraparound math operations & conversions. https://bugzilla.mozilla.org/show_bug.cgi?id=1441657 Implement mozilla::WrappingMultiply. Prerequisite for our V8 fast forward. 2023-07-25 09:08:56 +08:00
Brian Smith
ddd49121a6 Issue #1240 - Part 3a - Adjust mozilla::FloatingPoint<T>'s definition. So only the barest details are specified for floating-point encodings, with every other number, bit mask, &c. mathematically derived. Also add a bunch of documentation comments. https://bugzilla.mozilla.org/show_bug.cgi?id=1508725 Prerequisite for our V8 fast forward. 2023-07-25 09:08:39 +08:00
Brian Smith
13ac0d6483 Issue #1240 - Part 2 - Define the BigIntObject class for BigInt wrapper objects. Based on https://bugzilla.mozilla.org/show_bug.cgi?id=1366287 Part 3. In our Part 3 we will fast forward to the V8 implementation skipping GMP. 2023-07-25 09:08:22 +08:00
Brian Smith
f041afc61d Issue #1240 - Part 1 - Define a new BigInt primitive type. Based on https://bugzilla.mozilla.org/show_bug.cgi?id=1366287 Part 1.0. However leaving out the --enable-bigint changes. 2023-07-25 09:08:03 +08:00
Martok
76052fcda8 Issue #2271 - Use declared names of self-hosted functions for cloning
Ensure that cloning a self-hosted function always has access to the declared
name from the source and that it doesn't get lost on successive clones.
This is done by storing the declared name in an extended slot on rename, and
cloning it with the function.

Based-on: m-c 1546232
2023-07-14 10:20:43 +08:00
Martok
3eb7729d04 Issue #2271 - Separate cloning of native and interpreted functions
Separate code paths make it easier to follow and specialize than a single
one-size-fits-all function.

Based-on: m-c 1405766, 1411954
2023-07-14 10:20:28 +08:00