Commit graph

58 commits

Author SHA1 Message Date
wolfbeast
aae7584fdd Call a more generic function when inlining array natives.
This simplifies the code a bit because
ElementAccessHasExtraIndexedProperty checks for length-overflow
(directly) and sparse-indexes (through TypeCanHaveExtraIndexedProperties)
so the callers don't have to do that anymore.
2019-06-21 09:58:16 +08:00
wolfbeast
8dcf847a45 Tabs -> Spaces (no code change) 2019-06-19 21:34:41 +08:00
wolfbeast
a6bb928fa4 Remove JSOP_SPREADCALLARRAY and just use JSOP_NEWARRAY again. 2019-06-19 21:34:38 +08:00
wolfbeast
90bb3e7f1d Remove and clean up more code. 2019-06-19 21:34:34 +08:00
wolfbeast
c6c456b12b Replace SetOrExtendBoxedOrUnboxedDenseElements with direct calls. 2019-06-19 21:34:33 +08:00
wolfbeast
ec0e78d127 Convert CopyBoxedOrUnboxedDenseElements to something that doesn't crash. 2019-06-19 21:34:29 +08:00
wolfbeast
051e96c365 Remove unused LIR temp register for unboxed arrays. 2019-06-19 21:34:23 +08:00
wolfbeast
87f3c86484 Make use of ArrayObjects in favor of generic JS objects.
ArrayObjects has been a thing for years but been under-used. About time
they are used where prudent.
2019-06-19 21:34:21 +08:00
wolfbeast
1176a9ace1 Inline combined methods for NativeObject and UnboxedArrayObject accesses. 2019-06-19 21:34:19 +08:00
wolfbeast
54b6b407a9 Remove UnboxedArray code part 2 2019-06-19 21:34:02 +08:00
wolfbeast
5c15924907 Remove UnboxedArray code part 1 2019-06-19 21:33:59 +08:00
wolfbeast
ad95798269 Fix #1091 deprot 2019-05-31 07:22:17 +08:00
Lars T Hansen
772e51c7b4 [js, ARM] Always check error return from BufferOffset::diffB.
We were missing error checks at two points. In one case an error return
is meaningful; in another case it is not, as the problem should have
been guarded against at a higher level by emitting far jump islands soon
enough during pasteup of compiled code.
2019-05-31 07:18:34 +08:00
wolfbeast
cc936df2e5 Remove unboxed object code from jit, Part 1 2019-05-24 21:56:13 +08:00
wolfbeast
37315e4898 Remove Unboxed Objects from vm/ Part 1 + fix deprot 2019-05-24 21:56:09 +08:00
wolfbeast
d7714885d1 Remove Unboxed Objects in ScalarReplacement
A note about the Scalar Replacement Changes: The M{Load,Store}Unboxed*
instructions in theory could be used to manipulate and analyze typed
arrays. However, TypedArrays should already be excluded from eligibility
because of the potential for cross-thread sharing in a SharedArrayBuffer
world, and so the only support in Scalar Replacement here is for Unboxed
Objects, meaning it can all be removed.
2019-05-24 21:55:55 +08:00
wolfbeast
7b0eb7be8c remove unboxed code chunk (wip1) 2019-05-24 21:55:45 +08:00
wolfbeast
c3a58ab50b Simplify some alias sets in IonMonkey. 2019-03-29 22:27:39 +08:00
Nicolas B. Pierron
e390f01ef5 Restrict ExtractLinearSum to monotonous operation in infinite math space.
Thanks to Bruno Keith & Niklas Baumstark from the phoenhex team for
finding this issue and reporting it with a proper analysis.
2019-03-29 22:21:19 +08:00
wolfbeast
eb32b5d7e4 Pref the use of unboxed plain objects in JS and disable by default.
This should be all that's needed for #1017, but verification of
impact is definitely desired.
2019-03-23 06:44:08 +08:00
adeshkp
f922e8ae0e Remove a couple of unused variables 2019-03-16 07:04:13 +08:00
wolfbeast
0c5263683a Restrict ExtractLinearSum to find non-wrapping results. 2019-02-16 00:22:09 +08:00
wolfbeast
e4ac0e17f8 Fix mistakingly flagged instructions.
This enables optimizations which were wrongly inhibited before by this typo.
2019-02-16 00:21:23 +08:00
wolfbeast
acb2819baa Simplify SIMD conversion from Uint64 to Double. 2019-02-16 00:18:22 +08:00
wolfbeast
c554052ddd Don't mark MGetFirstDollarIndex as movable. 2019-02-16 00:18:16 +08:00
wolfbeast
3567db7ccc Code style improvements (no bug). 2019-02-16 00:16:18 +08:00
wolfbeast
f592b614d0 Improve graph edge resolution code.
This is a follow-up to ca7ecd37c94e268972697a37eec4e46771c6e6f2 further improving the DiD resolution for CVE-2018-12386.
2019-02-16 00:16:16 +08:00
wolfbeast
3757eafab3 Bug 1493900.
DiD fix.
2019-02-16 00:15:07 +08:00
trav90
4b23aec47e Don't memset-zero the BacktrackingAllocator::vregs array of non-trivial VirtualRegister instances 2019-02-16 00:13:50 +08:00
trav90
02e07860b2 Stop using PodZero in several places to initialize values of non-trivial type 2019-02-16 00:13:45 +08:00
wolfbeast
ac3468d5cc Add extra check for assembler buffer space. 2019-02-16 00:12:29 +08:00
wolfbeast
36a9805617 Revert "Bug 1444668 - Avoid allocating large AssemblerBuffers. r=luke, r=bbouvier, a=RyanVM"
This reverts commit 9472136272f01b858412f2d9d7854d2daa82496f.
2019-02-16 00:12:16 +08:00
wolfbeast
2a6262ee6d Remove recover instruction results after bailouts. 2019-02-16 00:08:29 +08:00
Nicolas B. Pierron
0c1ca8a865 Bug 1464829 - Ensure the recover instruction vector has the expected size. 2019-02-16 00:01:56 +08:00
wolfbeast
8f16d02c34 Change inlining of intrinsics. 2019-02-16 00:01:15 +08:00
wolfbeast
66bf4fa8f9 Bug 1411415. 2019-02-15 23:53:18 +08:00
Jan de Mooij
52269fa01a Bug 1444668 - Avoid allocating large AssemblerBuffers. r=luke, r=bbouvier, a=RyanVM 2019-02-15 23:47:22 +08:00
trav90
10b24b8110 Fix Value::isGCThing footgun, stop returning true for NullValue 2019-02-15 23:41:26 +08:00
janekptacijarabaci
ac07311b18 Bug 1357075 - Pad a nop to unwind to the scope just before a destructuring iterator close trynote
Issue #74
2019-02-15 23:39:34 +08:00
janekptacijarabaci
8af5664922 Bug 1346862 - Fix IteratorClose due to non-local jumps being catchable by try statements inside for-of
Issue #74
2019-02-15 23:39:32 +08:00
janekptacijarabaci
5bf58e6044 Bug 1342553 - Part 0.2: Support JSOP_CHECKISCALLABLE in JIT
Issue #74
2019-02-15 23:39:30 +08:00
janekptacijarabaci
444483bf81 Bug 1342553, Bug 1343072, Bug 1344753 (details in the description)
Bug 1342553 - Part 0.1: Use try-catch for IteratorClose in for-of
Bug 1343072 - Update HasLiveStackValueAtDepth to follow the change in
JSTRY_FOR_OF
Bug 1344753 - Update for-of stack depth in
ControlFlowGenerator::processWhileOrForInLoop

