Commit graph

77 commits

Author SHA1 Message Date
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
wolfbeast
33d09dce8b Simplify checking of targets within destructuring patterns. 2019-04-13 07:01:52 +08:00
wolfbeast
fd2042225e Simplify increment/decrement operand checking. 2019-04-13 07:01:51 +08:00
wolfbeast
598c71feb0 Inline Parser::checkAssignmentToCall into its sole caller. 2019-04-13 07:01:49 +08:00
wolfbeast
de1ec588d2 Specify an explicit offset when reporting an error for a for-of loop
whose target is an expression that begins with 'let'.
2019-04-13 07:01:47 +08:00
wolfbeast
e9b63ee1fe Simplify checking of the left-hand side of assignment and compound
assignment expressions.
2019-04-13 07:01:45 +08:00
wolfbeast
d215447209 Remove for-in/of loop parsing code that redundantly marks the loop
target as assigned -- Parser::forHeadStart already does this.
2019-04-13 07:01:43 +08:00
wolfbeast
71dc0dd5c0 Report some errors about invalid left-hand-sides in for-in/of loop heads
using code with an explicitly computed offset.
2019-04-13 07:01:41 +08:00
wolfbeast
ade86b0f20 Report the error for uninitialized const-declaration in for(;;) loop
head using an explicit offset.
2019-04-13 07:01:40 +08:00
wolfbeast
166a9654a8 Remove Parser::reportWithOffset since it's no longer used. 2019-04-13 07:01:38 +08:00
wolfbeast
218c8ce05c Introduce Parser::warningAt
This reduces reporting an warning at a particular offset to its bare
essentials, simplifying calls.
2019-04-13 07:01:36 +08:00
wolfbeast
8542ac5f61 Report for-loop-decl-with-initializer errors using a specified offset
instead of a node's offset.
2019-04-13 07:01:34 +08:00
wolfbeast
42d2e161db Report bad-class-member errors using a specified offset instead of a node's offset. 2019-04-13 07:01:32 +08:00
wolfbeast
f1f8d377a9 Remove Parser::reportBadReturn
Report simpler errors that don't use the offset of a node as location.
2019-04-13 07:01:31 +08:00
wolfbeast
07c1fa20ea Introduce Parser::errorAt
This reduces reporting an error at a particular offset to its bare
essentials, simplifying calls.
2019-04-13 07:01:29 +08:00
wolfbeast
9191d0d06b Inline Parser::checkFunctionDefinition into its sole caller. 2019-04-13 07:01:27 +08:00
wolfbeast
092b87b756 Inline GeneratorKindFromPropertyType and AsyncKindFromPropertyType.
Trivially inlines these into their sole caller.
2019-04-13 07:01:25 +08:00
wolfbeast
da1cb60dc3 Move the Parser::checkFunctionDefinition call into its callers. 2019-04-13 07:01:23 +08:00
wolfbeast
5cb16b488f Move part of Parser::functionDefinition into callers. 2019-04-13 07:01:21 +08:00
wolfbeast
9a97be75ac Track strict mode errors in for...in and for...of correctly when
syntax-parsing.
2019-04-13 07:01:19 +08:00
wolfbeast
e92f878a93 Track strict mode errors in unary deletions correctly when
syntax-parsing.
2019-04-13 07:01:18 +08:00
wolfbeast
1f00dc49d4 Specify an explicit offset when warning about "use asm" found in the
directive prologue of a script (rather than a function body).
2019-04-13 07:01:16 +08:00
wolfbeast
a652eb1916 Change report at current offset to warning(), extraWarning() and error() 2019-04-13 07:01:14 +08:00
wolfbeast
70fbb46d9e Remove the |bool strict| argument from the report-at-current-offset
Parser function (zeport).
zeport => qeport
2019-04-13 07:01:12 +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