- 06 Sep, 2016 1 commit
-
-
bakkot authored
This introduces ClassLiteralProperty and a supertype LiteralProperty of it and ObjectLiteralProperty. It also splits the parsing of the two. This substiantially clarifies some logic, especially as classes continue to evolve, and is also about a 2% performance improvement to parsing either kind of property (since no work is wasted on logic only necessary for the other kind). Also, it saves a word on ObjectLiteralProperties. Review-Url: https://codereview.chromium.org/2302643002 Cr-Commit-Position: refs/heads/master@{#39219}
-
- 18 Jul, 2016 1 commit
-
-
neis authored
Highlights: - Record all imports and exports in the ModuleDescriptor. - Remove ImportDeclaration; instead, introduce a new variable kind for imports. - Set name on default exported anonymous functions. Still to do: declaration of namespace imports. BUG=v8:1569 Review-Url: https://codereview.chromium.org/2108193003 Cr-Commit-Position: refs/heads/master@{#37815}
-
- 15 Jul, 2016 1 commit
-
-
verwaest authored
This replaces the vtable on AstNode with a NodeType tag. The visitors replace double dispatch with a single switch over the NodeType. For now, visitors with subclasses still have virtual methods themselves. We should probably specialize them later as well. The uint8_t NodeType allows us to better pack memory, saving 8-16 bytes on many AST nodes (with additional packing that I'll do in a follow-up CL) BUG= Review-Url: https://codereview.chromium.org/2142233003 Cr-Commit-Position: refs/heads/master@{#37788}
-
- 28 Jun, 2016 1 commit
-
-
neis authored
R=adamk@chromium.org BUG= Review-Url: https://codereview.chromium.org/2081733004 Cr-Commit-Position: refs/heads/master@{#37311}
-
- 19 Feb, 2016 3 commits
-
-
nikolaos authored
of non-pattern expressions, according to the (internally circulated) design document. Details to be provided here. 1. RewritableAssignmentExpression has been renamed to RewritableExpression. It is a wrapper for AST nodes that wait for some potential rewriting (that may or may not happen). Also, Is... and As... macros now see through RewritableExpressions. 2. The function state keeps a list of rewritable expressions that must be rewritten only if they are used as non-pattern expressions. 3. Expression classifiers are now templates, parameterized by parser traits. They keep some additional state: a pointer to the list of non-pattern rewritable expressions. It is important that expression classifiers be used strictly in a stack fashion, from now on. 4. The RewriteNonPattern function has been simplified. BUG=chromium:579913 LOG=N Committed: https://crrev.com/7f5c864a6faf2b957b7273891e143b9bde35487c Cr-Commit-Position: refs/heads/master@{#34154} Review URL: https://codereview.chromium.org/1702063002 Cr-Commit-Position: refs/heads/master@{#34162}
-
machenbach authored
Revert of Non-pattern rewriting revisited (patchset #3 id:40001 of https://codereview.chromium.org/1702063002/ ) Reason for revert: [Sheriff] This makes jsfunfuzz unhappy: https://build.chromium.org/p/client.v8/builders/V8%20Fuzzer/builds/7681 Original issue's description: > This patch implements an alternative approach to the rewriting > of non-pattern expressions, according to the (internally circulated) > design document. Details to be provided here. > > 1. RewritableAssignmentExpression has been renamed to RewritableExpression. > It is a wrapper for AST nodes that wait for some potential rewriting > (that may or may not happen). Also, Is... and As... macros now see > through RewritableExpressions. > > 2. The function state keeps a list of rewritable expressions that must be > rewritten only if they are used as non-pattern expressions. > > 3. Expression classifiers are now templates, parameterized by parser > traits. They keep some additional state: a pointer to the list of > non-pattern rewritable expressions. It is important that expression > classifiers be used strictly in a stack fashion, from now on. > > 4. The RewriteNonPattern function has been simplified. > > BUG=chromium:579913 > LOG=N > > Committed: https://crrev.com/7f5c864a6faf2b957b7273891e143b9bde35487c > Cr-Commit-Position: refs/heads/master@{#34154} TBR=rossberg@chromium.org,bmeurer@chromium.org,titzer@chromium.org,nikolaos@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:579913 Review URL: https://codereview.chromium.org/1712203002 Cr-Commit-Position: refs/heads/master@{#34158}
-
nikolaos authored
of non-pattern expressions, according to the (internally circulated) design document. Details to be provided here. 1. RewritableAssignmentExpression has been renamed to RewritableExpression. It is a wrapper for AST nodes that wait for some potential rewriting (that may or may not happen). Also, Is... and As... macros now see through RewritableExpressions. 2. The function state keeps a list of rewritable expressions that must be rewritten only if they are used as non-pattern expressions. 3. Expression classifiers are now templates, parameterized by parser traits. They keep some additional state: a pointer to the list of non-pattern rewritable expressions. It is important that expression classifiers be used strictly in a stack fashion, from now on. 4. The RewriteNonPattern function has been simplified. BUG=chromium:579913 LOG=N Review URL: https://codereview.chromium.org/1702063002 Cr-Commit-Position: refs/heads/master@{#34154}
-
- 19 Jan, 2016 1 commit
-
-
nikolaos authored
After 1564083002, spread expressions are desugared and should not survive in the AST after parsing. This patch removes dead code related to this. It also eliminates the kSpread bailout reason and the concat_iterable_to_array_builtin. R=bmeurer@chromium.org BUG= Review URL: https://codereview.chromium.org/1592713002 Cr-Commit-Position: refs/heads/master@{#33385}
-
- 18 Jan, 2016 1 commit
-
-
nikolaos authored
This became temporarily a big issue, because spreads are desugared into do-expressions. This patch fixes the problem with having spreads as parameter initializers in arrow expressions, e.g., this line would crash: [], ((x = [...[42]]) => x)(); R=rossberg@chromium.org BUG=chromium:578038 LOG=N Review URL: https://codereview.chromium.org/1581403007 Cr-Commit-Position: refs/heads/master@{#33365}
-
- 04 Dec, 2015 1 commit
-
-
caitpotter88 authored
Attempt #<really big number> Parses, and lazily rewrites Destructuring Assignment expressions. The rewriting strategy involves inserting a placeholder RewritableAssignmentExpression into the AST, whose content expression can be completely rewritten at a later time. Lazy rewriting ensures that errors do not occur due to eagerly rewriting nodes which form part of a binding pattern, thus breaking the meaning of the pattern --- or by eagerly rewriting ambiguous constructs that are not immediately known BUG=v8:811 LOG=Y R=adamk@chromium.org, bmeurer@chromium.org, rossberg@chromium.org Review URL: https://codereview.chromium.org/1309813007 Cr-Commit-Position: refs/heads/master@{#32623}
-
- 26 Nov, 2015 1 commit
-
-
rossberg authored
Moves all files related to AST and scopes into ast/, and all files related to scanner & parser to parsing/. Also eliminates a couple of spurious dependencies. R=mstarzinger@chromium.org BUG= Review URL: https://codereview.chromium.org/1481613002 Cr-Commit-Position: refs/heads/master@{#32351}
-
- 21 Oct, 2015 1 commit
-
-
caitpotter88 authored
Adds an implementation of "do expression" parsing (https://webcache.googleusercontent.com/search?q=cache:MIGALjqPDNgJ:wiki.ecmascript.org/doku.php%3Fid%3Dstrawman:do_expressions+&cd=1&hl=en&ct=clnk&gl=us). This feature provides a way to evaluate a block of statements within an expression context, producing the resulting completion value. This is very helpful for implementing certain language features via desugaring. BUG=v8:4488 LOG=N R=adamk@chromium.org, bmeurer@chromium.org, rossberg@chromium.org, wingo@igalia.com Review URL: https://codereview.chromium.org/1399893002 Cr-Commit-Position: refs/heads/master@{#31428}
-
- 30 Sep, 2015 1 commit
-
-
mstarzinger authored
This enables linter checking for "readability/namespace" violations during presubmit and instead marks the few known exceptions that we allow explicitly. R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/1371083003 Cr-Commit-Position: refs/heads/master@{#31019}
-
- 21 Sep, 2015 1 commit
-
-
littledan authored
ES2015 specifies very particular semantics for functions defined in blocks. In strict mode, it is simply a lexical binding scoped to that block. In sloppy mode, in addition to that lexical binding, there is a var-style binding in the outer scope, which is overwritten with the local binding when the function declaration is evaluated, *as long as* introducing ths var binding would not create a var/let conflict in the outer scope. This patch implements the semantics by introducing a DelegateStatement, which is initially filled in with the EmptyStatement and overwritten with the assignment when the scope is closed out and it can be checked that there is no conflict. This patch is tested with a new mjsunit test, and I tried staging it and running test262, finding that the tests that we have disabled due to lack of Annex B support now pass. R=adamk,rossberg LOG=Y BUG=v8:4285 Review URL: https://codereview.chromium.org/1332873003 Cr-Commit-Position: refs/heads/master@{#30842}
-
- 26 Aug, 2015 1 commit
-
-
wingo authored
BUG=v8:4211 LOG=Y R=rossberg@chromium.org Review URL: https://codereview.chromium.org/1315823002 Cr-Commit-Position: refs/heads/master@{#30373}
-
- 24 Aug, 2015 1 commit
-
-
yangguo authored
Revert of Parse arrow functions at proper precedence level (patchset #2 id:60001 of https://codereview.chromium.org/1286383005/ ) Reason for revert: Breaks layout test. Please change test expectation on blink first. --- /mnt/data/b/build/slave/V8-Blink_Linux_64/build/layout-test-results/inspector/sources/debugger-pause/debugger-pause-in-internal-expected.txt +++ /mnt/data/b/build/slave/V8-Blink_Linux_64/build/layout-test-results/inspector/sources/debugger-pause/debugger-pause-in-internal-actual.txt @@ -1,4 +1,4 @@ -CONSOLE ERROR: line 9: Uncaught SyntaxError: Expected () to start arrow function, but got '}' instead of '=>' +CONSOLE ERROR: line 9: Uncaught SyntaxError: Unexpected token ) Tests that pause on exception in internal script does not crash. Script source was shown. Original issue's description: > Parse arrow functions at proper precedence level > > BUG=v8:4211 > LOG=Y > R=rossberg@chromium.org > > Committed: https://crrev.com/9271b0ccf9ddb217deb1f0b9ef9b59b64dc40214 > Cr-Commit-Position: refs/heads/master@{#30298} TBR=rossberg@chromium.org,mstarzinger@chromium.org,fennyfanny655@gmail.com,machenbach@chromium.org,wingo@igalia.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4211 Review URL: https://codereview.chromium.org/1315503002 Cr-Commit-Position: refs/heads/master@{#30318}
-
- 21 Aug, 2015 1 commit
-
-
wingo authored
BUG=v8:4211 LOG=Y R=rossberg@chromium.org Review URL: https://codereview.chromium.org/1286383005 Cr-Commit-Position: refs/heads/master@{#30298}
-
- 14 Aug, 2015 1 commit
-
-
mstarzinger authored
R=yangguo@chromium.org Review URL: https://codereview.chromium.org/1297583002 Cr-Commit-Position: refs/heads/master@{#30172}
-
- 26 Jun, 2015 1 commit
-
-
dslomov authored
R=wingo@igalia.com BUG=v8:811 LOG=N Review URL: https://codereview.chromium.org/1212473002 Cr-Commit-Position: refs/heads/master@{#29337}
-