- 09 Mar, 2015 1 commit
-
-
titzer authored
Rationale: separate the inputs and outputs of parsing + analysis from the business of compiling (i.e. generating machine code). BUG= Review URL: https://codereview.chromium.org/974213002 Cr-Commit-Position: refs/heads/master@{#27078}
-
- 03 Mar, 2015 1 commit
-
-
rossberg authored
R=dslomov@chromium.org BUG=3983 LOG=Y Review URL: https://codereview.chromium.org/977543002 Cr-Commit-Position: refs/heads/master@{#26971}
-
- 26 Feb, 2015 2 commits
-
-
adamk authored
This also adds a new VariableMode, IMPORT, which will be used to do appropriate binding for Import-declared Variables. Only named imports are handled for now. "import *" and default import syntaxes have had their TODOs adjusted to match the new code structure. BUG=v8:1569 LOG=n Review URL: https://codereview.chromium.org/948303004 Cr-Commit-Position: refs/heads/master@{#26895}
-
marja authored
We cannot yet detect use-before-declaration in general, because for that we'd need to analyze the context when compiling. But we can detect an error case where we first see a use, then a declaration. For this, I also added end position tracking (needed for error messages) to VariableProxy. Note: the position naming is completely inconsistent: start_position & end_position, position & end_position, pos & end_pos, beg_pos & end_pos, to name a few. This doesn't fix all of it, but tries to unify towards start_position & end_position whenever possible w/ minimal changes. BUG= Review URL: https://codereview.chromium.org/943543002 Cr-Commit-Position: refs/heads/master@{#26880}
-
- 25 Feb, 2015 3 commits
-
-
adamk authored
TBR=rossberg@chromium.org Review URL: https://codereview.chromium.org/952343002 Cr-Commit-Position: refs/heads/master@{#26868}
-
adamk authored
The new logic ensures that the error messages are the same in the "import { <reserved word> }" and "import { foo as <reserved ord> }" cases. Also prepares ParseImportNames for returning both the import and local names to ParseImportClause. BUG=v8:1569 LOG=n Review URL: https://codereview.chromium.org/952863006 Cr-Commit-Position: refs/heads/master@{#26863}
-
marja authored
In addition to Parser, other phases (such as scope analysis) need to handle compilation errors in the future. PendingCompilationErrorHandled takes care of error handling in a unified way. Split from https://codereview.chromium.org/943543002/ . R=rossberg@chromium.org BUG= Review URL: https://codereview.chromium.org/960543002 Cr-Commit-Position: refs/heads/master@{#26853}
-
- 24 Feb, 2015 1 commit
-
-
adamk authored
The FunctionLiteral returned from the parser for modules now has a MODULE_SCOPE, instead of associating the module scope with a Block inside it. This makes it easy to get at the ModuleDescriptor from the caller of Parse(), so I've added a basic test that pokes at the scope and the descriptor. Expect more tests in this vein. BUG=v8:1569 LOG=n Review URL: https://codereview.chromium.org/953983002 Cr-Commit-Position: refs/heads/master@{#26836}
-
- 20 Feb, 2015 2 commits
-
-
adamk authored
This avoids accidental coercion-to-bool when calling ReportMessage() in the parser (e.g., from pointer types), and as a bonus makes callsites easier to read. Review URL: https://codereview.chromium.org/939303002 Cr-Commit-Position: refs/heads/master@{#26788}
-
titzer authored
R=marja@chromium.org BUG= Review URL: https://codereview.chromium.org/935413003 Cr-Commit-Position: refs/heads/master@{#26765}
-
- 19 Feb, 2015 3 commits
-
-
adamk authored
Add() becomes AddLocalExport, which takes an export_name and a local_name. New parsing tests exercise this. Also start generating exports for default exports (though this doesn't yet handle anonymous default exports). BUG=v8:1569 LOG=n Review URL: https://codereview.chromium.org/934323004 Cr-Commit-Position: refs/heads/master@{#26758}
-
rossberg authored
R=marja@chromium.org BUG= Review URL: https://codereview.chromium.org/932333004 Cr-Commit-Position: refs/heads/master@{#26753}
-
rossberg authored
R=marja@chromium.org BUG= Review URL: https://codereview.chromium.org/939063002 Cr-Commit-Position: refs/heads/master@{#26751}
-
- 17 Feb, 2015 2 commits
-
-
adamk authored
This gets Variable and VariableProxy out of the business of worrying about Interfaces. At the same time, get rid of the notion of "module variables". In ES6, variables that refer to modules will be simply be CONST bindings to module namespace objects. The only change in logic here is one more early error: duplicate export names are now rejected. BUG=v8:1569 LOG=n Review URL: https://codereview.chromium.org/918373002 Cr-Commit-Position: refs/heads/master@{#26708}
-
Andreas Rossberg authored
R=marja@chromium.org BUG= Review URL: https://codereview.chromium.org/931223002 Cr-Commit-Position: refs/heads/master@{#26701}
-
- 13 Feb, 2015 1 commit
-
-
arv authored
The preparser needs to log the usage of super properties and then update the scope when we create the function later. BUG=v8:3888 LOG=N R=dslomov@chromium.org, marja Review URL: https://codereview.chromium.org/923683002 Cr-Commit-Position: refs/heads/master@{#26642}
-
- 12 Feb, 2015 3 commits
-
-
marja authored
(To minimize the diff of actually interesting unifications.) R=rossberg@chromium.org BUG= Review URL: https://codereview.chromium.org/915383002 Cr-Commit-Position: refs/heads/master@{#26620}
-
marja authored
Parser must be able to operate independent of Isolate and the V8 heap during parsing. After the heap-independent phase, there is a heap dependent phase, during which we internalize strings, handle errors, etc. This makes Isolate (also via CompilationInfo) unaccessible during parsing, and thus decreases the probability of accidental code changes which would add heap-dependent operations into the heap-independent phase. Since Isolate is also accessible via CompilationInfo, now CompilationInfo is only passed to the entry points of parsing, and not stored in Parser. R=rossberg@chromium.org BUG= Review URL: https://codereview.chromium.org/908173003 Cr-Commit-Position: refs/heads/master@{#26612}
-
Ben L. Titzer authored
R=mstarzinger@chromium.org BUG= Review URL: https://codereview.chromium.org/913183005 Cr-Commit-Position: refs/heads/master@{#26606}
-
- 11 Feb, 2015 1 commit
-
-
dslomov authored
R=arv@chromium.org,rossberg@chromium.org BUG=v8:3834 LOG=N Review URL: https://codereview.chromium.org/917753002 Cr-Commit-Position: refs/heads/master@{#26594}
-
- 10 Feb, 2015 1 commit
-
-
marja authored
It's unnecessary; PreParser can just use normal Scopes for the things it needs to track. Note: the only functionalities of PreParserScope were keeping track of the scope stack, and for each scope, the scope type and language mode. Those are now done by Scope. PreParser doesn't yet put variables into scopes (that will be done in a follow up). R=rossberg@chromium.org BUG= Review URL: https://codereview.chromium.org/912563004 Cr-Commit-Position: refs/heads/master@{#26544}
-
- 06 Feb, 2015 3 commits
-
-
adamk authored
This adds an "experimental" API hook (v8::ScriptCompiler::CompileModule) allowing compilation of modules. The code gen is incredibly basic: the module body is represented by a Block in the AST. But this at least gets more of the pipeline working, and opens the door to writing mjsunit tests (once d8 is modified to support module compilation). BUG=v8:1569 LOG=n Review URL: https://codereview.chromium.org/902093002 Cr-Commit-Position: refs/heads/master@{#26496}
-
marja authored
Previously it just had hacks to have NULLs instead of them and pretended to know nothing about Zone. The hacks provide no real benefit (probably historically based on some weird misconception about the relationship between Zone and Isolate), and make it harder for the PreParser to start to know more about variables and scoping. BUG= Review URL: https://codereview.chromium.org/909463003 Cr-Commit-Position: refs/heads/master@{#26494}
-
dslomov authored
R=arv@chromium.org BUG=v8:3834 LOG=N Review URL: https://codereview.chromium.org/885643004 Cr-Commit-Position: refs/heads/master@{#26483}
-
- 04 Feb, 2015 1 commit
-
-
marja authored
This enables adding more language modes in the future. For maximum flexibility, LanguageMode is a bitmask, so we're not restricted to use a sequence of language modes which are progressively stricter, but we can express the language mode as combination of features. For now, LanguageMode can only be "sloppy" or "strict", and there are STATIC_ASSERTS in places which need to change when more modes are added. LanguageMode is a bit like the old LanguageMode when "extended" mode was still around (see https://codereview.chromium.org/8417035 and https://codereview.chromium.org/181543002 ) except that it's transmitted through all the layers (there's no StrictModeFlag). BUG= Review URL: https://codereview.chromium.org/894683003 Cr-Commit-Position: refs/heads/master@{#26419}
-
- 03 Feb, 2015 1 commit
-
-
dslomov authored
R=arv@chromium.org,rossberg@chromium.org BUG=v8:3834 LOG=N Review URL: https://codereview.chromium.org/867153003 Cr-Commit-Position: refs/heads/master@{#26409}
-
- 30 Jan, 2015 1 commit
-
-
adamk authored
Also had to split ParseImportsList and ParseExportClause into separate methods as they have different rules about reserved words and arguments/eval. Added lots more test cases, including some export cases that were missed before due to incorrect checking of reserved words. BUG=v8:1569 LOG=n Review URL: https://codereview.chromium.org/887843002 Cr-Commit-Position: refs/heads/master@{#26338}
-
- 29 Jan, 2015 1 commit
-
-
aperez authored
Arrow function parameter lists are parsed as expressions. When an identifier is found a VariableProxy is created and added to the list of unresolved variables for the scope. When parsing a function lazily, the scope has been already resolved, so with this patch only the VariableProxy is created, without adding it as an unresolved variable in the scope. BUG=v8:3501 LOG=Y Review URL: https://codereview.chromium.org/880253004 Cr-Commit-Position: refs/heads/master@{#26328}
-
- 28 Jan, 2015 1 commit
-
-
Adam Klein authored
One missing feature: anonymous function & class declarations in "export default". BUG=v8:1569 LOG=n R=arv@chromium.org Review URL: https://codereview.chromium.org/882893002 Cr-Commit-Position: refs/heads/master@{#26313}
-
- 27 Jan, 2015 1 commit
-
-
adamk authored
The approach taken in this CL is to incrementally move toward the currently-specced version of modules in ES6. The biggest change in this patch is separating the parsing of modules from the parsing of scripts, getting rid of the 'module' keyword and thus disallowing modules-in-scripts as well as modules-in-modules. The syntax supported by import/export declarations has not yet been significantly changed, with the major exception being that import declarations require a string as the 'from' part. Most of the existing tests have been disabled, with a first new test added in cctest/test-parsing. BUG=v8:1569 LOG=n Review URL: https://codereview.chromium.org/881623002 Cr-Commit-Position: refs/heads/master@{#26299}
-
- 23 Jan, 2015 2 commits
-
-
adamk authored
R=arv@chromium.org Review URL: https://codereview.chromium.org/867923004 Cr-Commit-Position: refs/heads/master@{#26258}
-
danno authored
Along the way: - Thread isolate parameter explicitly through code that used to rely on getting it from the zone. - Canonicalize the parameter position of isolate and zone for affected code - Change Hydrogen New<> instruction templates to automatically pass isolate R=mstarzinger@chromium.org LOG=N Review URL: https://codereview.chromium.org/868883002 Cr-Commit-Position: refs/heads/master@{#26252}
-
- 15 Jan, 2015 2 commits
-
-
arv authored
This adds support for computed property names, under the flag --harmony-computed-property-names, for both object literals and classes. This is a revert of the revert, 7d48fd9d. BUG=v8:3754 LOG=Y R=dslomov@chromium.org Review URL: https://codereview.chromium.org/798243004 Cr-Commit-Position: refs/heads/master@{#26084}
-
adamk authored
This also simplifies target_stack_ and tightens up the types of nodes that can appear in it. Best I can tell, this code has been dead since https://code.google.com/p/v8/source/detail?r=7542 Review URL: https://codereview.chromium.org/850093004 Cr-Commit-Position: refs/heads/master@{#26083}
-
- 12 Jan, 2015 1 commit
-
-
marja authored
Allows \u{xxxxx} in regexps. Behind the --harmony-unicode flag. Part 1 is here: https://codereview.chromium.org/716423002 BUG=v8:3648 LOG=N Review URL: https://codereview.chromium.org/788043005 Cr-Commit-Position: refs/heads/master@{#26018}
-
- 07 Jan, 2015 1 commit
-
-
sergeyv authored
BUG= Review URL: https://codereview.chromium.org/821723002 Cr-Commit-Position: refs/heads/master@{#25980}
-
- 17 Dec, 2014 2 commits
-
-
machenbach authored
Revert of ES6 computed property names (patchset #1 id:1 of https://codereview.chromium.org/792233008/) Reason for revert: [sheriff] Still crashes on win32 (XP): http://build.chromium.org/p/client.v8/builders/V8%20Win32%20-%201/builds/1380 Original issue's description: > ES6 computed property names > > This adds support for computed property names, under the flag > --harmony-computed-property-names, for both object literals and > classes. > > This is a revert of the revert, a76419f0. > > This changes to do an early bailout in > HOptimizedGraphBuilder::VisitObjectLiteral instead of doing that in the later > loop. > > BUG=v8:3754 > LOG=Y > TBR=dslomov@chromium.org TBR=dslomov@chromium.org,arv@chromium.org NOTREECHECKS=true NOTRY=true BUG=v8:3754 Review URL: https://codereview.chromium.org/811593004 Cr-Commit-Position: refs/heads/master@{#25872}
-
arv authored
This adds support for computed property names, under the flag --harmony-computed-property-names, for both object literals and classes. This is a revert of the revert, a76419f0. This changes to do an early bailout in HOptimizedGraphBuilder::VisitObjectLiteral instead of doing that in the later loop. BUG=v8:3754 LOG=Y TBR=dslomov@chromium.org Review URL: https://codereview.chromium.org/792233008 Cr-Commit-Position: refs/heads/master@{#25868}
-
- 16 Dec, 2014 2 commits
-
-
arv authored
Revert of ES6 computed property names (patchset #1 id:1 of https://codereview.chromium.org/807173002/) Reason for revert: Crashes Win32. It was not flake. Original issue's description: > ES6 computed property names > > This adds support for computed property names, under the flag > --harmony-computed-property-names, for both object literals and > classes. > > This is a revert of the revert, a76419f0 with > no changes. I cannot reproduce the issue on Win8.1 or WinXP. Letting the bots > try again. > > BUG=v8:3754 > LOG=Y > TBR=dslomov@chromium.org TBR=dslomov@chromium.org NOTREECHECKS=true NOTRY=true BUG=v8:3754 Review URL: https://codereview.chromium.org/807033003 Cr-Commit-Position: refs/heads/master@{#25853}
-
arv authored
This adds support for computed property names, under the flag --harmony-computed-property-names, for both object literals and classes. This is a revert of the revert, a76419f0 with no changes. I cannot reproduce the issue on Win8.1 or WinXP. Letting the bots try again. BUG=v8:3754 LOG=Y TBR=dslomov@chromium.org Review URL: https://codereview.chromium.org/807173002 Cr-Commit-Position: refs/heads/master@{#25851}
-