Commit graph

996 commits

Author SHA1 Message Date
FranklinDM
f2cd5760ba Issue #1658 - Part 8: Update tests 2022-05-05 09:05:06 +08:00
FranklinDM
cb9809634a Issue #1658 - Part 6: Break and return no control flow for jumps emitted by optional chains under IonBuilder
IIUC, we want to process the GOTO in the case of optional chains, and we do not satisfy the requirements mentioned in the comment of snoopControlFlow's caller. Optional chains are not loops, we (probably) don't have a loop in the instruction following the GOTO, and in the GOTO destination, we're either returning an undefined/null value or the actual value.
2022-05-05 09:04:58 +08:00
FranklinDM
4c35296690 Issue #1658 - Part 5: Add and initialize TDZ check to optional chaining emitter
Partially based on: https://bugzilla.mozilla.org/show_bug.cgi?id=1685260
2022-05-05 09:04:54 +08:00
FranklinDM
a350d51223 Issue #1658 - Part 4: Fix optional chaining assertions and remove unreachable code
This includes the following:

Bug 1611777 - Part 1: Report syntax error for optional property access in self-hosting code. r=yulia!
Bug 1611777 - Part 2: Merge same blocks in emitDeleteOptionalChain(). r=yulia!
Bug 1611777 - Part 3: N/A
Bug 1611777 - Part 4: `super` can't occur on the left-hand side of an optional chain
Bug 1611777 - Part 5: Remove unnecessary super-handling in optional delete. r=yulia!
The child node of a DeleteOptionalChainExpr node can't be a super-property
accessor, so we can remove this code.

Bug 1611777 - Part 6: Crash for unexpected super-base in optional call. r=yulia!
Bug 1611777 - Part 7: Add missing entries to list of valid optional chain start expressions. r=yulia!
Bug 1611777 - Part 8: Add missing emitGet in emitOptionalElemExpression. r=yulia!
Aligns emitOptionalElemExpression() with emitOptionalDotExpression(), so it's
easier to compare both methods against each other.

Bug 1611777 - Part 9: Replace an if-statement with an assertion. r=yulia!
Bug 1611777 - Part 10: N/A
Bug 1611777 - Part 11: Support optional chaining in class heritage expression. r=yulia!
Bug 1611777 - Part 12: Use optionalExpr() for update expressions to match spec grammar. r=yulia!

Using optionalExpr matches the spec grammar more closely. This change also
modifies the reported error message. ++a?.b reported before this change
"unexpected token: '?.'", but now reports "invalid increment/decrement operand".

Bug 1611777 - Part 13: N/A
Bug 1611777 - Part 14: Simplify two lines in optionalExpr(). r=yulia!

We don't need to test for tt == TokenKind::Eof when we return for tt != TokenKind::OptionalChain anyway. Omit local variable for the result value and instead use a tail-call. This matches the local style in the parser more closely.

