Commit Graph

118 Commits

Author SHA1 Message Date
Moonchild 6ac47e9531 Merge pull request #94 from trav90/js-work
Fix Value::isGCThing footgun, stop returning true for NullValue
2018-04-08 18:16:01 +02:00
trav90 bbd4001cb2 Fix Value::isGCThing footgun, stop returning true for NullValue 2018-04-07 13:11:38 -05:00
trav90 0433d6e7d1 Fix incorrect assertions in js/src/builtin/
Prevents GCC 7 build warning spam.
2018-04-06 13:29:27 -05:00
wolfbeast d960419686 Silence for-each-in warnings 2018-04-05 16:04:21 +02:00
janekptacijarabaci d990d8ab2c Merge branch 'master' of https://github.com/MoonchildProductions/UXP into js_array_values_1 2018-03-27 15:57:18 +02:00
wolfbeast 8d5ec757ec Merge remote-tracking branch 'janek/js_regexp_lastindex_1' 2018-03-27 13:22:30 +02:00
janekptacijarabaci 70c8cf8db7 Bug 1360839 - Call IteratorClose due to abrupt completion from yield
Issue #74
2018-03-25 19:06:08 +02:00
janekptacijarabaci aafdd31444 Bug 1357075 - Pad a nop to unwind to the scope just before a destructuring iterator close trynote
Issue #74
2018-03-25 18:24:06 +02:00
janekptacijarabaci 05441d12b6 Bug 1346862 - Fix IteratorClose due to non-local jumps being catchable by try statements inside for-of
Issue #74
2018-03-25 18:21:15 +02:00
janekptacijarabaci 727c27a30d Bug 1342553 - Part 0.2: Support JSOP_CHECKISCALLABLE in JIT
Issue #74
2018-03-25 17:00:47 +02:00
janekptacijarabaci b311e8fa71 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
2018-03-25 16:22:38 +02:00
janekptacijarabaci 2818e8dedb Bug 1334314 - Fix debug mode OSR exception handling for IteratorClose trynotes
Issue #74
2018-03-25 14:49:32 +02:00
janekptacijarabaci e7a220aae2 Bug 1331585 - Allow falsy "done" values for IteratorClose due to exception during array destructuring
Issue #74
2018-03-25 14:48:34 +02:00
janekptacijarabaci 6056525ced Bug 1341339 - Check for duplicates in processIterators
Issue #74
2018-03-25 14:47:39 +02:00
janekptacijarabaci 4ee42e38e0 Bug 1338796 - Do not call iterator.return if iterator.throw is present in yield*
Issue #74
2018-03-25 14:20:11 +02:00
janekptacijarabaci c93787917d Bug 1335996 - Make test for bug 1333946 more reliable
Issue #74
2018-03-25 13:35:18 +02:00
janekptacijarabaci f3c542a6a5 Bug 1333946 - Make IonBuilder::processIterators transitive
Issue #74
2018-03-25 13:34:31 +02:00
janekptacijarabaci e2853b8a8f Bug 1322069 - Add TryEmitter
Issue #74
2018-03-25 13:32:14 +02:00
janekptacijarabaci e641a2c53a Bug 1334799 - Handle stack value in correct order when leaving for-of loop from finally block
Issue #74
2018-03-25 12:56:18 +02:00
janekptacijarabaci 34533e06a7 Bug 1332881 - Handle stack value in correct order when leaving loop and try-finally
Issue #74
2018-03-25 12:38:28 +02:00
janekptacijarabaci 3df7c50fcc Bug 1332155 - Skip non-try-related trynotes when asserting jump targets
Issue #74
2018-03-25 12:37:44 +02:00
janekptacijarabaci 8bb9649135 Bug 1331444 - Keep iterators alive in Ion in for-of loops for IteratorClose due to exceptions
Issue #74
2018-03-25 12:37:06 +02:00
janekptacijarabaci 5fd5b2ac2f Bug 1317397: Only set lastIndex for global or sticky RegExps in RegExpBuiltinExec per ES2017 2018-03-24 16:01:06 +01:00
janekptacijarabaci aae3a11734 Bug 1343375: Update RegExp.prototype.replace and .match to call ToLength(lastIndex) for non-global RegExp and handle recompilations
[Depends on] Bug 1317397: Implement RegExp.lastIndex changes from ES2017
2018-03-24 15:54:49 +01:00
janekptacijarabaci 114eb8bf48 Bug 1147371: Always decompile argument names in self-hosted code in the caller frame
Issue #74
2018-03-24 12:29:12 +01:00
janekptacijarabaci fdedd57c60 Bug 1147371: Implement JSOP_PICK and JSOP_UNPICK in the expression decompiler
Issue #74
2018-03-24 12:28:12 +01:00
janekptacijarabaci 1ea1ed1515 Bug 1147371: Implement calling IteratorClose and "return" on iterators in yield*
Issue #74
2018-03-24 12:27:00 +01:00
janekptacijarabaci 2bb0252ab4 Bug 1147371: Implement IteratorClose for array destructuring
Issue #74
2018-03-24 12:23:14 +01:00
janekptacijarabaci 4b487efb58 Bug 1147371: Convert self-hosted code that need to call IteratorClose to use for-of
Issue #74
2018-03-24 12:15:02 +01:00
janekptacijarabaci 2d2a60cdae Bug 1147371: Rename allowContentSpread to allowContentIter
Issue #74
2018-03-24 12:11:23 +01:00
janekptacijarabaci 7d753c1a8f Bug 1147371: Implement IteratorClose for for-of
Issue #74
2018-03-24 12:09:30 +01:00
janekptacijarabaci 2a57d73c3b Bug 1204028: Evaluate LHS reference before RHS in destructuring
Issue #73
[Depends on] Bug 1147371: Implement IteratorClose
2018-03-20 12:40:00 +01:00
janekptacijarabaci caa2a53c40 Bug 1322314 - Do not emit ParseNode twice in BytecodeEmitter::emitDestructuringOpsArray
Issue #73
[Depends on] Bug 1147371: Implement IteratorClose
2018-03-20 10:46:22 +01:00
janekptacijarabaci 3ee73ca14c Bug 1322314 - Disallow emitting ParseNode twice
Issue #73
[Depends on] Bug 1147371: Implement IteratorClose
2018-03-20 10:27:23 +01:00
wolfbeast 893a886ea3 Add support for the function name property.
This resolves #78.

