Gaming4JC
d965d685b5
420857 - Part 4: Report the position of opening bracket for missing bracket error in array literal.
2019-07-22 19:52:08 +08:00
Gaming4JC
f1f51320fb
420857 - Part 3: Report the position of opening brace for missing brace error in object literal.
2019-07-22 19:52:05 +08:00
Gaming4JC
fce1adbcd7
420857 - Part 2: Report the position of opening brace for missing brace error in block.
2019-07-22 19:52:02 +08:00
Gaming4JC
e5f1edc00c
420857 - Part 1: Report the position of opening brace for missing brace error in function body.
2019-07-22 19:51:58 +08:00
Gaming4JC
b9409d8774
1357506 - Remove assert that constructorBox can only be set once when parsing classes.
...
Both asm.js and syntax parsing can abort and rewind parsing of an inner function.
The bookkeeping to make sure that a class's constructor FunctionBox is only set once is not worth it -- duplicate constructor definitions already throw an early error.
2019-07-22 19:51:53 +08:00
Gaming4JC
bbb2447fb0
1357483 - Stop changing the end position of parenthesized expression ParseNodes.
2019-07-22 19:51:44 +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
482fc16376
1340148 - Disallow function redeclarations at module top level.
2019-07-22 19:51:35 +08:00
Gaming4JC
006b0f5d17
104442 - Part 1: Report the position and the kind of previous declaration for redeclaration error.
2019-07-22 19:51:20 +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
9b7c6181e6
1339963 - Part 3: Check IdentifierName in ExportClause without from.
2019-07-22 19:51:15 +08:00
Gaming4JC
e36ea05a8b
1339963 - Part 2: Use MUST_MATCH_TOKEN for contextual keyword where it can be used.
2019-07-22 19:51:12 +08:00
Gaming4JC
942760e3c4
1339963 - Part 1: Split Parser::exportDeclaration.
2019-07-22 19:51:08 +08:00
Gaming4JC
e3244802ec
1340089 - Check the binding name in comprehensionFor.
2019-07-22 19:50:56 +08:00
Gaming4JC
138d60c071
1336783 - followup: Fix rooting.
2019-07-22 19:50:53 +08:00
Gaming4JC
f2c29cbe59
1336783 - Part 3 - Use simpler macro to avoid internal compiler error on SM-tc(H).
2019-07-22 19:50:50 +08:00
Gaming4JC
9be68cbc6e
1336783 - Part 2: Remove Parser::checkStrictBinding.
2019-07-22 19:50:47 +08:00
Gaming4JC
c1f6b0ff36
1336783 - Part 1: Rework on reserved word and remove TokenStream::KeywordIsName.
2019-07-22 19:50:44 +08:00
Gaming4JC
dc06903cd1
1283712 - Part 3: Add Parser::errorWithNotes and Parser::errorWithNotesAt.
2019-07-22 19:49:50 +08:00
Gaming4JC
c92b219172
1339137 - Don't do Annex B lexical function behavior when redeclaring a parameter name in a function with parameter expressions.
2019-07-22 19:49:28 +08:00
Gaming4JC
bba9b43fca
1337143 - Tweak ExportClause parsing to eliminate a peekToken where a simpler consuming getToken could be performed.
2019-07-22 19:49:24 +08:00
Gaming4JC
bd6ebc2ffe
1337143 - Tweak NamedImports parsing to eliminate a complexifying peekToken where getToken could be used.
2019-07-22 19:49:20 +08:00
Gaming4JC
07cd213071
1320408 - Part 2: Change JSFunction::getOrCreateScript to static method.
2019-07-22 19:47:27 +08:00
Gaming4JC
ee1e2aba19
1317375 - Implement "Template Literals Revision / Lifting Template Literal Restriction" ECMAScript proposal
2019-07-22 19:47:00 +08:00
Gaming4JC
8350dfc515
1317374 - Don't do Annex B lexical function behavior when redeclaring a parameter name.
2019-07-22 19:46:55 +08:00
Gaming4JC
e4867e8b4d
1326454 - Don't report an error when SourceCoords::add fails, because it fails only when an underlying Vector::append fails, and that vector handles OOM reporting itself.
2019-07-22 19:46:43 +08:00
Gaming4JC
6828c2c09b
1326454 - Add assertions to TokenStream::skipChars{,IgnoreEOL} verifying EOF isn't yet hit and that newlines aren't skipped, if appropriate.
2019-07-22 19:46:40 +08:00
Gaming4JC
a91f1769b7
1326454 - Make TokenStream::skipChars{,IgnoreEOL} accept an unsigned integral number of chars to skip.
2019-07-22 19:46:36 +08:00
Gaming4JC
c7d3f8e8a3
1326454 - Make TokenStream::peekChar's signature fallible.
2019-07-22 19:46:33 +08:00
Gaming4JC
3d4f7e67fc
1326454 - Rename TokenStream::getBracedUnicode to TokenStream::matchBracedUnicode and make its signature fallible.
2019-07-22 19:46:30 +08:00
Gaming4JC
cd2bccf4c0
1326454 - Introduce TokenStream::warning that warns at the current offset.
2019-07-22 19:46:27 +08:00
Gaming4JC
c94ed16b4f
1326454 - Introduce TokenStream::error that reports an error at the current offset.
2019-07-22 19:46:24 +08:00
Gaming4JC
94c6eea52b
1325157 - Implement a ParserBase class that holds functionality that's identical between syntax parsing and full parsing.
2019-07-22 19:46:21 +08:00
Gaming4JC
d451930d58
1320403 - Move JSFunction::EXPR_BODY to JSScript, LazyScript, and FunctionBox.
2019-07-22 19:46:14 +08:00
Gaming4JC
7f7b0a029c
636635 - Do not create named lambda binding for a function created by Function constructor.
2019-07-22 19:46:11 +08:00
Gaming4JC
dd359c6105
1317379 - Disallow generator functions and async functions as direct children of if/else.
2019-07-22 19:46:07 +08:00
Gaming4JC
8589f6e316
1296814 - Move FunctionDeclaration-as-consequent/alternative handling out of Parser::functionStmt into Parser::consequentOrAlternative.
2019-07-22 19:46:04 +08:00
Gaming4JC
02761b7fc2
1317153 - Provide better error message when errornous syntax possibly match "await SOMETHING" outside async function.
2019-07-22 19:46:00 +08:00
Gaming4JC
578e96b2cc
1315815 - Don't treat async or await as a keyword when they contain escapes.
2019-07-22 19:45:53 +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
ae2267db1e
Remove useless assert.
...
Resolves #1055 .
2019-04-27 08:55:51 +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
eea318fce4
Remove Parser::reportHelper since it's no longer used.
2019-04-13 07:02:00 +08:00
wolfbeast
d8bcfdb867
Inline Parser::reportHelper into its callers.
2019-04-13 07:01:58 +08:00
wolfbeast
ff81b6b3d8
Remove Parser::reportWithNode and its remaining callers.
...
All of the callsites have a full ParseNode* at hand, of which the offset
can be directly accessed.
2019-04-13 07:01:56 +08:00
wolfbeast
a389b4e151
Report errors for bad increment/decrement operands using
...
explicitly-specified offsets.
2019-04-13 07:01:54 +08:00