Bug 1611777 - Part 15: Support FunCall/FunApply optimisations for optional chaining. r=yulia!
Bug 1611777 - Part 16: Pass through ValueUsage in optional chains. r=yulia
2022-05-05 09:04:49 +08:00
FranklinDM
efabdc1885 Issue #1658 - Part 3: Implement support for optional chaining in JS reflection
Partially based on:
Bug 1610447 - Update Reflect to handle Optional Chaining operator
Bug 1657835 - Assertion failure: false, at js/src/builtin/ReflectParse.cpp:3168
2022-05-05 09:04:45 +08:00
FranklinDM
d58db931d5 Issue #1658 - Part 2: Implement bytecode for optional chaining
Partially based on:
Bug 1566143 - Implement the Optional Chaining operator (?.) proposal
Bug 1650340 - Fix deleteElementInOptionalChain
Bug 1644839 - Fix return value of emitOptionalChain on failure
2022-05-05 09:04:40 +08:00
FranklinDM
e04a23ff98 Issue #1658 - Part 1: Implement support for optional chaining in the JS Parser
Partially based on: https://bugzilla.mozilla.org/show_bug.cgi?id=1566143
2022-05-05 09:04:36 +08:00
Brian Smith
d5c43d1d35 Issue #1829 - Readd code cleanup that is not Mac related that got clobbered by reverting Issue #1751 2022-05-04 10:01:23 +08:00
Brian Smith
13fcc4a046 Issue #1829 - Revert "Issue #1751" 2022-05-04 09:40:24 +08:00
Moonchild
eaf9e756a0 Issue #21 - Remove remaining telemetry structs, callers and flags. 2022-04-28 10:33:44 +08:00
Moonchild
d4eac725fd Issue #1877 - Resolve RELEASE_OR_BETA conditionals. 2022-04-21 21:46:47 +08:00
FranklinDM
4a57663c1d Issue #1382 - Set canonical name for trimStart and trimEnd functions
This is needed to fix the assertion on debug builds that self-hosted functions must have consistent names, as these two functions are aliased to `trimLeft` and `trimRight`.
2022-04-19 22:05:45 +08:00
Moonchild
2aeed57657 Issue #1864 - Fix IonBuilder::maybeMarkEmpty.
Look at the instruction's operands instead of the instruction itself,
and take an early exit on empty types.
2022-04-19 22:05:25 +08:00
Moonchild
260cc45e51 [js] Fix AliasSet of MLoadTypedArrayElementHole 2022-04-10 22:58:05 +08:00
Moonchild
72d9d1a476 Don't rely on nsCRT from jsdate. 2022-03-22 22:33:11 +08:00
roytam1
2ceec8871e Bug 1743515 - Add dynamic check for valid serialized length. r=jonco, a=RyanVM 2022-01-19 10:27:16 +08:00
Moonchild
1d1618ff0c Issue #1675 - Move regexp to new-regexp to make bz porting simpler. 2021-08-12 11:21:23 +08:00
Moonchild
12231d9266 Issue #1679 - Part4: Clean up commented-out/WIP code. 2021-08-12 11:21:21 +08:00
Moonchild
3548ae2b2f Issue #1679 - Part 3: Make everything build on supported compilers. 2021-08-12 11:21:20 +08:00
Jeremy Andrews
495db8d7bc Issue #1725 - Fix logic in PerformPromiseAllSettled.
This function essentially appears to work as written, there was an issue with it returning false too early in some situations that prevented it from working properly.
2021-07-23 08:57:36 +08:00
Moonchild
ada10bce17 WIP: Base implementation 2021-07-23 08:57:35 +08:00
Moonchild
ba00d14c12 Issue #1751 - Remove Mac code behind MOZ_WIDGET_TOOLKIT == 'cocoa' 2021-06-24 11:09:47 +08:00
Moonchild
d46c25b5e5 [js] Fix porting typo
Follow-up for 9acd98298ccadd83495fa1615573ebcca6648bae
2021-06-04 09:31:07 +08:00
Jan de Mooij
9c3495379f [js] Fix invalid early return in BaselineFrame::trace.
We were not tracing debugger environments for Baseline frames without any
local/expression slots.
2021-06-04 09:31:06 +08:00
Moonchild
a4b0f333ba Issue #1751 -- Remove XP_MACOSX conditionals from the rest of the tree.
This also removes some PP abuse and takes file entries out of PP when no longer
needed without XP_MACOSX conditionals.
2021-05-07 09:53:59 +08:00
Moonchild
2f27335cc4 Issue #1751 -- Remove XP_DARWIN 2021-05-05 10:27:04 +08:00
Moonchild
a9c8f3a84a Issue #1751 -- Remove XP_IOS 2021-05-05 10:26:14 +08:00
Moonchild
4651d97342 Issue #1756 - Clean up ICU patch.
We don't need ICU_UNUM_HAS_FORMATDOUBLEFORFIELDS because we don't support any
ICU other than the one in-tree.
2021-04-02 10:34:14 +08:00
Moonchild
bdcb9cc504 Issue #1756 - Expose NumberFormat.formatToParts() to content. 2021-04-02 10:34:12 +08:00
Moonchild
5df0028108 Issue #1756 - Initial wrapped implementation in C++ 2021-04-02 10:34:10 +08:00
Moonchild
b8f2ada817 Issue #1053 - Remove __ANDROID__ defines (except in third party code) 2021-03-25 09:04:29 +08:00
Moonchild
9985a44c41 Issue #1053 - Remove android blocks from configure. 2021-03-11 10:13:51 +08:00
Moonchild
50653a7c4c Issue #1053 - Remove build system MOZ_ANDROID_* defines and related code. 2021-03-11 10:13:09 +08:00
Moonchild
d6c1cc53ba [js] Add XMMRegName for invalid_xmm 2021-02-16 14:03:47 +08:00
Moonchild
bd0f8a2eca Issue #1739 - Implement numeric separators.
Resolves #1739
2021-02-16 14:03:45 +08:00
Moonchild
dc1d14fcb9 Issue #1738 - Follow-up: Update comment (no code changes) 2021-02-16 14:03:44 +08:00
Moonchild
23c9fab20d Issue #1738 - Part 2: Implement well-formed JSON stringify
This implements the ES2019 spec for JSON stringification, including
lower-casing, properly escaping lone surrogates, etc.
2021-02-12 10:50:21 +08:00
Moonchild
feab62b009 Issue #1738 - Part 1: Improve performance of JSON stringify
- Use some pointer voodoo and instead of stringbuffer append()
- Use a lookup table instead of char comparisons for chr < 256
- Stop using a Hashtable/MovableCellHasher for JSON CycleDetector
2021-02-12 10:50:19 +08:00
Moonchild
ebf2abb0e3 Update tzdata to 2021a
Because people are apparently never satisfied with the time zones on the planet!
2021-02-12 10:50:02 +08:00
Moonchild
34dc51690f Issue #1732 - Implement JSON superset proposal.
This change makes unicode line and paragraph separators allowed in JS strings,
removing the only quirk of the JS string definition that made JSON not a valid
subset of JS.

