Commit graph

36 commits

Author SHA1 Message Date
Gaming4JC
85350c0655 1339395 - Part 2: Add parser support for rest and spread object properties. 2019-07-22 19:52:35 +08:00
Gaming4JC
417aa02122 1344477 - Part 1: Add JSOP_CALL_IGNORES_RV for function call that ignores return value. 2019-07-22 19:52:23 +08:00
Gaming4JC
ab85510c20 1216630 - Rename preludeStart and postludeEnd to toStringStart and toStringEnd and misc fixes. 2019-07-22 19:51:41 +08:00
Gaming4JC
f79ee2fd83 1216630 - Print class source when calling toString on the constructor.
This is accomplished in the following ways.
LazyScripts and JSScripts now have 4 offsets:
- Source begin and end for the actual source. This is used for lazy parsing.

- toString begin and end for toString. Some kinds of functions, like async, only have a different begin offset. Class constructors have different offsets for both begin and end.

For syntactically present (i.e. non-default) constructors, the class source span is remembered directly on the LazyScript or JSScript. The toString implementation then splices out the substring directly. For default constructors, a new SRC_CLASS SrcNote type is added. It's binary and has as its arguments the begin and end offsets of the class expression or statement. MakeDefaultConstructor reads the note and overrides the cloned self-hosted function's source object. This is probably the least intrusive way to accomplish this.
2019-07-22 19:51:38 +08:00
Gaming4JC
e48044fc01 1342273 - Improve frontend tracelogging. [PARTIAL] Only implemented const to rvalue changes, no tracelogging 2019-07-22 19:51:17 +08:00
Gaming4JC
dc06903cd1 1283712 - Part 3: Add Parser::errorWithNotes and Parser::errorWithNotesAt. 2019-07-22 19:49:50 +08:00
Gaming4JC
ee1e2aba19 1317375 - Implement "Template Literals Revision / Lifting Template Literal Restriction" ECMAScript proposal 2019-07-22 19:47:00 +08:00
wolfbeast
bd6c34b56a Revert "Remove JSOP_SPREADCALLARRAY and just use JSOP_NEWARRAY again."
This reverts commit 912c3f5cbc512557794a3dfd7bc5cb4994413dfe.
2019-06-28 20:10:21 +08:00
wolfbeast
a6bb928fa4 Remove JSOP_SPREADCALLARRAY and just use JSOP_NEWARRAY again. 2019-06-19 21:34:38 +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
cdfd0e29e7 Improve efficiency of (C++) heap allocations related to
BytecodeEmitter::code.

While there, also add some sanity checks and clean up code.
2019-05-31 07:21:48 +08:00
wolfbeast
0c3fb437a9 Rename TokenStream::reportStrictWarningErrorNumberVA to
TokenStream::reportExtraWarningErrorNumberVA for clarity.

Emit Extra Warnings instead of Strict Warnings from the BCE where
it makes sense.
2019-04-13 07:02:02 +08:00
wolfbeast
e9ffb69b02 Split Parser::report into Parser::zeport (a temporary name) that uses
the current offset, and Parser::reportWithNode that derives it from a
Node.
2019-04-13 07:01:10 +08:00
wolfbeast
b68de773fd Stage 1-1: Implement Function.prototype.toString revision proposal.
Tag #960
2019-04-13 07:00:18 +08:00
trav90
4cbf54089a Convert the trailing array of BindingNames at the end of the various kinds of scope data into raw unsigned chars into which those BindingNames are placement-new'd, rather than memcpy-ing non-trivial classes around and failing to comply with the C++ object model 2019-02-16 00:12:57 +08:00
janekptacijarabaci
76b099abb2 Bug 1360839 - Call IteratorClose due to abrupt completion from yield
Issue #74
2019-02-15 23:39:36 +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
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
24ea151662 Bug 1338796 - Do not call iterator.return if iterator.throw is present in yield*
Issue #74
2019-02-15 23:39:23 +08:00
janekptacijarabaci
3bd6ad26e7 Bug 1322069 - Add TryEmitter
Issue #74
2019-02-15 23:39:18 +08:00
janekptacijarabaci
62a9d049ec Bug 1334799 - Handle stack value in correct order when leaving for-of loop from finally block
Issue #74
2019-02-15 23:39:17 +08:00
janekptacijarabaci
ad8ad6e109 Bug 1332881 - Handle stack value in correct order when leaving loop and try-finally
Issue #74
2019-02-15 23:39:15 +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
10ee43a416 Bug 1147371: Rename allowContentSpread to allowContentIter
Issue #74
2019-02-15 23:39:02 +08:00
janekptacijarabaci
5f3e5dc3fb Bug 1147371: Implement IteratorClose for for-of
Issue #74
2019-02-15 23:39:00 +08:00
janekptacijarabaci
2f27d8433c Bug 1204028: Evaluate LHS reference before RHS in destructuring
Issue #73
[Depends on] Bug 1147371: Implement IteratorClose
2019-02-15 23:38:57 +08:00
janekptacijarabaci
078b9f3edc Bug 1322314 - Do not emit ParseNode twice in BytecodeEmitter::emitDestructuringOpsArray
Issue #73
[Depends on] Bug 1147371: Implement IteratorClose
2019-02-15 23:38:56 +08:00
janekptacijarabaci
4d3e61136f Bug 1322314 - Disallow emitting ParseNode twice
Issue #73
[Depends on] Bug 1147371: Implement IteratorClose
2019-02-15 23:38:54 +08:00
janekptacijarabaci
1fd083e81c Follow up: A opening bracket { was added; Added "function()->explicitName()" instead of "function()->name()"
Issue #78
2019-02-15 23:38:53 +08:00
janekptacijarabaci
34fe54e4e8 Part 2: Call NameFunctions after emitting
Issue #78
2019-02-15 23:38:45 +08:00
janekptacijarabaci
748c69d7fd Part 1: Implement ES6 function name property semantics
Issue #78
2019-02-15 23:38:44 +08:00
janekptacijarabaci
3b1c3ec605 Bug 1320042: Rename BytecodeEmitter::emitConditionallyExecuted{SOMETHING} to BytecodeEmitter::emit{SOMETHING}InBranch
Issue #78
[Depends on] Bug 883377: Implement ES6 function "name" property
semantics
2019-02-15 23:38:40 +08:00
janekptacijarabaci
e7ee7caf1e Bug 1320388: Move JSFunction::HAS_REST to JSScript and LazyScript
Issue #78
[Depends on] Bug 883377: Implement ES6 function "name" property
semantics
2019-02-15 23:38:38 +08:00
Roy Tam
dcd9973243 import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo 2018-01-19 03:59:58 +08:00