Issue #74
2019-02-15 23:39:29 +08:00
janekptacijarabaci
b0960bf497 Bug 1334314 - Fix debug mode OSR exception handling for IteratorClose trynotes
Issue #74
2019-02-15 23:39:27 +08:00
janekptacijarabaci
4ac4296fce Bug 1331585 - Allow falsy "done" values for IteratorClose due to exception during array destructuring
Issue #74
2019-02-15 23:39:26 +08:00
janekptacijarabaci
b8eb17e022 Bug 1341339 - Check for duplicates in processIterators
Issue #74
2019-02-15 23:39:24 +08:00
janekptacijarabaci
b2e86b0087 Bug 1333946 - Make IonBuilder::processIterators transitive
Issue #74
2019-02-15 23:39:20 +08:00
janekptacijarabaci
082451c781 Bug 1331444 - Keep iterators alive in Ion in for-of loops for IteratorClose due to exceptions
Issue #74
2019-02-15 23:39:12 +08:00
janekptacijarabaci
95390009cc Bug 1147371: Implement calling IteratorClose and "return" on iterators in yield*
Issue #74
2019-02-15 23:39:07 +08:00
janekptacijarabaci
d36d40760a Bug 1147371: Implement IteratorClose for array destructuring
Issue #74
2019-02-15 23:39:05 +08:00
janekptacijarabaci
5f3e5dc3fb Bug 1147371: Implement IteratorClose for for-of
Issue #74
2019-02-15 23:39:00 +08:00