Resolves #1732
2021-02-12 10:49:19 +08:00
Moonchild
4ff9d87cb4 Issue #1726 - Add verification test for string.replaceAll() 2021-02-05 07:35:08 +08:00
meatloaf
00a689060f Issue #1726 - Implement String.replaceAll()
This also implements IsRegExp, as this demands it.
Ported from https://bugzilla.mozilla.org/show_bug.cgi?id=1540021
2021-02-05 07:35:06 +08:00
Moonchild
0989dc6d2d [js] Remove unused promise selfhosting functions.
These are leftovers from when promises were fully self-hosted and could cause
confusion if left in place.
2021-02-03 10:04:44 +08:00
Moonchild
5d2fea0dac [js] Add AutoEnterOOMUnsafeRegion to JS_TransplantObject.
Transplanting objects is inherently oom-unsafe, so add
`AutoEnterOOMUnsafeRegion` to `JS_TransplantObject()` and annotate crashes
accordingly if they do happen.
2021-01-27 21:02:55 +08:00
Matt A. Tobin
325e57e916 Issue #1624 - Fix slot access intrinsics for objects with > 16 reserved slots
Also flips ion inlining pref back on
2021-01-14 22:19:19 +08:00
Moonchild
aa38ed97fa Issue #1701 - Implement Intl.PluralRules API 2020-12-24 09:36:34 +08:00
Moonchild
fe5097e7ed Nuke erroneously added vim line. 2020-12-04 08:52:50 +08:00
Moonchild
ec0865128b Issue #1624 - Make ion inlining optimizations a pref.
This also adds it to JS_SetGlobalJitCompilerOption()
2020-12-04 08:52:49 +08:00
Moonchild
7996b9e2cf Issue #1624 - Globally disable inlining optimizations in the JS JIT compiler. 2020-12-02 09:57:31 +08:00
Matt A. Tobin
50684945ba Issue #1676 - Follow-up: Put js/src (including vm), jit, and wasm back into unified sources.
Function template inflation in intermediate code. The linker problem we hit with the corrupt file was because there were too many function descriptors and relation in the .lib
2020-11-27 10:02:14 +08:00