Merged remote-tracking branch 'janek/js_function_name_1'
2018-03-20 10:10:12 +01:00
janekptacijarabaci 6085bfdcec Follow up: A opening bracket { was added; Added "function()->explicitName()" instead of "function()->name()"
Issue #78
2018-03-19 18:11:08 +01:00
janekptacijarabaci eb94521052 Part 4: Fix existing tests
Issue #87
2018-03-19 16:08:36 +01:00
janekptacijarabaci e3f1d0d106 Part 3: Support JSOP_SETFUNNAME in Baseline and Ion
Issue #87
2018-03-19 15:59:22 +01:00
janekptacijarabaci f67a2b88d7 Part 2: Call NameFunctions after emitting
Issue #78
2018-03-19 15:51:02 +01:00
janekptacijarabaci 5ef44cf648 Part 1: Implement ES6 function name property semantics
Issue #78
2018-03-19 15:47:10 +01:00
janekptacijarabaci 6822460d3b Bug 1317309: Throw a TypeError when passing a Symbol value to ToAtom
Issue #78
[Depends on] Bug 883377: Implement ES6 function "name" property
semantics
2018-03-19 15:18:37 +01:00
janekptacijarabaci 213f9ea384 Bug 1320042: Rename BytecodeEmitter::emitConditionallyExecuted{SOMETHING} to BytecodeEmitter::emit{SOMETHING}InBranch
Issue #78
[Depends on] Bug 883377: Implement ES6 function "name" property
semantics
2018-03-19 14:55:56 +01:00
janekptacijarabaci 75db97cb37 Bug 1320388: Move JSFunction::HAS_REST to JSScript and LazyScript
Issue #78
[Depends on] Bug 883377: Implement ES6 function "name" property
semantics
2018-03-19 14:48:24 +01:00
janekptacijarabaci 9384b08d87 Tests
Issue #77
2018-03-19 10:46:14 +01:00
janekptacijarabaci df313c5b77 Use ordinary object for RegExp prototype
Issue #77
2018-03-19 10:42:58 +01:00
janekptacijarabaci cf70142093 Bug 1323868: Report object allocation failure when running off-main-thread
Issue #77
[Depends on] Bug 1192038: RegExp.prototype should be an ordinary object
2018-03-19 10:25:44 +01:00
wolfbeast faa5f0df26 Prototypes should be regular objects.
This resolves #76

Merged remote-tracking branch 'janek/js_error_ordinary-object_1'
2018-03-19 09:23:23 +01:00
wolfbeast b2af10d6cf Remove strict arguments poison pill for "caller" property per ES2017
This resolves #79.

Merged remote-tracking branch 'janek/js_strict_arguments_caller_removed_1'
2018-03-18 20:00:50 +01:00
wolfbeast b2331d7622 Correctly tokenize valid JS names when using code points outside of BMP range.
This resolves #72.

Merged remote-tracking branch 'janek/js_variable_unicode_1'
2018-03-18 17:58:37 +01:00
wolfbeast 122938a439 Support ES6's "new function" construct
This resolves #75.

Merged remote-tracking branch 'janek/js_function_new_1'
2018-03-18 17:56:16 +01:00