Project: v8 Issues People Development process History Sign in
New issue
Advanced search Search tips
Issue 1569 Implement Harmony Modules
Starred by 427 users Reported by d...@deanlandolt.com, Jul 23 2011 Back to list

Comments by non-members will not trigger notification emails to users who starred this issue.
Status: Assigned
Owner:
Cc:
HW: ----
OS: ----
Priority: 2
Type: FeatureRequest


Sign in to add a comment
http://wiki.ecmascript.org/doku.php?id=harmony:modules

Pretty please?
 
Cc: nepper@chromium.org danno@chromium.org
Labels: Type-FeatureRequest
Comment 2 by danno@chromium.org, Aug 19 2011
Owner: rossberg@chromium.org
Status: Assigned
Labels: Priority-Medium Harmony
Comment 4 by adamk@chromium.org, Jan 26 2015
Cc: rossberg@chromium.org
Owner: adamk@chromium.org
Comment 5 by impinb...@gmail.com, Jan 27 2015
So, what will the API hooks for loaders roughly be like?

Mostly asked because of https://codereview.chromium.org/881623002/
Project Member Comment 6 by bugdroid1@chromium.org, Jan 27 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/aeb3a7174050e67267a4e2c123469f040400008e

commit aeb3a7174050e67267a4e2c123469f040400008e
Author: adamk <adamk@chromium.org>
Date: Tue Jan 27 21:06:36 2015

Begin modernization of --harmony-modules

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}

[modify] http://crrev.com/aeb3a7174050e67267a4e2c123469f040400008e/src/ast-value-factory.h
[modify] http://crrev.com/aeb3a7174050e67267a4e2c123469f040400008e/src/compiler.h
[modify] http://crrev.com/aeb3a7174050e67267a4e2c123469f040400008e/src/parser.cc
[modify] http://crrev.com/aeb3a7174050e67267a4e2c123469f040400008e/src/parser.h
[modify] http://crrev.com/aeb3a7174050e67267a4e2c123469f040400008e/src/scopes.cc
[modify] http://crrev.com/aeb3a7174050e67267a4e2c123469f040400008e/test/cctest/cctest.status
[modify] http://crrev.com/aeb3a7174050e67267a4e2c123469f040400008e/test/cctest/test-decls.cc
[modify] http://crrev.com/aeb3a7174050e67267a4e2c123469f040400008e/test/cctest/test-parsing.cc
[modify] http://crrev.com/aeb3a7174050e67267a4e2c123469f040400008e/test/mjsunit/harmony/module-parsing.js
[modify] http://crrev.com/aeb3a7174050e67267a4e2c123469f040400008e/test/mjsunit/mjsunit.status

Project Member Comment 7 by bugdroid1@chromium.org, Jan 28 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/f7dc15febeea78b22de1f57c397a3221a43d9213

commit f7dc15febeea78b22de1f57c397a3221a43d9213
Author: Adam Klein <adamk@chromium.org>
Date: Wed Jan 28 19:18:37 2015

Implement ParseExportDeclaration per latest ES6 spec draft

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}

[modify] http://crrev.com/f7dc15febeea78b22de1f57c397a3221a43d9213/src/parser.cc
[modify] http://crrev.com/f7dc15febeea78b22de1f57c397a3221a43d9213/src/parser.h
[modify] http://crrev.com/f7dc15febeea78b22de1f57c397a3221a43d9213/test/cctest/test-parsing.cc
[modify] http://crrev.com/f7dc15febeea78b22de1f57c397a3221a43d9213/test/mjsunit/harmony/module-parsing.js

Comment 8 by adamk@chromium.org, Jan 28 2015
To answer #5: There are not yet plans to expose stable API hooks for module loading. For now, the implementation plan is to get the syntax and basic semantics codified in the ES6 draft into a workable form, behind the --harmony-modules flag.
Comment 9 by impinb...@gmail.com, Jan 29 2015
#8 Okay. Thanks.
Project Member Comment 10 by bugdroid1@chromium.org, Jan 30 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/0c928d533a3418d982a97fdaa45f6e55e34ae039

commit 0c928d533a3418d982a97fdaa45f6e55e34ae039
Author: adamk <adamk@chromium.org>
Date: Fri Jan 30 03:26:50 2015

Implemented new syntax for ImportDeclarations

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}

[modify] http://crrev.com/0c928d533a3418d982a97fdaa45f6e55e34ae039/src/parser.cc
[modify] http://crrev.com/0c928d533a3418d982a97fdaa45f6e55e34ae039/src/parser.h
[modify] http://crrev.com/0c928d533a3418d982a97fdaa45f6e55e34ae039/test/cctest/test-parsing.cc

Project Member Comment 11 by bugdroid1@chromium.org, Feb 6 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/70079dab1386d1b5ffc80d05591597d015aeffde

commit 70079dab1386d1b5ffc80d05591597d015aeffde
Author: adamk <adamk@chromium.org>
Date: Fri Feb 06 17:52:20 2015

Add basic compilation support for modules

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}

[modify] http://crrev.com/70079dab1386d1b5ffc80d05591597d015aeffde/include/v8.h
[modify] http://crrev.com/70079dab1386d1b5ffc80d05591597d015aeffde/src/api.cc
[modify] http://crrev.com/70079dab1386d1b5ffc80d05591597d015aeffde/src/bootstrapper.cc
[modify] http://crrev.com/70079dab1386d1b5ffc80d05591597d015aeffde/src/compiler.cc
[modify] http://crrev.com/70079dab1386d1b5ffc80d05591597d015aeffde/src/compiler.h
[modify] http://crrev.com/70079dab1386d1b5ffc80d05591597d015aeffde/src/debug.cc
[modify] http://crrev.com/70079dab1386d1b5ffc80d05591597d015aeffde/src/full-codegen.cc
[modify] http://crrev.com/70079dab1386d1b5ffc80d05591597d015aeffde/src/parser.cc
[modify] http://crrev.com/70079dab1386d1b5ffc80d05591597d015aeffde/src/parser.h
[modify] http://crrev.com/70079dab1386d1b5ffc80d05591597d015aeffde/test/cctest/cctest.gyp
[modify] http://crrev.com/70079dab1386d1b5ffc80d05591597d015aeffde/test/cctest/cctest.h
[modify] http://crrev.com/70079dab1386d1b5ffc80d05591597d015aeffde/test/cctest/compiler/test-linkage.cc
[modify] http://crrev.com/70079dab1386d1b5ffc80d05591597d015aeffde/test/cctest/test-compiler.cc
[add] http://crrev.com/70079dab1386d1b5ffc80d05591597d015aeffde/test/cctest/test-modules.cc
[modify] http://crrev.com/70079dab1386d1b5ffc80d05591597d015aeffde/test/cctest/test-serialize.cc

Project Member Comment 12 by bugdroid1@chromium.org, Feb 17 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/522937cb494559d209bc53d8251458f33b4e9864

commit 522937cb494559d209bc53d8251458f33b4e9864
Author: adamk <adamk@chromium.org>
Date: Tue Feb 17 20:51:24 2015

Strip Interface class of most of its logic, make it all about Module exports

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}

[modify] http://crrev.com/522937cb494559d209bc53d8251458f33b4e9864/src/arm/full-codegen-arm.cc
[modify] http://crrev.com/522937cb494559d209bc53d8251458f33b4e9864/src/arm64/full-codegen-arm64.cc
[modify] http://crrev.com/522937cb494559d209bc53d8251458f33b4e9864/src/ast-numbering.cc
[modify] http://crrev.com/522937cb494559d209bc53d8251458f33b4e9864/src/ast.cc
[modify] http://crrev.com/522937cb494559d209bc53d8251458f33b4e9864/src/ast.h
[modify] http://crrev.com/522937cb494559d209bc53d8251458f33b4e9864/src/compiler/ast-graph-builder.cc
[modify] http://crrev.com/522937cb494559d209bc53d8251458f33b4e9864/src/compiler/ast-loop-assignment-analyzer.cc
[modify] http://crrev.com/522937cb494559d209bc53d8251458f33b4e9864/src/contexts.cc
[modify] http://crrev.com/522937cb494559d209bc53d8251458f33b4e9864/src/full-codegen.cc
[modify] http://crrev.com/522937cb494559d209bc53d8251458f33b4e9864/src/globals.h
[modify] http://crrev.com/522937cb494559d209bc53d8251458f33b4e9864/src/hydrogen.cc
[modify] http://crrev.com/522937cb494559d209bc53d8251458f33b4e9864/src/ia32/full-codegen-ia32.cc
[modify] http://crrev.com/522937cb494559d209bc53d8251458f33b4e9864/src/interface.cc
[modify] http://crrev.com/522937cb494559d209bc53d8251458f33b4e9864/src/interface.h
[modify] http://crrev.com/522937cb494559d209bc53d8251458f33b4e9864/src/messages.js
[modify] http://crrev.com/522937cb494559d209bc53d8251458f33b4e9864/src/mips/full-codegen-mips.cc
[modify] http://crrev.com/522937cb494559d209bc53d8251458f33b4e9864/src/mips64/full-codegen-mips64.cc
[modify] http://crrev.com/522937cb494559d209bc53d8251458f33b4e9864/src/parser.cc
[modify] http://crrev.com/522937cb494559d209bc53d8251458f33b4e9864/src/parser.h
[modify] http://crrev.com/522937cb494559d209bc53d8251458f33b4e9864/src/ppc/full-codegen-ppc.cc
[modify] http://crrev.com/522937cb494559d209bc53d8251458f33b4e9864/src/prettyprinter.cc
[modify] http://crrev.com/522937cb494559d209bc53d8251458f33b4e9864/src/rewriter.cc
[modify] http://crrev.com/522937cb494559d209bc53d8251458f33b4e9864/src/runtime/runtime-scopes.cc
[modify] http://crrev.com/522937cb494559d209bc53d8251458f33b4e9864/src/scopeinfo.cc
[modify] http://crrev.com/522937cb494559d209bc53d8251458f33b4e9864/src/scopeinfo.h
[modify] http://crrev.com/522937cb494559d209bc53d8251458f33b4e9864/src/scopes.cc
[modify] http://crrev.com/522937cb494559d209bc53d8251458f33b4e9864/src/scopes.h
[modify] http://crrev.com/522937cb494559d209bc53d8251458f33b4e9864/src/typing.cc
[modify] http://crrev.com/522937cb494559d209bc53d8251458f33b4e9864/src/variables.cc
[modify] http://crrev.com/522937cb494559d209bc53d8251458f33b4e9864/src/variables.h
[modify] http://crrev.com/522937cb494559d209bc53d8251458f33b4e9864/src/x64/full-codegen-x64.cc
[modify] http://crrev.com/522937cb494559d209bc53d8251458f33b4e9864/src/x87/full-codegen-x87.cc
[modify] http://crrev.com/522937cb494559d209bc53d8251458f33b4e9864/test/cctest/test-parsing.cc

Project Member Comment 13 by bugdroid1@chromium.org, Feb 18 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/27e8a455df96311db6fb3b50fb3b371e72a61eca

commit 27e8a455df96311db6fb3b50fb3b371e72a61eca
Author: adamk <adamk@chromium.org>
Date: Wed Feb 18 18:25:00 2015

Rename Interface to ModuleDescriptor

ModuleDescriptor will end up holding the set of data described in the
spec as a "Module record". This introduces a little bit of confusion
with ModuleInfo, but I hope that'll become clearer over time.

Also removed the interface-printing flags. We probably want
Module-printing flags, but that can wait until we have more
Module-related structures.

BUG=v8:1569
LOG=n

Review URL: https://codereview.chromium.org/935723004

Cr-Commit-Position: refs/heads/master@{#26728}

[modify] http://crrev.com/27e8a455df96311db6fb3b50fb3b371e72a61eca/BUILD.gn
[modify] http://crrev.com/27e8a455df96311db6fb3b50fb3b371e72a61eca/src/arm/full-codegen-arm.cc
[modify] http://crrev.com/27e8a455df96311db6fb3b50fb3b371e72a61eca/src/arm64/full-codegen-arm64.cc
[modify] http://crrev.com/27e8a455df96311db6fb3b50fb3b371e72a61eca/src/ast.h
[modify] http://crrev.com/27e8a455df96311db6fb3b50fb3b371e72a61eca/src/flag-definitions.h
[modify] http://crrev.com/27e8a455df96311db6fb3b50fb3b371e72a61eca/src/full-codegen.cc
[modify] http://crrev.com/27e8a455df96311db6fb3b50fb3b371e72a61eca/src/ia32/full-codegen-ia32.cc
[delete] http://crrev.com/209cf09ac9e36c1a24cdfa918bc579a4671c6842/src/interface.cc
[modify] http://crrev.com/27e8a455df96311db6fb3b50fb3b371e72a61eca/src/mips/full-codegen-mips.cc
[modify] http://crrev.com/27e8a455df96311db6fb3b50fb3b371e72a61eca/src/mips64/full-codegen-mips64.cc
[add] http://crrev.com/27e8a455df96311db6fb3b50fb3b371e72a61eca/src/modules.cc
[rename] http://crrev.com/27e8a455df96311db6fb3b50fb3b371e72a61eca/src/modules.h
[modify] http://crrev.com/27e8a455df96311db6fb3b50fb3b371e72a61eca/src/parser.cc
[modify] http://crrev.com/27e8a455df96311db6fb3b50fb3b371e72a61eca/src/ppc/full-codegen-ppc.cc
[modify] http://crrev.com/27e8a455df96311db6fb3b50fb3b371e72a61eca/src/scopeinfo.cc
[modify] http://crrev.com/27e8a455df96311db6fb3b50fb3b371e72a61eca/src/scopeinfo.h
[modify] http://crrev.com/27e8a455df96311db6fb3b50fb3b371e72a61eca/src/scopes.cc
[modify] http://crrev.com/27e8a455df96311db6fb3b50fb3b371e72a61eca/src/scopes.h
[modify] http://crrev.com/27e8a455df96311db6fb3b50fb3b371e72a61eca/src/x64/full-codegen-x64.cc
[modify] http://crrev.com/27e8a455df96311db6fb3b50fb3b371e72a61eca/src/x87/full-codegen-x87.cc
[modify] http://crrev.com/27e8a455df96311db6fb3b50fb3b371e72a61eca/tools/gyp/v8.gyp

Project Member Comment 14 by bugdroid1@chromium.org, Feb 19 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/a538d945e39cb653674ef244973ab21d128563d7

commit a538d945e39cb653674ef244973ab21d128563d7
Author: adamk <adamk@chromium.org>
Date: Thu Feb 19 20:14:55 2015

Teach ModuleDescriptor about basic local exports

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}

[modify] http://crrev.com/a538d945e39cb653674ef244973ab21d128563d7/src/ast-value-factory.h
[modify] http://crrev.com/a538d945e39cb653674ef244973ab21d128563d7/src/messages.js
[modify] http://crrev.com/a538d945e39cb653674ef244973ab21d128563d7/src/modules.cc
[modify] http://crrev.com/a538d945e39cb653674ef244973ab21d128563d7/src/modules.h
[modify] http://crrev.com/a538d945e39cb653674ef244973ab21d128563d7/src/parser.cc
[modify] http://crrev.com/a538d945e39cb653674ef244973ab21d128563d7/src/parser.h
[modify] http://crrev.com/a538d945e39cb653674ef244973ab21d128563d7/src/scopeinfo.cc
[modify] http://crrev.com/a538d945e39cb653674ef244973ab21d128563d7/test/cctest/cctest.status
[modify] http://crrev.com/a538d945e39cb653674ef244973ab21d128563d7/test/cctest/test-parsing.cc
[add] http://crrev.com/a538d945e39cb653674ef244973ab21d128563d7/test/message/export-duplicate-as.js
[add] http://crrev.com/a538d945e39cb653674ef244973ab21d128563d7/test/message/export-duplicate-as.out
[add] http://crrev.com/a538d945e39cb653674ef244973ab21d128563d7/test/message/export-duplicate-default.js
[add] http://crrev.com/a538d945e39cb653674ef244973ab21d128563d7/test/message/export-duplicate-default.out
[add] http://crrev.com/a538d945e39cb653674ef244973ab21d128563d7/test/message/export-duplicate.js
[add] http://crrev.com/a538d945e39cb653674ef244973ab21d128563d7/test/message/export-duplicate.out
[modify] http://crrev.com/a538d945e39cb653674ef244973ab21d128563d7/test/message/testcfg.py

Project Member Comment 15 by bugdroid1@chromium.org, Feb 24 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/1a8dc98cbf9d661785444fa70ec7fbc2fd7e0d6c

commit 1a8dc98cbf9d661785444fa70ec7fbc2fd7e0d6c
Author: adamk <adamk@chromium.org>
Date: Tue Feb 24 22:39:26 2015

Fix up ParseProgram and ParseModule to do something sane with module scopes

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}

[modify] http://crrev.com/1a8dc98cbf9d661785444fa70ec7fbc2fd7e0d6c/src/parser.cc
[modify] http://crrev.com/1a8dc98cbf9d661785444fa70ec7fbc2fd7e0d6c/src/parser.h
[modify] http://crrev.com/1a8dc98cbf9d661785444fa70ec7fbc2fd7e0d6c/test/cctest/test-parsing.cc

Project Member Comment 16 by bugdroid1@chromium.org, Feb 25 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/8b33567fd37e3151d3ea707f7fb47b67196a5fc2

commit 8b33567fd37e3151d3ea707f7fb47b67196a5fc2
Author: adamk <adamk@chromium.org>
Date: Wed Feb 25 19:40:39 2015

Simplify error message logic in ParseImportNames

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}

[modify] http://crrev.com/8b33567fd37e3151d3ea707f7fb47b67196a5fc2/src/parser.cc
[modify] http://crrev.com/8b33567fd37e3151d3ea707f7fb47b67196a5fc2/src/parser.h
[add] http://crrev.com/8b33567fd37e3151d3ea707f7fb47b67196a5fc2/test/message/import-as-eval.js
[add] http://crrev.com/8b33567fd37e3151d3ea707f7fb47b67196a5fc2/test/message/import-as-eval.out
[add] http://crrev.com/8b33567fd37e3151d3ea707f7fb47b67196a5fc2/test/message/import-as-reserved-word.js
[add] http://crrev.com/8b33567fd37e3151d3ea707f7fb47b67196a5fc2/test/message/import-as-reserved-word.out
[add] http://crrev.com/8b33567fd37e3151d3ea707f7fb47b67196a5fc2/test/message/import-eval.js
[add] http://crrev.com/8b33567fd37e3151d3ea707f7fb47b67196a5fc2/test/message/import-eval.out
[add] http://crrev.com/8b33567fd37e3151d3ea707f7fb47b67196a5fc2/test/message/import-reserved-word.js
[add] http://crrev.com/8b33567fd37e3151d3ea707f7fb47b67196a5fc2/test/message/import-reserved-word.out

Project Member Comment 17 by bugdroid1@chromium.org, Feb 26 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/fa293dd79f78074a0610739cb8f669849bf5704a

commit fa293dd79f78074a0610739cb8f669849bf5704a
Author: adamk <adamk@chromium.org>
Date: Thu Feb 26 18:40:50 2015

Re-introduce ImportDeclaration to the parser

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}

[modify] http://crrev.com/fa293dd79f78074a0610739cb8f669849bf5704a/src/ast-numbering.cc
[modify] http://crrev.com/fa293dd79f78074a0610739cb8f669849bf5704a/src/ast.h
[modify] http://crrev.com/fa293dd79f78074a0610739cb8f669849bf5704a/src/contexts.cc
[modify] http://crrev.com/fa293dd79f78074a0610739cb8f669849bf5704a/src/globals.h
[modify] http://crrev.com/fa293dd79f78074a0610739cb8f669849bf5704a/src/parser.cc
[modify] http://crrev.com/fa293dd79f78074a0610739cb8f669849bf5704a/src/parser.h
[modify] http://crrev.com/fa293dd79f78074a0610739cb8f669849bf5704a/src/prettyprinter.cc
[modify] http://crrev.com/fa293dd79f78074a0610739cb8f669849bf5704a/src/runtime/runtime-scopes.cc
[modify] http://crrev.com/fa293dd79f78074a0610739cb8f669849bf5704a/src/typing.cc
[modify] http://crrev.com/fa293dd79f78074a0610739cb8f669849bf5704a/src/variables.cc
[modify] http://crrev.com/fa293dd79f78074a0610739cb8f669849bf5704a/test/cctest/test-parsing.cc
[add] http://crrev.com/fa293dd79f78074a0610739cb8f669849bf5704a/test/message/import-as-redeclaration.js
[add] http://crrev.com/fa293dd79f78074a0610739cb8f669849bf5704a/test/message/import-as-redeclaration.out
[add] http://crrev.com/fa293dd79f78074a0610739cb8f669849bf5704a/test/message/import-redeclaration.js
[add] http://crrev.com/fa293dd79f78074a0610739cb8f669849bf5704a/test/message/import-redeclaration.out

Project Member Comment 18 by bugdroid1@chromium.org, Feb 27 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/a7840a2b3ea2db8b8bd3b80311334dbe39256ebc

commit a7840a2b3ea2db8b8bd3b80311334dbe39256ebc
Author: adamk <adamk@chromium.org>
Date: Fri Feb 27 18:04:46 2015

Allow lookup of module exports by export name.

This required fixing the exports_ hash map to use the appropriate
comparison function instead of pointer comparison.

BUG=v8:1569
LOG=n

Review URL: https://codereview.chromium.org/960793003

Cr-Commit-Position: refs/heads/master@{#26920}

[modify] http://crrev.com/a7840a2b3ea2db8b8bd3b80311334dbe39256ebc/src/modules.cc
[modify] http://crrev.com/a7840a2b3ea2db8b8bd3b80311334dbe39256ebc/src/modules.h
[modify] http://crrev.com/a7840a2b3ea2db8b8bd3b80311334dbe39256ebc/test/cctest/test-parsing.cc

Project Member Comment 19 by bugdroid1@chromium.org, Feb 27 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/38d7a796b1e1d3e88da3f9302037bdb360af32df

commit 38d7a796b1e1d3e88da3f9302037bdb360af32df
Author: adamk <adamk@chromium.org>
Date: Fri Feb 27 18:05:56 2015

Create ImportDeclarations for default imports.

BUG=v8:1569
LOG=n

Review URL: https://codereview.chromium.org/958213006

Cr-Commit-Position: refs/heads/master@{#26921}

[modify] http://crrev.com/38d7a796b1e1d3e88da3f9302037bdb360af32df/src/parser.cc
[modify] http://crrev.com/38d7a796b1e1d3e88da3f9302037bdb360af32df/test/cctest/test-parsing.cc

Project Member Comment 20 by bugdroid1@chromium.org, Mar 11 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/9703c057c504a2dcc202e07d027919a566630ae6

commit 9703c057c504a2dcc202e07d027919a566630ae6
Author: adamk <adamk@chromium.org>
Date: Wed Mar 11 23:19:44 2015

Modules: simplify logic around allocation of module internal variables

Since recursive modules are gone, only the top-level scope can have
module inner scopes. Rename Scope::AllocateModulesRecursively to
Scope::AllocateModules, and add test showing the module Variables
are still allocated appropriately in the top level scope.

BUG=v8:1569,v8:3940
LOG=n

Review URL: https://codereview.chromium.org/999893003

Cr-Commit-Position: refs/heads/master@{#27143}

[modify] http://crrev.com/9703c057c504a2dcc202e07d027919a566630ae6/src/scopes.cc
[modify] http://crrev.com/9703c057c504a2dcc202e07d027919a566630ae6/src/scopes.h
[modify] http://crrev.com/9703c057c504a2dcc202e07d027919a566630ae6/test/cctest/test-parsing.cc

Hi,

I'm just curious to know if you guys are aiming to ship modules anytime soon, possibly in Canary/Chrome 44 or 45? There's no sign of them in Canary 43.

Thanks :)

Project Member Comment 22 by bugdroid1@chromium.org, Apr 9 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/52bbb4f6091ca0f0177a54a47fdb7ced9057b6e6

commit 52bbb4f6091ca0f0177a54a47fdb7ced9057b6e6
Author: adamk <adamk@chromium.org>
Date: Thu Apr 09 22:09:44 2015

Collect list of requested modules in ModuleDescriptor while parsing

BUG=v8:1569
LOG=n

Review URL: https://codereview.chromium.org/1078903002

Cr-Commit-Position: refs/heads/master@{#27724}

[modify] http://crrev.com/52bbb4f6091ca0f0177a54a47fdb7ced9057b6e6/src/modules.cc
[modify] http://crrev.com/52bbb4f6091ca0f0177a54a47fdb7ced9057b6e6/src/modules.h
[modify] http://crrev.com/52bbb4f6091ca0f0177a54a47fdb7ced9057b6e6/src/parser.cc
[modify] http://crrev.com/52bbb4f6091ca0f0177a54a47fdb7ced9057b6e6/test/cctest/test-parsing.cc

Project Member Comment 23 by bugdroid1@chromium.org, Apr 17 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/4a5c91387bc8c6392ac3186c932d612e929c3faa

commit 4a5c91387bc8c6392ac3186c932d612e929c3faa
Author: adamk <adamk@chromium.org>
Date: Fri Apr 17 22:45:15 2015

[modules] Parsing: add ModuleRequests where missing

Two last forms supported in this patch:
  - 'import' ModuleSpecifier
  - 'export' '*' 'from' ModuleSpecifier.

BUG=v8:1569
LOG=n

Review URL: https://codereview.chromium.org/1094963002

Cr-Commit-Position: refs/heads/master@{#27927}

[modify] http://crrev.com/4a5c91387bc8c6392ac3186c932d612e929c3faa/src/parser.cc
[modify] http://crrev.com/4a5c91387bc8c6392ac3186c932d612e929c3faa/test/cctest/test-parsing.cc

Project Member Comment 24 by bugdroid1@chromium.org, Apr 30 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/d18dd375ac82f04a4c64e6b75bc04808533b7cd9

commit d18dd375ac82f04a4c64e6b75bc04808533b7cd9
Author: adamk <adamk@chromium.org>
Date: Thu Apr 30 16:20:51 2015

Remove unused Module-related AST nodes and associated codegen

BUG=v8:1569
LOG=n

Review URL: https://codereview.chromium.org/1106383008

Cr-Commit-Position: refs/heads/master@{#28179}

[modify] http://crrev.com/d18dd375ac82f04a4c64e6b75bc04808533b7cd9/src/arm/full-codegen-arm.cc
[modify] http://crrev.com/d18dd375ac82f04a4c64e6b75bc04808533b7cd9/src/arm64/full-codegen-arm64.cc
[modify] http://crrev.com/d18dd375ac82f04a4c64e6b75bc04808533b7cd9/src/ast-numbering.cc
[modify] http://crrev.com/d18dd375ac82f04a4c64e6b75bc04808533b7cd9/src/ast.h
[modify] http://crrev.com/d18dd375ac82f04a4c64e6b75bc04808533b7cd9/src/bailout-reason.h
[modify] http://crrev.com/d18dd375ac82f04a4c64e6b75bc04808533b7cd9/src/compiler.cc
[modify] http://crrev.com/d18dd375ac82f04a4c64e6b75bc04808533b7cd9/src/compiler/ast-graph-builder.cc
[modify] http://crrev.com/d18dd375ac82f04a4c64e6b75bc04808533b7cd9/src/compiler/ast-loop-assignment-analyzer.cc
[modify] http://crrev.com/d18dd375ac82f04a4c64e6b75bc04808533b7cd9/src/full-codegen.cc
[modify] http://crrev.com/d18dd375ac82f04a4c64e6b75bc04808533b7cd9/src/full-codegen.h
[modify] http://crrev.com/d18dd375ac82f04a4c64e6b75bc04808533b7cd9/src/hydrogen.cc
[modify] http://crrev.com/d18dd375ac82f04a4c64e6b75bc04808533b7cd9/src/ia32/full-codegen-ia32.cc
[modify] http://crrev.com/d18dd375ac82f04a4c64e6b75bc04808533b7cd9/src/mips/full-codegen-mips.cc
[modify] http://crrev.com/d18dd375ac82f04a4c64e6b75bc04808533b7cd9/src/mips64/full-codegen-mips64.cc
[modify] http://crrev.com/d18dd375ac82f04a4c64e6b75bc04808533b7cd9/src/ppc/full-codegen-ppc.cc
[modify] http://crrev.com/d18dd375ac82f04a4c64e6b75bc04808533b7cd9/src/prettyprinter.cc
[modify] http://crrev.com/d18dd375ac82f04a4c64e6b75bc04808533b7cd9/src/rewriter.cc
[modify] http://crrev.com/d18dd375ac82f04a4c64e6b75bc04808533b7cd9/src/typing.cc
[modify] http://crrev.com/d18dd375ac82f04a4c64e6b75bc04808533b7cd9/src/x64/full-codegen-x64.cc
[modify] http://crrev.com/d18dd375ac82f04a4c64e6b75bc04808533b7cd9/src/x87/full-codegen-x87.cc

Comment 25 Deleted
Are there any plans on shipping this?  It seems like you pretty much got it working, and it just fell by the wayside.

Any way I could help if I get a chance?
A friendly bump.
I'm also curious to know when this will drop.  Excited to see that iojs 3.0 uses v8 v4.4.63.26, but then I realized there's still no support for modules.
This work is currently blocked on the completion of a specification for the Module Loader, which is being worked on in the WHATWG: https://github.com/whatwg/loader

What's currently implemented in V8 is parsing, which is most of what is specified in ES2015 (the loader is left out of that spec).
> This work is currently blocked on the completion of a specification for the Module Loader, which is being worked on in the WHATWG

Deadlock?

> It is too early to know about the Loader, first we need ES2015 modules implemented by the various engines.

Comment 31 by impop...@gmail.com, Sep 15 2015
The second quote from comment #30 is on the whatwg loader's github readme: https://github.com/whatwg/loader#implementation-status
Comment 32 by adamk@chromium.org, Sep 15 2015
Not a deadlock, I'm working directly with folks from the whatwg on moving the spec forwead.
Comment 33 Deleted
Any news or movements on this?
Cc: -nepper@chromium.org
Hi Adam -- What's the latest at whatwg on the loader specification?
For those wishing to track progress on the Loader, please follow github.com/whatwg/loader, not this bug.
Funny - I followed the link to Chrome under "Implementation status" and ended up right back here... Circular reference detected :)
I don't think that section makes much sense. There's no way to implement ES2015 modules without a loader. While an ECMAScript implementation could choose its own loader semantics, V8 plans to implement the loader that's currently being standardized in the WHATWG; and that process is not yet far enough along for implementation to get very far.
Comment 40 by trusktr@gmail.com, Oct 30 2015
Hello guys, I want to test this out. So I start Chromium with the --harmony-modules flag. Then what? Can you give a simple example?
you could try this:

import "https://cdnjs.cloudflare.com/ajax/libs/zepto/1.1.6/zepto.js";
console.log(typeof Zepto.fn.each);   // should be "function"
Can someone in the know shed a little light on the 'status' of this (if that is even the word)? I'll take the answer given on Oct 9 by adamk on it's face: Chrome is blocking on WHATWG. WHATWG tweaked the specification 7 days ago Christmas eve (someone felt like removing the word "then"), but spec hasn't changed in any practical way I can see in a long time. The strange thing is I can't find ES6 module loading even listed on the canonical kangax browser compat table, and it doesn't appear on the Chromium Platform Status page that I can see. Systemjs and es6-module-loader and still being actively developed. Which is fine; stuff like Angular 2 works as advertised. But what is the status of ES6 module loading without a polyfill, and why is this a harder question to find an answer to than I expected?

https://kangax.github.io/compat-table/es6/
https://www.chromestatus.com/features/5144752345317376
https://github.com/systemjs/systemjs
https://github.com/ModuleLoader/es6-module-loader

As mentioned above, github.com/whatwg/loader is the right place to look for progress on the spec, not this bug, which is just meant to coordinate implementation work.
Adam, to my knowledge only the hooks for the ECMA spec are expected from both WHATWG and Node. Feel free to consult me or Caridy, or refer us to the appropriate people.
@bradley.meck: there is ongoing work in HTML that goes beyond the hooks, and will be important for implementing modules in Chrome (which, for me, this bug encompasses): see https://github.com/whatwg/html/pull/443
That link answers my question in a nutshell, thanks. It would be nice if module loading was added to the Chromium Platform Status page, *whatever* is considered Chrome's side of the fence, even if it just says "intend to implement but blocking on WHATWG". Understanding the current situation for us "little people" just moving over to ES2015 from ES5 and (mostly blindly) using es6-module-loader is not obvious. github.com/ModuleLoader/es6-module-loader points at github.com/whatwg/loader, which in turn points here; which to the uninitiated just looks like a dead link since April 2015. [I appreciate that it is not; but that wasn't obvious until adamk's explanation yesterday.]

Comment 47 by habl...@google.com, Jan 11 2016
A Chromestatus entry is a good idea. I created one: https://www.chromestatus.com/features/5365692190687232
Comment 48 by habl...@google.com, Jan 11 2016
Cc: littledan@chromium.org
Project Member Comment 49 by 76821325...@developer.gserviceaccount.com, Jan 15 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/25532be593bd80c9e7b3fac4ee50491159902e93

commit 25532be593bd80c9e7b3fac4ee50491159902e93
Author: adamk <adamk@chromium.org>
Date: Fri Jan 15 20:38:16 2016

[modules] Support parsing anonymous default exports

This includes anonymous Function, Generator, and Class declarations when
preceded by 'export default'. Parsing only at the moment, nothing useful is
done with the parsed Function/ClassLiteral.

BUG=v8:1569
LOG=n

Review URL: https://codereview.chromium.org/1589173002

Cr-Commit-Position: refs/heads/master@{#33344}

[modify] http://crrev.com/25532be593bd80c9e7b3fac4ee50491159902e93/src/parsing/parser.cc
[modify] http://crrev.com/25532be593bd80c9e7b3fac4ee50491159902e93/src/parsing/parser.h
[modify] http://crrev.com/25532be593bd80c9e7b3fac4ee50491159902e93/test/cctest/test-parsing.cc

Comment 50 by adamk@chromium.org, Feb 19 2016
Blockedon: 4767
Comment 51 by adamk@chromium.org, Mar 14 2016
Blocking: chromium:594639
Blink-side work on <script type=module> is happening in https://bugs.chromium.org/p/chromium/issues/detail?id=594639
Project Member Comment 52 by bugdroid1@chromium.org, Mar 15 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/5a202cce6e2b2de7b6117c9a3db796b70bf440f2

commit 5a202cce6e2b2de7b6117c9a3db796b70bf440f2
Author: adamk <adamk@chromium.org>
Date: Tue Mar 15 00:43:31 2016

Remove --harmony-modules flag and let embedder decide when modules are used

Modules already have a separate entrypoint into the engine (at the moment,
this is v8::ScriptCompiler::CompileModule, though that will change to
something like ParseModule). This meant that requiring a commandline flag
simply added an extra complexity burden on embedders. By removing the v8
flag, this lets embedders use their own flagging mechanism (such as d8's
"--module", or Blink's RuntimeEnabledFeatures) to control whether
modules are to be used.

Also remove old modules tests that were being skipped (since they test
very old, pre-ES2015 modules syntax).

R=littledan@chromium.org
BUG=v8:1569, chromium:594639
LOG=y

Review URL: https://codereview.chromium.org/1804693002

Cr-Commit-Position: refs/heads/master@{#34764}

[modify] https://crrev.com/5a202cce6e2b2de7b6117c9a3db796b70bf440f2/src/api.cc
[modify] https://crrev.com/5a202cce6e2b2de7b6117c9a3db796b70bf440f2/src/bootstrapper.cc
[modify] https://crrev.com/5a202cce6e2b2de7b6117c9a3db796b70bf440f2/src/compiler.cc
[modify] https://crrev.com/5a202cce6e2b2de7b6117c9a3db796b70bf440f2/src/d8.cc
[modify] https://crrev.com/5a202cce6e2b2de7b6117c9a3db796b70bf440f2/src/flag-definitions.h
[modify] https://crrev.com/5a202cce6e2b2de7b6117c9a3db796b70bf440f2/src/parsing/parser-base.h
[modify] https://crrev.com/5a202cce6e2b2de7b6117c9a3db796b70bf440f2/test/cctest/test-parsing.cc
[delete] https://crrev.com/f3568ca4005fb81431f74175715f34a460bba765/test/mjsunit/harmony/module-linking.js
[modify] https://crrev.com/5a202cce6e2b2de7b6117c9a3db796b70bf440f2/test/mjsunit/harmony/module-parsing-eval.js
[delete] https://crrev.com/f3568ca4005fb81431f74175715f34a460bba765/test/mjsunit/harmony/module-recompile.js
[delete] https://crrev.com/f3568ca4005fb81431f74175715f34a460bba765/test/mjsunit/harmony/module-resolution.js
[delete] https://crrev.com/f3568ca4005fb81431f74175715f34a460bba765/test/mjsunit/harmony/regress/regress-343928.js
[modify] https://crrev.com/5a202cce6e2b2de7b6117c9a3db796b70bf440f2/test/mjsunit/mjsunit.status

Project Member Comment 53 by bugdroid1@chromium.org, Apr 20 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/8b7b5a6f450966031665919f4f520a0a3a388138

commit 8b7b5a6f450966031665919f4f520a0a3a388138
Author: littledan <littledan@chromium.org>
Date: Wed Apr 20 15:43:14 2016

Pass the --module flag to test262 tests with modules enabled

This causes an incoming test262 test to pass, as part of the next
test262 roll.

R=adamk,machenbach
BUG=v8:1569
LOG=N

Review URL: https://codereview.chromium.org/1896293003

Cr-Commit-Position: refs/heads/master@{#35667}

[modify] https://crrev.com/8b7b5a6f450966031665919f4f520a0a3a388138/test/test262/testcfg.py

Labels: SpecViolation-MissingFeature Hotlist-test262
Project Member Comment 55 by bugdroid1@chromium.org, Jul 18 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/0e000a87f1057e8eacc9516eb81d43664ab58d17

commit 0e000a87f1057e8eacc9516eb81d43664ab58d17
Author: neis <neis@chromium.org>
Date: Mon Jul 18 07:27:10 2016

[modules] AST and parser rework.

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}

[modify] https://crrev.com/0e000a87f1057e8eacc9516eb81d43664ab58d17/src/asmjs/asm-wasm-builder.cc
[modify] https://crrev.com/0e000a87f1057e8eacc9516eb81d43664ab58d17/src/ast/ast-expression-rewriter.cc
[modify] https://crrev.com/0e000a87f1057e8eacc9516eb81d43664ab58d17/src/ast/ast-literal-reindexer.cc
[modify] https://crrev.com/0e000a87f1057e8eacc9516eb81d43664ab58d17/src/ast/ast-numbering.cc
[modify] https://crrev.com/0e000a87f1057e8eacc9516eb81d43664ab58d17/src/ast/ast.cc
[modify] https://crrev.com/0e000a87f1057e8eacc9516eb81d43664ab58d17/src/ast/ast.h
[modify] https://crrev.com/0e000a87f1057e8eacc9516eb81d43664ab58d17/src/ast/modules.cc
[modify] https://crrev.com/0e000a87f1057e8eacc9516eb81d43664ab58d17/src/ast/modules.h
[modify] https://crrev.com/0e000a87f1057e8eacc9516eb81d43664ab58d17/src/ast/prettyprinter.cc
[modify] https://crrev.com/0e000a87f1057e8eacc9516eb81d43664ab58d17/src/ast/scopes.cc
[modify] https://crrev.com/0e000a87f1057e8eacc9516eb81d43664ab58d17/src/ast/variables.cc
[modify] https://crrev.com/0e000a87f1057e8eacc9516eb81d43664ab58d17/src/bailout-reason.h
[modify] https://crrev.com/0e000a87f1057e8eacc9516eb81d43664ab58d17/src/compiler/ast-graph-builder.cc
[modify] https://crrev.com/0e000a87f1057e8eacc9516eb81d43664ab58d17/src/compiler/ast-loop-assignment-analyzer.cc
[modify] https://crrev.com/0e000a87f1057e8eacc9516eb81d43664ab58d17/src/contexts.cc
[modify] https://crrev.com/0e000a87f1057e8eacc9516eb81d43664ab58d17/src/crankshaft/hydrogen.cc
[modify] https://crrev.com/0e000a87f1057e8eacc9516eb81d43664ab58d17/src/crankshaft/typing.cc
[modify] https://crrev.com/0e000a87f1057e8eacc9516eb81d43664ab58d17/src/full-codegen/full-codegen.cc
[modify] https://crrev.com/0e000a87f1057e8eacc9516eb81d43664ab58d17/src/globals.h
[modify] https://crrev.com/0e000a87f1057e8eacc9516eb81d43664ab58d17/src/interpreter/bytecode-generator.cc
[modify] https://crrev.com/0e000a87f1057e8eacc9516eb81d43664ab58d17/src/parsing/parser.cc
[modify] https://crrev.com/0e000a87f1057e8eacc9516eb81d43664ab58d17/src/parsing/parser.h
[modify] https://crrev.com/0e000a87f1057e8eacc9516eb81d43664ab58d17/src/parsing/pattern-rewriter.cc
[modify] https://crrev.com/0e000a87f1057e8eacc9516eb81d43664ab58d17/test/cctest/interpreter/bytecode_expectations/Generators.golden
[modify] https://crrev.com/0e000a87f1057e8eacc9516eb81d43664ab58d17/test/cctest/test-parsing.cc

Project Member Comment 56 by bugdroid1@chromium.org, Aug 10 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/29e85e36f363203e3e1735c648b0f78837d57343

commit 29e85e36f363203e3e1735c648b0f78837d57343
Author: neis <neis@chromium.org>
Date: Wed Aug 10 11:41:59 2016

[modules] Split imports into regular and special, store regular ones in a map.

BUG=v8:1569

Review-Url: https://codereview.chromium.org/2224333002
Cr-Commit-Position: refs/heads/master@{#38532}

[modify] https://crrev.com/29e85e36f363203e3e1735c648b0f78837d57343/src/ast/modules.cc
[modify] https://crrev.com/29e85e36f363203e3e1735c648b0f78837d57343/src/ast/modules.h
[modify] https://crrev.com/29e85e36f363203e3e1735c648b0f78837d57343/src/ast/scopes.cc
[modify] https://crrev.com/29e85e36f363203e3e1735c648b0f78837d57343/test/cctest/test-parsing.cc

Project Member Comment 57 by bugdroid1@chromium.org, Aug 10 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/b2ff10c43d0b0c13dc27dbd3f67ac94d8d8beb38

commit b2ff10c43d0b0c13dc27dbd3f67ac94d8d8beb38
Author: neis <neis@chromium.org>
Date: Wed Aug 10 12:18:16 2016

[modules] Detect all indirect exports and represent them as such.

BUG=v8:1569

Review-Url: https://codereview.chromium.org/2223893004
Cr-Commit-Position: refs/heads/master@{#38538}

[modify] https://crrev.com/b2ff10c43d0b0c13dc27dbd3f67ac94d8d8beb38/src/ast/modules.cc
[modify] https://crrev.com/b2ff10c43d0b0c13dc27dbd3f67ac94d8d8beb38/src/ast/modules.h
[modify] https://crrev.com/b2ff10c43d0b0c13dc27dbd3f67ac94d8d8beb38/test/cctest/test-parsing.cc

Project Member Comment 58 by bugdroid1@chromium.org, Aug 25 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/6e67d042601bb6773c7a73dc3e290bdb50b4e68e

commit 6e67d042601bb6773c7a73dc3e290bdb50b4e68e
Author: neis <neis@chromium.org>
Date: Thu Aug 25 08:37:08 2016

[modules] Split exports into regular and special, store regular ones in a multimap.

BUG=v8:1569

Review-Url: https://codereview.chromium.org/2273013002
Cr-Commit-Position: refs/heads/master@{#38889}

[modify] https://crrev.com/6e67d042601bb6773c7a73dc3e290bdb50b4e68e/src/ast/modules.cc
[modify] https://crrev.com/6e67d042601bb6773c7a73dc3e290bdb50b4e68e/src/ast/modules.h
[modify] https://crrev.com/6e67d042601bb6773c7a73dc3e290bdb50b4e68e/src/ast/scopes.cc
[modify] https://crrev.com/6e67d042601bb6773c7a73dc3e290bdb50b4e68e/src/zone-containers.h
[modify] https://crrev.com/6e67d042601bb6773c7a73dc3e290bdb50b4e68e/test/cctest/test-parsing.cc

Project Member Comment 59 by bugdroid1@chromium.org, Aug 26 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/a45d106db0eaf46349e82f6541a30e8b55b524cb

commit a45d106db0eaf46349e82f6541a30e8b55b524cb
Author: neis <neis@chromium.org>
Date: Fri Aug 26 07:03:56 2016

[modules] Rename ModuleDescriptor::ModuleEntry to ModuleDescriptor::Entry.

R=adamk@chromium.org
BUG=v8:1569

Review-Url: https://codereview.chromium.org/2278973002
Cr-Commit-Position: refs/heads/master@{#38924}

[modify] https://crrev.com/a45d106db0eaf46349e82f6541a30e8b55b524cb/src/ast/modules.cc
[modify] https://crrev.com/a45d106db0eaf46349e82f6541a30e8b55b524cb/src/ast/modules.h
[modify] https://crrev.com/a45d106db0eaf46349e82f6541a30e8b55b524cb/test/cctest/test-parsing.cc

Project Member Comment 60 by bugdroid1@chromium.org, Aug 26 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/04d81120368173ee91fab193f8cd0837d9628dd4

commit 04d81120368173ee91fab193f8cd0837d9628dd4
Author: neis <neis@chromium.org>
Date: Fri Aug 26 08:30:56 2016

[modules] Minor refactorings in scopes and scopeinfos.

R=adamk@chromium.org
BUG=v8:1569

Review-Url: https://codereview.chromium.org/2275943005
Cr-Commit-Position: refs/heads/master@{#38931}

[modify] https://crrev.com/04d81120368173ee91fab193f8cd0837d9628dd4/src/ast/scopeinfo.cc
[modify] https://crrev.com/04d81120368173ee91fab193f8cd0837d9628dd4/src/ast/scopes.cc
[modify] https://crrev.com/04d81120368173ee91fab193f8cd0837d9628dd4/src/ast/scopes.h
[modify] https://crrev.com/04d81120368173ee91fab193f8cd0837d9628dd4/src/crankshaft/typing.cc
[modify] https://crrev.com/04d81120368173ee91fab193f8cd0837d9628dd4/src/debug/liveedit.cc
[modify] https://crrev.com/04d81120368173ee91fab193f8cd0837d9628dd4/src/objects.h
[modify] https://crrev.com/04d81120368173ee91fab193f8cd0837d9628dd4/src/parsing/parser-base.h

Project Member Comment 61 by bugdroid1@chromium.org, Aug 29 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/98a79c9412accd4fc9b806b2e52870230cf24094

commit 98a79c9412accd4fc9b806b2e52870230cf24094
Author: neis <neis@chromium.org>
Date: Mon Aug 29 09:15:02 2016

[modules] Partial support for (de-)serializing module descriptor entries.

This will be used for scope infos in a follow-up CL.

R=adamk@chromium.org
BUG=v8:1569

Review-Url: https://codereview.chromium.org/2277273002
Cr-Commit-Position: refs/heads/master@{#38969}

[modify] https://crrev.com/98a79c9412accd4fc9b806b2e52870230cf24094/src/ast/modules.cc
[modify] https://crrev.com/98a79c9412accd4fc9b806b2e52870230cf24094/src/ast/modules.h

Project Member Comment 62 by bugdroid1@chromium.org, Aug 31 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/840d1e84f74ebc5a596aad20b23b29025c61cf6c

commit 840d1e84f74ebc5a596aad20b23b29025c61cf6c
Author: neis <neis@chromium.org>
Date: Wed Aug 31 14:25:28 2016

[modules] Partial scope info support of modules

This introduces a new heap object ModuleInfo, which is to ModuleDescriptor
what ScopeInfo is to Scope.  When deserializing a scope info that contains
a module info, we deserialize the module info into a module descriptor and
put it into the synthesized module scope.

Currently, module infos only store exports.

R=adamk@chromium.org
BUG=v8:1569

Review-Url: https://codereview.chromium.org/2277253003
Cr-Commit-Position: refs/heads/master@{#39049}

[modify] https://crrev.com/840d1e84f74ebc5a596aad20b23b29025c61cf6c/src/ast/scopeinfo.cc
[modify] https://crrev.com/840d1e84f74ebc5a596aad20b23b29025c61cf6c/src/ast/scopes.cc
[modify] https://crrev.com/840d1e84f74ebc5a596aad20b23b29025c61cf6c/src/ast/scopes.h
[modify] https://crrev.com/840d1e84f74ebc5a596aad20b23b29025c61cf6c/src/ast/variables.h
[modify] https://crrev.com/840d1e84f74ebc5a596aad20b23b29025c61cf6c/src/factory.cc
[modify] https://crrev.com/840d1e84f74ebc5a596aad20b23b29025c61cf6c/src/factory.h
[modify] https://crrev.com/840d1e84f74ebc5a596aad20b23b29025c61cf6c/src/heap/heap.cc
[modify] https://crrev.com/840d1e84f74ebc5a596aad20b23b29025c61cf6c/src/heap/heap.h
[modify] https://crrev.com/840d1e84f74ebc5a596aad20b23b29025c61cf6c/src/objects-inl.h
[modify] https://crrev.com/840d1e84f74ebc5a596aad20b23b29025c61cf6c/src/objects.h
[modify] https://crrev.com/840d1e84f74ebc5a596aad20b23b29025c61cf6c/src/parsing/parser.cc

Project Member Comment 63 by bugdroid1@chromium.org, Sep 1 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/b3b574cd8ce78b5fbd7244a85d583300af1b1680

commit b3b574cd8ce78b5fbd7244a85d583300af1b1680
Author: neis <neis@chromium.org>
Date: Thu Sep 01 09:16:10 2016

[modules] Ignore the surrounding script scope.

This is more consistent with how we handle eval scripts.

R=jochen@chromium.org
BUG=v8:1569

Review-Url: https://codereview.chromium.org/2289293006
Cr-Commit-Position: refs/heads/master@{#39069}

[modify] https://crrev.com/b3b574cd8ce78b5fbd7244a85d583300af1b1680/src/ast/scopes.cc

Project Member Comment 64 by bugdroid1@chromium.org, Sep 12 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/241a0412eed919395a2e163b30b9b66071ce5c17

commit 241a0412eed919395a2e163b30b9b66071ce5c17
Author: neis <neis@chromium.org>
Date: Mon Sep 12 10:51:08 2016

[modules] Basic support of exports

This adds partial support of exports to the runtime system and
to the interpreter. It introduces a new HeapObject JSModule that
maps each of the module's export names to a Cell containing the
exported value.

Several aspects of this implementation are subject to change in
follow-up CLs.

BUG=v8:1569

Review-Url: https://codereview.chromium.org/2302783002
Cr-Commit-Position: refs/heads/master@{#39341}

[modify] https://crrev.com/241a0412eed919395a2e163b30b9b66071ce5c17/src/api.cc
[modify] https://crrev.com/241a0412eed919395a2e163b30b9b66071ce5c17/src/ast/ast.h
[modify] https://crrev.com/241a0412eed919395a2e163b30b9b66071ce5c17/src/ast/modules.cc
[modify] https://crrev.com/241a0412eed919395a2e163b30b9b66071ce5c17/src/ast/modules.h
[modify] https://crrev.com/241a0412eed919395a2e163b30b9b66071ce5c17/src/ast/scopeinfo.cc
[modify] https://crrev.com/241a0412eed919395a2e163b30b9b66071ce5c17/src/ast/scopes.cc
[modify] https://crrev.com/241a0412eed919395a2e163b30b9b66071ce5c17/src/ast/scopes.h
[modify] https://crrev.com/241a0412eed919395a2e163b30b9b66071ce5c17/src/ast/variables.h
[modify] https://crrev.com/241a0412eed919395a2e163b30b9b66071ce5c17/src/contexts.cc
[modify] https://crrev.com/241a0412eed919395a2e163b30b9b66071ce5c17/src/contexts.h
[modify] https://crrev.com/241a0412eed919395a2e163b30b9b66071ce5c17/src/debug/debug-scopes.cc
[modify] https://crrev.com/241a0412eed919395a2e163b30b9b66071ce5c17/src/factory.cc
[modify] https://crrev.com/241a0412eed919395a2e163b30b9b66071ce5c17/src/factory.h
[modify] https://crrev.com/241a0412eed919395a2e163b30b9b66071ce5c17/src/heap/heap.cc
[modify] https://crrev.com/241a0412eed919395a2e163b30b9b66071ce5c17/src/heap/heap.h
[modify] https://crrev.com/241a0412eed919395a2e163b30b9b66071ce5c17/src/interpreter/bytecode-generator.cc
[modify] https://crrev.com/241a0412eed919395a2e163b30b9b66071ce5c17/src/objects-debug.cc
[modify] https://crrev.com/241a0412eed919395a2e163b30b9b66071ce5c17/src/objects-inl.h
[modify] https://crrev.com/241a0412eed919395a2e163b30b9b66071ce5c17/src/objects.cc
[modify] https://crrev.com/241a0412eed919395a2e163b30b9b66071ce5c17/src/objects.h
[modify] https://crrev.com/241a0412eed919395a2e163b30b9b66071ce5c17/src/parsing/parser.cc
[modify] https://crrev.com/241a0412eed919395a2e163b30b9b66071ce5c17/src/runtime/runtime-object.cc
[modify] https://crrev.com/241a0412eed919395a2e163b30b9b66071ce5c17/src/runtime/runtime-scopes.cc
[modify] https://crrev.com/241a0412eed919395a2e163b30b9b66071ce5c17/src/runtime/runtime.h
[modify] https://crrev.com/241a0412eed919395a2e163b30b9b66071ce5c17/test/cctest/interpreter/bytecode_expectations/CallRuntime.golden
[modify] https://crrev.com/241a0412eed919395a2e163b30b9b66071ce5c17/test/mjsunit/mjsunit.status
[add] https://crrev.com/241a0412eed919395a2e163b30b9b66071ce5c17/test/mjsunit/modules-exports1.js
[add] https://crrev.com/241a0412eed919395a2e163b30b9b66071ce5c17/test/mjsunit/modules-exports2.js
[add] https://crrev.com/241a0412eed919395a2e163b30b9b66071ce5c17/test/mjsunit/modules-exports3.js
[add] https://crrev.com/241a0412eed919395a2e163b30b9b66071ce5c17/test/mjsunit/modules-this.js
[modify] https://crrev.com/241a0412eed919395a2e163b30b9b66071ce5c17/test/test262/test262.status

Project Member Comment 65 by bugdroid1@chromium.org, Sep 12 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/429ff47e2b50113857ef8d15871f511ee7b910b3

commit 429ff47e2b50113857ef8d15871f511ee7b910b3
Author: neis <neis@chromium.org>
Date: Mon Sep 12 11:33:37 2016

Revert of [modules] Basic support of exports (patchset #10 id:180001 of https://codereview.chromium.org/2302783002/ )

Reason for revert:
Failures related to deopt.

Original issue's description:
> [modules] Basic support of exports
>
> This adds partial support of exports to the runtime system and
> to the interpreter. It introduces a new HeapObject JSModule that
> maps each of the module's export names to a Cell containing the
> exported value.
>
> Several aspects of this implementation are subject to change in
> follow-up CLs.
>
> BUG=v8:1569
>
> Committed: https://crrev.com/241a0412eed919395a2e163b30b9b66071ce5c17
> Cr-Commit-Position: refs/heads/master@{#39341}

TBR=adamk@chromium.org,rmcilroy@chromium.org,ulan@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:1569

Review-Url: https://codereview.chromium.org/2328283002
Cr-Commit-Position: refs/heads/master@{#39345}

[modify] https://crrev.com/429ff47e2b50113857ef8d15871f511ee7b910b3/src/api.cc
[modify] https://crrev.com/429ff47e2b50113857ef8d15871f511ee7b910b3/src/ast/ast.h
[modify] https://crrev.com/429ff47e2b50113857ef8d15871f511ee7b910b3/src/ast/modules.cc
[modify] https://crrev.com/429ff47e2b50113857ef8d15871f511ee7b910b3/src/ast/modules.h
[modify] https://crrev.com/429ff47e2b50113857ef8d15871f511ee7b910b3/src/ast/scopeinfo.cc
[modify] https://crrev.com/429ff47e2b50113857ef8d15871f511ee7b910b3/src/ast/scopes.cc
[modify] https://crrev.com/429ff47e2b50113857ef8d15871f511ee7b910b3/src/ast/scopes.h
[modify] https://crrev.com/429ff47e2b50113857ef8d15871f511ee7b910b3/src/ast/variables.h
[modify] https://crrev.com/429ff47e2b50113857ef8d15871f511ee7b910b3/src/contexts.cc
[modify] https://crrev.com/429ff47e2b50113857ef8d15871f511ee7b910b3/src/contexts.h
[modify] https://crrev.com/429ff47e2b50113857ef8d15871f511ee7b910b3/src/debug/debug-scopes.cc
[modify] https://crrev.com/429ff47e2b50113857ef8d15871f511ee7b910b3/src/factory.cc
[modify] https://crrev.com/429ff47e2b50113857ef8d15871f511ee7b910b3/src/factory.h
[modify] https://crrev.com/429ff47e2b50113857ef8d15871f511ee7b910b3/src/heap/heap.cc
[modify] https://crrev.com/429ff47e2b50113857ef8d15871f511ee7b910b3/src/heap/heap.h
[modify] https://crrev.com/429ff47e2b50113857ef8d15871f511ee7b910b3/src/interpreter/bytecode-generator.cc
[modify] https://crrev.com/429ff47e2b50113857ef8d15871f511ee7b910b3/src/objects-debug.cc
[modify] https://crrev.com/429ff47e2b50113857ef8d15871f511ee7b910b3/src/objects-inl.h
[modify] https://crrev.com/429ff47e2b50113857ef8d15871f511ee7b910b3/src/objects.cc
[modify] https://crrev.com/429ff47e2b50113857ef8d15871f511ee7b910b3/src/objects.h
[modify] https://crrev.com/429ff47e2b50113857ef8d15871f511ee7b910b3/src/parsing/parser.cc
[modify] https://crrev.com/429ff47e2b50113857ef8d15871f511ee7b910b3/src/runtime/runtime-object.cc
[modify] https://crrev.com/429ff47e2b50113857ef8d15871f511ee7b910b3/src/runtime/runtime-scopes.cc
[modify] https://crrev.com/429ff47e2b50113857ef8d15871f511ee7b910b3/src/runtime/runtime.h
[modify] https://crrev.com/429ff47e2b50113857ef8d15871f511ee7b910b3/test/cctest/interpreter/bytecode_expectations/CallRuntime.golden
[modify] https://crrev.com/429ff47e2b50113857ef8d15871f511ee7b910b3/test/mjsunit/mjsunit.status
[delete] https://crrev.com/153dde4f8602b1cb2fa4b76d17960df757a1a3e9/test/mjsunit/modules-exports1.js
[delete] https://crrev.com/153dde4f8602b1cb2fa4b76d17960df757a1a3e9/test/mjsunit/modules-exports2.js
[delete] https://crrev.com/153dde4f8602b1cb2fa4b76d17960df757a1a3e9/test/mjsunit/modules-exports3.js
[delete] https://crrev.com/153dde4f8602b1cb2fa4b76d17960df757a1a3e9/test/mjsunit/modules-this.js
[modify] https://crrev.com/429ff47e2b50113857ef8d15871f511ee7b910b3/test/test262/test262.status

Project Member Comment 66 by bugdroid1@chromium.org, Sep 12 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/21cb1105471e0b94039ba4037c17f2cb57cb2a8f

commit 21cb1105471e0b94039ba4037c17f2cb57cb2a8f
Author: neis <neis@chromium.org>
Date: Mon Sep 12 12:54:47 2016

[modules] Basic support of exports

This adds partial support of exports to the runtime system and
to the interpreter. It introduces a new HeapObject JSModule that
maps each of the module's export names to a Cell containing the
exported value.

Several aspects of this implementation are subject to change in
follow-up CLs.

BUG=v8:1569

Committed: https://crrev.com/241a0412eed919395a2e163b30b9b66071ce5c17
Review-Url: https://codereview.chromium.org/2302783002
Cr-Original-Commit-Position: refs/heads/master@{#39341}
Cr-Commit-Position: refs/heads/master@{#39352}

[modify] https://crrev.com/21cb1105471e0b94039ba4037c17f2cb57cb2a8f/src/api.cc
[modify] https://crrev.com/21cb1105471e0b94039ba4037c17f2cb57cb2a8f/src/ast/ast.h
[modify] https://crrev.com/21cb1105471e0b94039ba4037c17f2cb57cb2a8f/src/ast/modules.cc
[modify] https://crrev.com/21cb1105471e0b94039ba4037c17f2cb57cb2a8f/src/ast/modules.h
[modify] https://crrev.com/21cb1105471e0b94039ba4037c17f2cb57cb2a8f/src/ast/scopeinfo.cc
[modify] https://crrev.com/21cb1105471e0b94039ba4037c17f2cb57cb2a8f/src/ast/scopes.cc
[modify] https://crrev.com/21cb1105471e0b94039ba4037c17f2cb57cb2a8f/src/ast/scopes.h
[modify] https://crrev.com/21cb1105471e0b94039ba4037c17f2cb57cb2a8f/src/ast/variables.h
[modify] https://crrev.com/21cb1105471e0b94039ba4037c17f2cb57cb2a8f/src/contexts.cc
[modify] https://crrev.com/21cb1105471e0b94039ba4037c17f2cb57cb2a8f/src/contexts.h
[modify] https://crrev.com/21cb1105471e0b94039ba4037c17f2cb57cb2a8f/src/debug/debug-scopes.cc
[modify] https://crrev.com/21cb1105471e0b94039ba4037c17f2cb57cb2a8f/src/factory.cc
[modify] https://crrev.com/21cb1105471e0b94039ba4037c17f2cb57cb2a8f/src/factory.h
[modify] https://crrev.com/21cb1105471e0b94039ba4037c17f2cb57cb2a8f/src/heap/heap.cc
[modify] https://crrev.com/21cb1105471e0b94039ba4037c17f2cb57cb2a8f/src/heap/heap.h
[modify] https://crrev.com/21cb1105471e0b94039ba4037c17f2cb57cb2a8f/src/interpreter/bytecode-generator.cc
[modify] https://crrev.com/21cb1105471e0b94039ba4037c17f2cb57cb2a8f/src/objects-debug.cc
[modify] https://crrev.com/21cb1105471e0b94039ba4037c17f2cb57cb2a8f/src/objects-inl.h
[modify] https://crrev.com/21cb1105471e0b94039ba4037c17f2cb57cb2a8f/src/objects.cc
[modify] https://crrev.com/21cb1105471e0b94039ba4037c17f2cb57cb2a8f/src/objects.h
[modify] https://crrev.com/21cb1105471e0b94039ba4037c17f2cb57cb2a8f/src/parsing/parser.cc
[modify] https://crrev.com/21cb1105471e0b94039ba4037c17f2cb57cb2a8f/src/runtime/runtime-object.cc
[modify] https://crrev.com/21cb1105471e0b94039ba4037c17f2cb57cb2a8f/src/runtime/runtime-scopes.cc
[modify] https://crrev.com/21cb1105471e0b94039ba4037c17f2cb57cb2a8f/src/runtime/runtime.h
[modify] https://crrev.com/21cb1105471e0b94039ba4037c17f2cb57cb2a8f/test/cctest/interpreter/bytecode_expectations/CallRuntime.golden
[modify] https://crrev.com/21cb1105471e0b94039ba4037c17f2cb57cb2a8f/test/mjsunit/mjsunit.status
[add] https://crrev.com/21cb1105471e0b94039ba4037c17f2cb57cb2a8f/test/mjsunit/modules-exports1.js
[add] https://crrev.com/21cb1105471e0b94039ba4037c17f2cb57cb2a8f/test/mjsunit/modules-exports2.js
[add] https://crrev.com/21cb1105471e0b94039ba4037c17f2cb57cb2a8f/test/mjsunit/modules-exports3.js
[add] https://crrev.com/21cb1105471e0b94039ba4037c17f2cb57cb2a8f/test/mjsunit/modules-this.js
[modify] https://crrev.com/21cb1105471e0b94039ba4037c17f2cb57cb2a8f/test/test262/test262.status

Project Member Comment 67 by bugdroid1@chromium.org, Sep 14 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/da1f911c4269048d24a3442791b18523455f3b24

commit da1f911c4269048d24a3442791b18523455f3b24
Author: neis <neis@chromium.org>
Date: Wed Sep 14 17:56:17 2016

[modules] Make duplicate export error deterministic.

In case of duplicate exports, always report the error for the very last
one.

R=adamk@chromium.org
BUG=v8:5358,v8:1569

Review-Url: https://codereview.chromium.org/2331003002
Cr-Commit-Position: refs/heads/master@{#39424}

[modify] https://crrev.com/da1f911c4269048d24a3442791b18523455f3b24/src/ast/modules.cc
[modify] https://crrev.com/da1f911c4269048d24a3442791b18523455f3b24/src/ast/modules.h
[modify] https://crrev.com/da1f911c4269048d24a3442791b18523455f3b24/test/message/export-duplicate-as.js
[modify] https://crrev.com/da1f911c4269048d24a3442791b18523455f3b24/test/message/export-duplicate-as.out
[modify] https://crrev.com/da1f911c4269048d24a3442791b18523455f3b24/test/message/export-duplicate-default.js
[modify] https://crrev.com/da1f911c4269048d24a3442791b18523455f3b24/test/message/export-duplicate-default.out
[modify] https://crrev.com/da1f911c4269048d24a3442791b18523455f3b24/test/message/export-duplicate.js
[modify] https://crrev.com/da1f911c4269048d24a3442791b18523455f3b24/test/message/export-duplicate.out
[modify] https://crrev.com/da1f911c4269048d24a3442791b18523455f3b24/test/message/message.status

Project Member Comment 68 by bugdroid1@chromium.org, Sep 14 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/7b9d6bbcf3d14839638054f8cdf177f43b5aa739

commit 7b9d6bbcf3d14839638054f8cdf177f43b5aa739
Author: hablich <hablich@chromium.org>
Date: Wed Sep 14 21:51:41 2016

Revert of [modules] Make duplicate export error deterministic. (patchset #2 id:20001 of https://codereview.chromium.org/2331003002/ )

Reason for revert:
Seems to break one of our arm64 bots: https://chromegw.corp.google.com/i/client.v8.ports/builders/V8%20Linux%20-%20arm64%20-%20sim%20-%20nosnap%20-%20debug/builds/2303

Original issue's description:
> [modules] Make duplicate export error deterministic.
>
> In case of duplicate exports, always report the error for the very last
> one.
>
> R=adamk@chromium.org
> BUG=v8:5358,v8:1569
>
> Committed: https://crrev.com/da1f911c4269048d24a3442791b18523455f3b24
> Cr-Commit-Position: refs/heads/master@{#39424}

TBR=adamk@chromium.org,neis@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:5358,v8:1569

Review-Url: https://codereview.chromium.org/2340903002
Cr-Commit-Position: refs/heads/master@{#39430}

[modify] https://crrev.com/7b9d6bbcf3d14839638054f8cdf177f43b5aa739/src/ast/modules.cc
[modify] https://crrev.com/7b9d6bbcf3d14839638054f8cdf177f43b5aa739/src/ast/modules.h
[modify] https://crrev.com/7b9d6bbcf3d14839638054f8cdf177f43b5aa739/test/message/export-duplicate-as.js
[modify] https://crrev.com/7b9d6bbcf3d14839638054f8cdf177f43b5aa739/test/message/export-duplicate-as.out
[modify] https://crrev.com/7b9d6bbcf3d14839638054f8cdf177f43b5aa739/test/message/export-duplicate-default.js
[modify] https://crrev.com/7b9d6bbcf3d14839638054f8cdf177f43b5aa739/test/message/export-duplicate-default.out
[modify] https://crrev.com/7b9d6bbcf3d14839638054f8cdf177f43b5aa739/test/message/export-duplicate.js
[modify] https://crrev.com/7b9d6bbcf3d14839638054f8cdf177f43b5aa739/test/message/export-duplicate.out
[modify] https://crrev.com/7b9d6bbcf3d14839638054f8cdf177f43b5aa739/test/message/message.status

Project Member Comment 69 by bugdroid1@chromium.org, Sep 15 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/d383430d932f0eb7d8e832feeb9b60f5666f31de

commit d383430d932f0eb7d8e832feeb9b60f5666f31de
Author: neis <neis@chromium.org>
Date: Thu Sep 15 01:36:11 2016

Reland of "[modules] Make duplicate export error deterministic."

    In case of duplicate exports, always report the error for the very last
    one.

(Fixed a bug.)

BUG=v8:5358,v8:1569

Review-Url: https://codereview.chromium.org/2340953002
Cr-Commit-Position: refs/heads/master@{#39434}

[modify] https://crrev.com/d383430d932f0eb7d8e832feeb9b60f5666f31de/src/ast/modules.cc
[modify] https://crrev.com/d383430d932f0eb7d8e832feeb9b60f5666f31de/src/ast/modules.h
[modify] https://crrev.com/d383430d932f0eb7d8e832feeb9b60f5666f31de/test/message/export-duplicate-as.js
[modify] https://crrev.com/d383430d932f0eb7d8e832feeb9b60f5666f31de/test/message/export-duplicate-as.out
[modify] https://crrev.com/d383430d932f0eb7d8e832feeb9b60f5666f31de/test/message/export-duplicate-default.js
[modify] https://crrev.com/d383430d932f0eb7d8e832feeb9b60f5666f31de/test/message/export-duplicate-default.out
[modify] https://crrev.com/d383430d932f0eb7d8e832feeb9b60f5666f31de/test/message/export-duplicate.js
[modify] https://crrev.com/d383430d932f0eb7d8e832feeb9b60f5666f31de/test/message/export-duplicate.out
[modify] https://crrev.com/d383430d932f0eb7d8e832feeb9b60f5666f31de/test/message/message.status

Project Member Comment 70 by bugdroid1@chromium.org, Sep 16 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/7c05d8a4a6336b9cee984a765504531b80590fc7

commit 7c05d8a4a6336b9cee984a765504531b80590fc7
Author: neis <neis@chromium.org>
Date: Fri Sep 16 16:47:07 2016

[modules] Turn JSModule into Module.

Rename JSModule to Module and make it a Struct rather than a JSObject.  We will
later add a separate JSModuleNamespace object to implement the 'import * as foo'
syntax.

BUG=v8:1569

Review-Url: https://codereview.chromium.org/2345823002
Cr-Commit-Position: refs/heads/master@{#39477}

[modify] https://crrev.com/7c05d8a4a6336b9cee984a765504531b80590fc7/include/v8.h
[modify] https://crrev.com/7c05d8a4a6336b9cee984a765504531b80590fc7/src/api.cc
[modify] https://crrev.com/7c05d8a4a6336b9cee984a765504531b80590fc7/src/ast/ast-types.cc
[modify] https://crrev.com/7c05d8a4a6336b9cee984a765504531b80590fc7/src/compiler/types.cc
[modify] https://crrev.com/7c05d8a4a6336b9cee984a765504531b80590fc7/src/contexts.cc
[modify] https://crrev.com/7c05d8a4a6336b9cee984a765504531b80590fc7/src/contexts.h
[modify] https://crrev.com/7c05d8a4a6336b9cee984a765504531b80590fc7/src/factory.cc
[modify] https://crrev.com/7c05d8a4a6336b9cee984a765504531b80590fc7/src/factory.h
[modify] https://crrev.com/7c05d8a4a6336b9cee984a765504531b80590fc7/src/heap/heap.cc
[modify] https://crrev.com/7c05d8a4a6336b9cee984a765504531b80590fc7/src/heap/heap.h
[modify] https://crrev.com/7c05d8a4a6336b9cee984a765504531b80590fc7/src/heap/objects-visiting.cc
[modify] https://crrev.com/7c05d8a4a6336b9cee984a765504531b80590fc7/src/objects-body-descriptors-inl.h
[modify] https://crrev.com/7c05d8a4a6336b9cee984a765504531b80590fc7/src/objects-debug.cc
[modify] https://crrev.com/7c05d8a4a6336b9cee984a765504531b80590fc7/src/objects-inl.h
[modify] https://crrev.com/7c05d8a4a6336b9cee984a765504531b80590fc7/src/objects-printer.cc
[modify] https://crrev.com/7c05d8a4a6336b9cee984a765504531b80590fc7/src/objects.cc
[modify] https://crrev.com/7c05d8a4a6336b9cee984a765504531b80590fc7/src/objects.h
[modify] https://crrev.com/7c05d8a4a6336b9cee984a765504531b80590fc7/src/runtime/runtime-object.cc
[modify] https://crrev.com/7c05d8a4a6336b9cee984a765504531b80590fc7/src/runtime/runtime-scopes.cc

Project Member Comment 71 by bugdroid1@chromium.org, Sep 16 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/aa6db9d99075f16007ea8fda4509a94ede4e80b6

commit aa6db9d99075f16007ea8fda4509a94ede4e80b6
Author: adamk <adamk@chromium.org>
Date: Fri Sep 16 21:47:14 2016

[modules] Introduce v8::Module to the API and return it from CompileModule

R=neis@chromium.org
BUG=v8:1569

Review-Url: https://codereview.chromium.org/2347933002
Cr-Commit-Position: refs/heads/master@{#39481}

[modify] https://crrev.com/aa6db9d99075f16007ea8fda4509a94ede4e80b6/include/v8.h
[modify] https://crrev.com/aa6db9d99075f16007ea8fda4509a94ede4e80b6/src/api.cc
[modify] https://crrev.com/aa6db9d99075f16007ea8fda4509a94ede4e80b6/src/api.h
[modify] https://crrev.com/aa6db9d99075f16007ea8fda4509a94ede4e80b6/src/d8.cc
[modify] https://crrev.com/aa6db9d99075f16007ea8fda4509a94ede4e80b6/src/d8.h
[modify] https://crrev.com/aa6db9d99075f16007ea8fda4509a94ede4e80b6/src/factory.cc
[modify] https://crrev.com/aa6db9d99075f16007ea8fda4509a94ede4e80b6/src/factory.h
[modify] https://crrev.com/aa6db9d99075f16007ea8fda4509a94ede4e80b6/src/objects-debug.cc
[modify] https://crrev.com/aa6db9d99075f16007ea8fda4509a94ede4e80b6/src/objects-inl.h
[modify] https://crrev.com/aa6db9d99075f16007ea8fda4509a94ede4e80b6/src/objects-printer.cc
[modify] https://crrev.com/aa6db9d99075f16007ea8fda4509a94ede4e80b6/src/objects.h

Project Member Comment 72 by bugdroid1@chromium.org, Sep 19 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/c5785bfb92c0380b93c4ec57dc2326da90cf0390

commit c5785bfb92c0380b93c4ec57dc2326da90cf0390
Author: neis <neis@chromium.org>
Date: Mon Sep 19 22:06:42 2016

[modules] Explicitly keep track of module requests.

We must keep track of the exact order in which modules are requested.
To do so, maintain a map from module specifiers to position while
parsing (in ModuleDescriptor). Descriptor entries now refer to that
position rather than the string.  When generating the ModuleInfo, turn
this map into an array of specifiers. We don't need the map anymore
later on, so we do not reconstruct it when deserializing again.

BUG=v8:1569

Review-Url: https://codereview.chromium.org/2353633002
Cr-Commit-Position: refs/heads/master@{#39519}

[modify] https://crrev.com/c5785bfb92c0380b93c4ec57dc2326da90cf0390/src/ast/modules.cc
[modify] https://crrev.com/c5785bfb92c0380b93c4ec57dc2326da90cf0390/src/ast/modules.h
[modify] https://crrev.com/c5785bfb92c0380b93c4ec57dc2326da90cf0390/src/ast/scopeinfo.cc
[modify] https://crrev.com/c5785bfb92c0380b93c4ec57dc2326da90cf0390/src/ast/scopes.h
[modify] https://crrev.com/c5785bfb92c0380b93c4ec57dc2326da90cf0390/src/objects-inl.h
[modify] https://crrev.com/c5785bfb92c0380b93c4ec57dc2326da90cf0390/src/objects.h
[modify] https://crrev.com/c5785bfb92c0380b93c4ec57dc2326da90cf0390/test/cctest/test-parsing.cc

Project Member Comment 73 by bugdroid1@chromium.org, Sep 20 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/c604eae3c258354c5a73c6eff0e18f39bc820fa6

commit c604eae3c258354c5a73c6eff0e18f39bc820fa6
Author: adamk <adamk@chromium.org>
Date: Tue Sep 20 18:49:58 2016

[modules] Add a requested_modules field to Module

Also simplify Factory::NewModule to take only the SharedFunctionInfo.

R=neis@chromium.org
BUG=v8:1569

Review-Url: https://codereview.chromium.org/2355033002
Cr-Commit-Position: refs/heads/master@{#39563}

[modify] https://crrev.com/c604eae3c258354c5a73c6eff0e18f39bc820fa6/src/api.cc
[modify] https://crrev.com/c604eae3c258354c5a73c6eff0e18f39bc820fa6/src/factory.cc
[modify] https://crrev.com/c604eae3c258354c5a73c6eff0e18f39bc820fa6/src/factory.h
[modify] https://crrev.com/c604eae3c258354c5a73c6eff0e18f39bc820fa6/src/objects-debug.cc
[modify] https://crrev.com/c604eae3c258354c5a73c6eff0e18f39bc820fa6/src/objects-inl.h
[modify] https://crrev.com/c604eae3c258354c5a73c6eff0e18f39bc820fa6/src/objects-printer.cc
[modify] https://crrev.com/c604eae3c258354c5a73c6eff0e18f39bc820fa6/src/objects.h

Project Member Comment 74 by bugdroid1@chromium.org, Sep 20 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/a037f350eeb521041f4e68d4714573d67a12d57e

commit a037f350eeb521041f4e68d4714573d67a12d57e
Author: neis <neis@chromium.org>
Date: Tue Sep 20 22:57:50 2016

[modules] Also (de-)serialize imports.

This is in preparation for basic support of import statements.

R=adamk@chromium.org
BUG=v8:1569

Review-Url: https://codereview.chromium.org/2357003002
Cr-Commit-Position: refs/heads/master@{#39568}

[modify] https://crrev.com/a037f350eeb521041f4e68d4714573d67a12d57e/src/ast/scopeinfo.cc
[modify] https://crrev.com/a037f350eeb521041f4e68d4714573d67a12d57e/src/ast/scopes.cc
[modify] https://crrev.com/a037f350eeb521041f4e68d4714573d67a12d57e/src/objects-inl.h
[modify] https://crrev.com/a037f350eeb521041f4e68d4714573d67a12d57e/src/objects.h

Project Member Comment 75 by bugdroid1@chromium.org, Sep 20 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/cf127e81449f0bc4d09368a376623fe3743094a7

commit cf127e81449f0bc4d09368a376623fe3743094a7
Author: adamk <adamk@chromium.org>
Date: Tue Sep 20 23:38:58 2016

[modules] Expand API to allow linking and use it in d8

This patch gives the ability for the embedder to ask for the
module requests of a module, and to pass a ResolveCallback
into Module::Instantiate().

In d8, I've implemented a simple module_map that's used
along with this API to allow loading, compiling, instantiating,
and evaluating a whole tree of modules.

No path resolution is yet implemented, meaning that all
import paths are relative to whatever directory d8 runs
in. And no imports are linked to the exports of the
requested module.

BUG=v8:1569

Review-Url: https://codereview.chromium.org/2351113004
Cr-Commit-Position: refs/heads/master@{#39569}

[modify] https://crrev.com/cf127e81449f0bc4d09368a376623fe3743094a7/include/v8.h
[modify] https://crrev.com/cf127e81449f0bc4d09368a376623fe3743094a7/src/api.cc
[modify] https://crrev.com/cf127e81449f0bc4d09368a376623fe3743094a7/src/api.h
[modify] https://crrev.com/cf127e81449f0bc4d09368a376623fe3743094a7/src/d8.cc
[modify] https://crrev.com/cf127e81449f0bc4d09368a376623fe3743094a7/src/d8.h
[modify] https://crrev.com/cf127e81449f0bc4d09368a376623fe3743094a7/src/factory.cc
[modify] https://crrev.com/cf127e81449f0bc4d09368a376623fe3743094a7/src/objects-debug.cc
[modify] https://crrev.com/cf127e81449f0bc4d09368a376623fe3743094a7/src/objects-inl.h
[modify] https://crrev.com/cf127e81449f0bc4d09368a376623fe3743094a7/src/objects-printer.cc
[modify] https://crrev.com/cf127e81449f0bc4d09368a376623fe3743094a7/src/objects.h
[modify] https://crrev.com/cf127e81449f0bc4d09368a376623fe3743094a7/test/cctest/BUILD.gn
[modify] https://crrev.com/cf127e81449f0bc4d09368a376623fe3743094a7/test/cctest/cctest.gyp
[modify] https://crrev.com/cf127e81449f0bc4d09368a376623fe3743094a7/test/cctest/cctest.status
[add] https://crrev.com/cf127e81449f0bc4d09368a376623fe3743094a7/test/cctest/test-modules.cc

Project Member Comment 76 by bugdroid1@chromium.org, Sep 21 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/b2b434df4179c0474eb7a377e80ff1452b0cda4c

commit b2b434df4179c0474eb7a377e80ff1452b0cda4c
Author: neis <neis@chromium.org>
Date: Wed Sep 21 18:47:37 2016

[modules] Support exporting a local variable under multiple export names.

R=adamk@chromium.org
BUG=v8:1569

Review-Url: https://codereview.chromium.org/2353403003
Cr-Commit-Position: refs/heads/master@{#39604}

[modify] https://crrev.com/b2b434df4179c0474eb7a377e80ff1452b0cda4c/src/api.cc
[modify] https://crrev.com/b2b434df4179c0474eb7a377e80ff1452b0cda4c/src/ast/modules.cc
[modify] https://crrev.com/b2b434df4179c0474eb7a377e80ff1452b0cda4c/src/ast/modules.h
[modify] https://crrev.com/b2b434df4179c0474eb7a377e80ff1452b0cda4c/src/ast/scopeinfo.cc
[modify] https://crrev.com/b2b434df4179c0474eb7a377e80ff1452b0cda4c/src/ast/scopes.cc
[modify] https://crrev.com/b2b434df4179c0474eb7a377e80ff1452b0cda4c/src/objects.cc
[modify] https://crrev.com/b2b434df4179c0474eb7a377e80ff1452b0cda4c/src/objects.h

Project Member Comment 77 by bugdroid1@chromium.org, Sep 22 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/ca6886c0356d8efd1a507a123e63fc37e00bfea0

commit ca6886c0356d8efd1a507a123e63fc37e00bfea0
Author: neis <neis@chromium.org>
Date: Thu Sep 22 17:28:28 2016

[modules] Basic support of import statements.

BUG=v8:1569

Review-Url: https://codereview.chromium.org/2360063002
Cr-Commit-Position: refs/heads/master@{#39639}

[modify] https://crrev.com/ca6886c0356d8efd1a507a123e63fc37e00bfea0/src/ast/modules.h
[modify] https://crrev.com/ca6886c0356d8efd1a507a123e63fc37e00bfea0/src/interpreter/bytecode-generator.cc
[modify] https://crrev.com/ca6886c0356d8efd1a507a123e63fc37e00bfea0/src/objects.cc
[modify] https://crrev.com/ca6886c0356d8efd1a507a123e63fc37e00bfea0/src/objects.h
[modify] https://crrev.com/ca6886c0356d8efd1a507a123e63fc37e00bfea0/src/runtime/runtime-object.cc
[modify] https://crrev.com/ca6886c0356d8efd1a507a123e63fc37e00bfea0/src/runtime/runtime.h

Project Member Comment 78 by bugdroid1@chromium.org, Sep 22 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/3bbd11c23390243a237158af4a01358497958b5b

commit 3bbd11c23390243a237158af4a01358497958b5b
Author: adamk <adamk@chromium.org>
Date: Thu Sep 22 21:03:19 2016

[modules] Do path resolution relative to each module file in d8

BUG=v8:1569

Review-Url: https://codereview.chromium.org/2361593002
Cr-Commit-Position: refs/heads/master@{#39646}

[modify] https://crrev.com/3bbd11c23390243a237158af4a01358497958b5b/include/v8.h
[modify] https://crrev.com/3bbd11c23390243a237158af4a01358497958b5b/src/api.cc
[modify] https://crrev.com/3bbd11c23390243a237158af4a01358497958b5b/src/d8.cc
[modify] https://crrev.com/3bbd11c23390243a237158af4a01358497958b5b/src/factory.cc
[modify] https://crrev.com/3bbd11c23390243a237158af4a01358497958b5b/src/objects-debug.cc
[modify] https://crrev.com/3bbd11c23390243a237158af4a01358497958b5b/src/objects-inl.h
[modify] https://crrev.com/3bbd11c23390243a237158af4a01358497958b5b/src/objects-printer.cc
[modify] https://crrev.com/3bbd11c23390243a237158af4a01358497958b5b/src/objects.h
[modify] https://crrev.com/3bbd11c23390243a237158af4a01358497958b5b/test/cctest/test-modules.cc

Project Member Comment 79 by bugdroid1@chromium.org, Sep 22 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/4453819c9afeaeab720bd3f048a1958f58882921

commit 4453819c9afeaeab720bd3f048a1958f58882921
Author: adamk <adamk@chromium.org>
Date: Thu Sep 22 23:05:58 2016

[modules] Allow Module::Instantiate to throw exceptions

Also prepare d8 for that eventuality, and fixup the runtime call stat
counter used for Module::Evaluate.

R=neis@chromium.org
BUG=v8:1569

Review-Url: https://codereview.chromium.org/2366773002
Cr-Commit-Position: refs/heads/master@{#39647}

[modify] https://crrev.com/4453819c9afeaeab720bd3f048a1958f58882921/src/api.cc
[modify] https://crrev.com/4453819c9afeaeab720bd3f048a1958f58882921/src/counters.h
[modify] https://crrev.com/4453819c9afeaeab720bd3f048a1958f58882921/src/d8.cc

Project Member Comment 80 by bugdroid1@chromium.org, Sep 23 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/d7858e35f61596a12be8468bd099bfe191a0da99

commit d7858e35f61596a12be8468bd099bfe191a0da99
Author: neis <neis@chromium.org>
Date: Fri Sep 23 19:02:26 2016

[modules] Do basic linking.

Resolve imports and indirect exports at instantiation time.

With this CL we have some basic functionality for modules working.  Not yet
supported: star exports, namespace imports, cycle detection, proper variable
initialisation in mutually recursive modules.

BUG=v8:1569

Review-Url: https://codereview.chromium.org/2362083002
Cr-Commit-Position: refs/heads/master@{#39689}

[modify] https://crrev.com/d7858e35f61596a12be8468bd099bfe191a0da99/src/api.cc
[modify] https://crrev.com/d7858e35f61596a12be8468bd099bfe191a0da99/src/ast/modules.cc
[modify] https://crrev.com/d7858e35f61596a12be8468bd099bfe191a0da99/src/ast/modules.h
[modify] https://crrev.com/d7858e35f61596a12be8468bd099bfe191a0da99/src/messages.h
[modify] https://crrev.com/d7858e35f61596a12be8468bd099bfe191a0da99/src/objects-inl.h
[modify] https://crrev.com/d7858e35f61596a12be8468bd099bfe191a0da99/src/objects.cc
[modify] https://crrev.com/d7858e35f61596a12be8468bd099bfe191a0da99/src/objects.h
[modify] https://crrev.com/d7858e35f61596a12be8468bd099bfe191a0da99/test/mjsunit/mjsunit.status
[add] https://crrev.com/d7858e35f61596a12be8468bd099bfe191a0da99/test/mjsunit/modules-default.js
[add] https://crrev.com/d7858e35f61596a12be8468bd099bfe191a0da99/test/mjsunit/modules-fail-1.js
[add] https://crrev.com/d7858e35f61596a12be8468bd099bfe191a0da99/test/mjsunit/modules-fail-2.js
[add] https://crrev.com/d7858e35f61596a12be8468bd099bfe191a0da99/test/mjsunit/modules-fail-3.js
[add] https://crrev.com/d7858e35f61596a12be8468bd099bfe191a0da99/test/mjsunit/modules-fail-4.js
[add] https://crrev.com/d7858e35f61596a12be8468bd099bfe191a0da99/test/mjsunit/modules-fail-5.js
[add] https://crrev.com/d7858e35f61596a12be8468bd099bfe191a0da99/test/mjsunit/modules-imports1.js
[add] https://crrev.com/d7858e35f61596a12be8468bd099bfe191a0da99/test/mjsunit/modules-imports2.js
[add] https://crrev.com/d7858e35f61596a12be8468bd099bfe191a0da99/test/mjsunit/modules-imports3.js
[add] https://crrev.com/d7858e35f61596a12be8468bd099bfe191a0da99/test/mjsunit/modules-imports4.js
[add] https://crrev.com/d7858e35f61596a12be8468bd099bfe191a0da99/test/mjsunit/modules-imports5.js
[add] https://crrev.com/d7858e35f61596a12be8468bd099bfe191a0da99/test/mjsunit/modules-skip-1.js
[add] https://crrev.com/d7858e35f61596a12be8468bd099bfe191a0da99/test/mjsunit/modules-skip-2.js
[add] https://crrev.com/d7858e35f61596a12be8468bd099bfe191a0da99/test/mjsunit/modules-skip-3.js

Project Member Comment 81 by bugdroid1@chromium.org, Sep 23 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/f9e9a016611b3ed2206ff3b025d069dc5108709e

commit f9e9a016611b3ed2206ff3b025d069dc5108709e
Author: neis <neis@chromium.org>
Date: Fri Sep 23 19:35:46 2016

[modules] Simplify treatment of empty imports.

There's no reason (anymore) to have empty imports in special_imports.  Remove
them from there and rename special_imports to namespace_imports to be more
precise.

R=adamk@chromium.org
BUG=v8:1569

Review-Url: https://codereview.chromium.org/2368613002
Cr-Commit-Position: refs/heads/master@{#39693}

[modify] https://crrev.com/f9e9a016611b3ed2206ff3b025d069dc5108709e/src/ast/modules.cc
[modify] https://crrev.com/f9e9a016611b3ed2206ff3b025d069dc5108709e/src/ast/modules.h
[modify] https://crrev.com/f9e9a016611b3ed2206ff3b025d069dc5108709e/src/ast/scopeinfo.cc
[modify] https://crrev.com/f9e9a016611b3ed2206ff3b025d069dc5108709e/src/ast/scopes.cc
[modify] https://crrev.com/f9e9a016611b3ed2206ff3b025d069dc5108709e/src/objects-inl.h
[modify] https://crrev.com/f9e9a016611b3ed2206ff3b025d069dc5108709e/src/objects.h
[modify] https://crrev.com/f9e9a016611b3ed2206ff3b025d069dc5108709e/src/parsing/parser.cc
[modify] https://crrev.com/f9e9a016611b3ed2206ff3b025d069dc5108709e/test/cctest/test-parsing.cc

I've been following this issue for a while, hoping it will be resolved soon. Is there a list of things that need to get done before this is closed out?
Project Member Comment 83 by bugdroid1@chromium.org, Sep 23 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/756f669003356ce909b91923dee93d8dfd692b67

commit 756f669003356ce909b91923dee93d8dfd692b67
Author: adamk <adamk@chromium.org>
Date: Fri Sep 23 23:45:56 2016

[modules] Initialize requested_modules before recursing in Module::Instantiate

Also fix recursive call to avoid going back through the API.

R=neis@chromium.org
BUG=v8:1569

Review-Url: https://codereview.chromium.org/2366063002
Cr-Commit-Position: refs/heads/master@{#39696}

[modify] https://crrev.com/756f669003356ce909b91923dee93d8dfd692b67/src/api.cc
[add] https://crrev.com/756f669003356ce909b91923dee93d8dfd692b67/test/mjsunit/modules-circular-valid.js
[add] https://crrev.com/756f669003356ce909b91923dee93d8dfd692b67/test/mjsunit/modules-skip-circular-valid.js

Project Member Comment 84 by bugdroid1@chromium.org, Sep 24 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/61689598754856127a6ef1aa3952064f597e999e

commit 61689598754856127a6ef1aa3952064f597e999e
Author: neis <neis@chromium.org>
Date: Sat Sep 24 01:46:45 2016

[modules] Support star exports.

R=adamk@chromium.org
BUG=v8:1569

Review-Url: https://codereview.chromium.org/2362153003
Cr-Commit-Position: refs/heads/master@{#39700}

[modify] https://crrev.com/61689598754856127a6ef1aa3952064f597e999e/src/api.cc
[modify] https://crrev.com/61689598754856127a6ef1aa3952064f597e999e/src/messages.h
[modify] https://crrev.com/61689598754856127a6ef1aa3952064f597e999e/src/objects.cc
[modify] https://crrev.com/61689598754856127a6ef1aa3952064f597e999e/src/objects.h
[add] https://crrev.com/61689598754856127a6ef1aa3952064f597e999e/test/mjsunit/modules-fail-6.js
[add] https://crrev.com/61689598754856127a6ef1aa3952064f597e999e/test/mjsunit/modules-fail-7.js
[add] https://crrev.com/61689598754856127a6ef1aa3952064f597e999e/test/mjsunit/modules-fail-8.js
[add] https://crrev.com/61689598754856127a6ef1aa3952064f597e999e/test/mjsunit/modules-imports6.js
[add] https://crrev.com/61689598754856127a6ef1aa3952064f597e999e/test/mjsunit/modules-imports7.js
[add] https://crrev.com/61689598754856127a6ef1aa3952064f597e999e/test/mjsunit/modules-skip-4.js
[add] https://crrev.com/61689598754856127a6ef1aa3952064f597e999e/test/mjsunit/modules-skip-5.js
[add] https://crrev.com/61689598754856127a6ef1aa3952064f597e999e/test/mjsunit/modules-skip-6.js
[add] https://crrev.com/61689598754856127a6ef1aa3952064f597e999e/test/mjsunit/modules-skip-7.js

Project Member Comment 85 by bugdroid1@chromium.org, Sep 26 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/550e37296c9555b90eb6d0f7180483a9121270e1

commit 550e37296c9555b90eb6d0f7180483a9121270e1
Author: adamk <adamk@chromium.org>
Date: Mon Sep 26 18:50:28 2016

[modules] Move implementation of Instantiate to i::Module

This allows the CreateExport/ResolveExport methods to be private to Module.

R=neis@chromium.org
BUG=v8:1569

Review-Url: https://codereview.chromium.org/2368393002
Cr-Commit-Position: refs/heads/master@{#39738}

[modify] https://crrev.com/550e37296c9555b90eb6d0f7180483a9121270e1/src/api.cc
[modify] https://crrev.com/550e37296c9555b90eb6d0f7180483a9121270e1/src/objects.cc
[modify] https://crrev.com/550e37296c9555b90eb6d0f7180483a9121270e1/src/objects.h

Project Member Comment 86 by bugdroid1@chromium.org, Sep 26 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/0614eb54715808c63484e4b033fc8c1e3eac3834

commit 0614eb54715808c63484e4b033fc8c1e3eac3834
Author: neis <neis@chromium.org>
Date: Mon Sep 26 18:55:48 2016

[modules] Add tests for empty imports.

R=adamk@chromium.org
BUG=v8:1569

Review-Url: https://codereview.chromium.org/2369133002
Cr-Commit-Position: refs/heads/master@{#39739}

[add] https://crrev.com/0614eb54715808c63484e4b033fc8c1e3eac3834/test/mjsunit/modules-empty-import1.js
[add] https://crrev.com/0614eb54715808c63484e4b033fc8c1e3eac3834/test/mjsunit/modules-empty-import2.js
[add] https://crrev.com/0614eb54715808c63484e4b033fc8c1e3eac3834/test/mjsunit/modules-empty-import3.js
[add] https://crrev.com/0614eb54715808c63484e4b033fc8c1e3eac3834/test/mjsunit/modules-empty-import4.js
[add] https://crrev.com/0614eb54715808c63484e4b033fc8c1e3eac3834/test/mjsunit/modules-skip-empty-import-aux.js
[add] https://crrev.com/0614eb54715808c63484e4b033fc8c1e3eac3834/test/mjsunit/modules-skip-empty-import.js

Project Member Comment 87 by bugdroid1@chromium.org, Sep 26 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/1594b706a2d6d711dac49387ed3875c353f73997

commit 1594b706a2d6d711dac49387ed3875c353f73997
Author: neis <neis@chromium.org>
Date: Mon Sep 26 19:34:55 2016

[modules] Disallow return statement in module body.

R=adamk@chromium.org
BUG=v8:1569

Review-Url: https://codereview.chromium.org/2367403003
Cr-Commit-Position: refs/heads/master@{#39740}

[modify] https://crrev.com/1594b706a2d6d711dac49387ed3875c353f73997/src/parsing/parser-base.h
[modify] https://crrev.com/1594b706a2d6d711dac49387ed3875c353f73997/test/test262/test262.status

Project Member Comment 88 by bugdroid1@chromium.org, Sep 26 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/b48eb56905e7fb3f14d9f54adb4853e01fdacc4e

commit b48eb56905e7fb3f14d9f54adb4853e01fdacc4e
Author: adamk <adamk@chromium.org>
Date: Mon Sep 26 22:42:09 2016

[modules] Detect and throw exceptions for cyclic dependencies

Use an unordered_map<Module, unordered_set<String>> to keep track
of visited Module/ExportName pairs during ResolveExport.

This required adding a Hash() method to Module, which is accomplished
by allocating a Symbol and storing it in the SharedFunctionInfo::name
slot, then delegating the hash to that Symbol.

Also added a helper method Module::shared() to easily get ahold of
the SharedFunctionInfo and call it in the appropriate places instead
of re-doing the ternary operator.

BUG=v8:1569

Review-Url: https://codereview.chromium.org/2367623004
Cr-Commit-Position: refs/heads/master@{#39743}

[modify] https://crrev.com/b48eb56905e7fb3f14d9f54adb4853e01fdacc4e/src/factory.cc
[modify] https://crrev.com/b48eb56905e7fb3f14d9f54adb4853e01fdacc4e/src/messages.h
[modify] https://crrev.com/b48eb56905e7fb3f14d9f54adb4853e01fdacc4e/src/objects-debug.cc
[modify] https://crrev.com/b48eb56905e7fb3f14d9f54adb4853e01fdacc4e/src/objects-inl.h
[modify] https://crrev.com/b48eb56905e7fb3f14d9f54adb4853e01fdacc4e/src/objects.cc
[modify] https://crrev.com/b48eb56905e7fb3f14d9f54adb4853e01fdacc4e/src/objects.h
[modify] https://crrev.com/b48eb56905e7fb3f14d9f54adb4853e01fdacc4e/test/cctest/interpreter/bytecode_expectations/ForOf.golden
[modify] https://crrev.com/b48eb56905e7fb3f14d9f54adb4853e01fdacc4e/test/cctest/interpreter/bytecode_expectations/Generators.golden
[add] https://crrev.com/b48eb56905e7fb3f14d9f54adb4853e01fdacc4e/test/mjsunit/modules-fail-cyclic-1.js
[add] https://crrev.com/b48eb56905e7fb3f14d9f54adb4853e01fdacc4e/test/mjsunit/modules-fail-cyclic-2.js
[add] https://crrev.com/b48eb56905e7fb3f14d9f54adb4853e01fdacc4e/test/mjsunit/modules-fail-cyclic-3.js
[add] https://crrev.com/b48eb56905e7fb3f14d9f54adb4853e01fdacc4e/test/mjsunit/modules-skip-cyclic-3.js
[add] https://crrev.com/b48eb56905e7fb3f14d9f54adb4853e01fdacc4e/test/mjsunit/modules-skip-cyclic.js

Comment 89 by rausc...@gmail.com, Sep 26 2016
Shouldn’t cyclic dependencies be allowed? Or am I missing something? [see comment #88]
Comment 90 by sjail...@gmail.com, Sep 26 2016
According to the provided tests, I think the commit message is misleading. It looks like more detecting and throwing exceptions for unresolvable dependencies.
Cyclic dependencies is a key goal for ES6 modules so it wouldn't make sense otherwise.
Comment 91 by adamk@chromium.org, Sep 26 2016
Indeed, sjaillet has this right: the patch detects cycles that make resolution impossible.
Project Member Comment 92 by bugdroid1@chromium.org, Sep 26 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/9f5ef0a453521a39b707c3ca6c73ca056ff7a457

commit 9f5ef0a453521a39b707c3ca6c73ca056ff7a457
Author: neis <neis@chromium.org>
Date: Mon Sep 26 23:19:37 2016

[modules] Never do lazy parsing in modules.

If we want to allow this in the future, we must force context-allocation for all
variables that are declared at the module level but not MODULE-allocated.

R=adamk@chromium.org
BUG=v8:1569

Review-Url: https://codereview.chromium.org/2373573003
Cr-Commit-Position: refs/heads/master@{#39745}

[modify] https://crrev.com/9f5ef0a453521a39b707c3ca6c73ca056ff7a457/src/parsing/parser.cc
[add] https://crrev.com/9f5ef0a453521a39b707c3ca6c73ca056ff7a457/test/mjsunit/modules-preparse.js

Comment 93 by rausc...@gmail.com, Sep 26 2016
Got it. Thanks for the explanations, sjaillet and adamk!
Project Member Comment 94 by bugdroid1@chromium.org, Sep 27 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/841458036a43304746162862c0fe88a4ecbeb42f

commit 841458036a43304746162862c0fe88a4ecbeb42f
Author: neis <neis@chromium.org>
Date: Tue Sep 27 00:48:12 2016

[modules] Add tests for the name property of default-exported functions.

R=adamk@chromium.org
BUG=v8:1569

Review-Url: https://codereview.chromium.org/2372873002
Cr-Commit-Position: refs/heads/master@{#39746}

[add] https://crrev.com/841458036a43304746162862c0fe88a4ecbeb42f/test/mjsunit/modules-default-name1.js
[add] https://crrev.com/841458036a43304746162862c0fe88a4ecbeb42f/test/mjsunit/modules-default-name2.js
[add] https://crrev.com/841458036a43304746162862c0fe88a4ecbeb42f/test/mjsunit/modules-default-name3.js
[add] https://crrev.com/841458036a43304746162862c0fe88a4ecbeb42f/test/mjsunit/modules-default-name4.js
[add] https://crrev.com/841458036a43304746162862c0fe88a4ecbeb42f/test/mjsunit/modules-default-name5.js
[add] https://crrev.com/841458036a43304746162862c0fe88a4ecbeb42f/test/mjsunit/modules-default-name6.js
[add] https://crrev.com/841458036a43304746162862c0fe88a4ecbeb42f/test/mjsunit/modules-default-name7.js
[add] https://crrev.com/841458036a43304746162862c0fe88a4ecbeb42f/test/mjsunit/modules-default-name8.js
[add] https://crrev.com/841458036a43304746162862c0fe88a4ecbeb42f/test/mjsunit/modules-default-name9.js
[add] https://crrev.com/841458036a43304746162862c0fe88a4ecbeb42f/test/mjsunit/modules-skip-default-name1.js
[add] https://crrev.com/841458036a43304746162862c0fe88a4ecbeb42f/test/mjsunit/modules-skip-default-name2.js
[add] https://crrev.com/841458036a43304746162862c0fe88a4ecbeb42f/test/mjsunit/modules-skip-default-name3.js
[add] https://crrev.com/841458036a43304746162862c0fe88a4ecbeb42f/test/mjsunit/modules-skip-default-name4.js
[add] https://crrev.com/841458036a43304746162862c0fe88a4ecbeb42f/test/mjsunit/modules-skip-default-name5.js
[add] https://crrev.com/841458036a43304746162862c0fe88a4ecbeb42f/test/mjsunit/modules-skip-default-name6.js
[add] https://crrev.com/841458036a43304746162862c0fe88a4ecbeb42f/test/mjsunit/modules-skip-default-name7.js
[add] https://crrev.com/841458036a43304746162862c0fe88a4ecbeb42f/test/mjsunit/modules-skip-default-name8.js
[add] https://crrev.com/841458036a43304746162862c0fe88a4ecbeb42f/test/mjsunit/modules-skip-default-name9.js

Project Member Comment 95 by bugdroid1@chromium.org, Sep 27 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/b7913f33a3d979d656016403a3c5d33e01e5734a

commit b7913f33a3d979d656016403a3c5d33e01e5734a
Author: neis <neis@chromium.org>
Date: Tue Sep 27 17:31:14 2016

[modules] Don't throw when detecting cycle while processing star exports.

We must not throw when seeing a cycle while trying to resolve a name through
star exports.  (It may be surprising that we do have to throw when seeing an
ambiguity, but this is what the spec says.)

R=adamk@chromium.org
BUG=v8:1569

Review-Url: https://codereview.chromium.org/2376563002
Cr-Commit-Position: refs/heads/master@{#39787}

[modify] https://crrev.com/b7913f33a3d979d656016403a3c5d33e01e5734a/src/objects.cc
[modify] https://crrev.com/b7913f33a3d979d656016403a3c5d33e01e5734a/src/objects.h
[add] https://crrev.com/b7913f33a3d979d656016403a3c5d33e01e5734a/test/mjsunit/modules-fail-star-exports-conflict.js
[add] https://crrev.com/b7913f33a3d979d656016403a3c5d33e01e5734a/test/mjsunit/modules-skip-star-exports-conflict.js
[add] https://crrev.com/b7913f33a3d979d656016403a3c5d33e01e5734a/test/mjsunit/modules-skip-star-exports-cycle.js
[add] https://crrev.com/b7913f33a3d979d656016403a3c5d33e01e5734a/test/mjsunit/modules-star-exports-cycle.js

Project Member Comment 96 by bugdroid1@chromium.org, Sep 28 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/01824e5e96be212ab777c8c129c937fe18333092

commit 01824e5e96be212ab777c8c129c937fe18333092
Author: adamk <adamk@chromium.org>
Date: Tue Sep 27 18:32:05 2016

[modules] Move Evaluate from api.cc into internal Module implementation

R=neis@chromium.org
BUG=v8:1569

Review-Url: https://codereview.chromium.org/2376693003
Cr-Commit-Position: refs/heads/master@{#39790}

[modify] https://crrev.com/01824e5e96be212ab777c8c129c937fe18333092/src/api.cc
[modify] https://crrev.com/01824e5e96be212ab777c8c129c937fe18333092/src/objects.cc
[modify] https://crrev.com/01824e5e96be212ab777c8c129c937fe18333092/src/objects.h

Project Member Comment 97 by bugdroid1@chromium.org, Sep 29 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/f4dfb6fbe1cdd9a0f287a1a9c496e1f69f6f5d20

commit f4dfb6fbe1cdd9a0f287a1a9c496e1f69f6f5d20
Author: neis <neis@chromium.org>
Date: Thu Sep 29 14:20:30 2016

[modules] Properly initialize declared variables.

Before evaluating a module, all variables declared at the top-level
in _any_ of the modules in the dependency graph must be initialized.
This is observable because a module A can access a variable imported
from module B (e.g. a function) at a point when module B's body hasn't
been evaluated yet.

We achieve this by implementing modules internally as generators with
two states (not initialized, initialized).

R=adamk@chromium.org
BUG=v8:1569

Review-Url: https://codereview.chromium.org/2375793002
Cr-Commit-Position: refs/heads/master@{#39871}

[modify] https://crrev.com/f4dfb6fbe1cdd9a0f287a1a9c496e1f69f6f5d20/src/ast/scopes.cc
[modify] https://crrev.com/f4dfb6fbe1cdd9a0f287a1a9c496e1f69f6f5d20/src/bootstrapper.cc
[modify] https://crrev.com/f4dfb6fbe1cdd9a0f287a1a9c496e1f69f6f5d20/src/contexts.h
[modify] https://crrev.com/f4dfb6fbe1cdd9a0f287a1a9c496e1f69f6f5d20/src/globals.h
[modify] https://crrev.com/f4dfb6fbe1cdd9a0f287a1a9c496e1f69f6f5d20/src/interpreter/bytecode-generator.cc
[modify] https://crrev.com/f4dfb6fbe1cdd9a0f287a1a9c496e1f69f6f5d20/src/objects.cc
[modify] https://crrev.com/f4dfb6fbe1cdd9a0f287a1a9c496e1f69f6f5d20/src/objects.h
[modify] https://crrev.com/f4dfb6fbe1cdd9a0f287a1a9c496e1f69f6f5d20/src/parsing/parser.cc
[modify] https://crrev.com/f4dfb6fbe1cdd9a0f287a1a9c496e1f69f6f5d20/src/parsing/parser.h
[modify] https://crrev.com/f4dfb6fbe1cdd9a0f287a1a9c496e1f69f6f5d20/test/cctest/interpreter/bytecode_expectations/CallRuntime.golden
[add] https://crrev.com/f4dfb6fbe1cdd9a0f287a1a9c496e1f69f6f5d20/test/mjsunit/modules-error-trace.js
[add] https://crrev.com/f4dfb6fbe1cdd9a0f287a1a9c496e1f69f6f5d20/test/mjsunit/modules-init1.js
[add] https://crrev.com/f4dfb6fbe1cdd9a0f287a1a9c496e1f69f6f5d20/test/mjsunit/modules-init2.js
[add] https://crrev.com/f4dfb6fbe1cdd9a0f287a1a9c496e1f69f6f5d20/test/mjsunit/modules-init3.js
[add] https://crrev.com/f4dfb6fbe1cdd9a0f287a1a9c496e1f69f6f5d20/test/mjsunit/modules-skip-init1.js
[add] https://crrev.com/f4dfb6fbe1cdd9a0f287a1a9c496e1f69f6f5d20/test/mjsunit/modules-skip-init3.js

Project Member Comment 98 by bugdroid1@chromium.org, Sep 29 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/7496c9de941119239fe489764fb24ec7bb2ebc37

commit 7496c9de941119239fe489764fb24ec7bb2ebc37
Author: machenbach <machenbach@chromium.org>
Date: Thu Sep 29 15:10:07 2016

Revert of [modules] Properly initialize declared variables. (patchset #5 id:80001 of https://codereview.chromium.org/2375793002/ )

Reason for revert:
Suspect for causing win64 debug problems:
https://build.chromium.org/p/client.v8/builders/V8%20Win64%20-%20debug/builds/12646

Original issue's description:
> [modules] Properly initialize declared variables.
>
> Before evaluating a module, all variables declared at the top-level
> in _any_ of the modules in the dependency graph must be initialized.
> This is observable because a module A can access a variable imported
> from module B (e.g. a function) at a point when module B's body hasn't
> been evaluated yet.
>
> We achieve this by implementing modules internally as generators with
> two states (not initialized, initialized).
>
> R=adamk@chromium.org
> BUG=v8:1569
>
> Committed: https://crrev.com/f4dfb6fbe1cdd9a0f287a1a9c496e1f69f6f5d20
> Cr-Commit-Position: refs/heads/master@{#39871}

TBR=adamk@chromium.org,mstarzinger@chromium.org,neis@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:1569

Review-Url: https://codereview.chromium.org/2379063002
Cr-Commit-Position: refs/heads/master@{#39873}

[modify] https://crrev.com/7496c9de941119239fe489764fb24ec7bb2ebc37/src/ast/scopes.cc
[modify] https://crrev.com/7496c9de941119239fe489764fb24ec7bb2ebc37/src/bootstrapper.cc
[modify] https://crrev.com/7496c9de941119239fe489764fb24ec7bb2ebc37/src/contexts.h
[modify] https://crrev.com/7496c9de941119239fe489764fb24ec7bb2ebc37/src/globals.h
[modify] https://crrev.com/7496c9de941119239fe489764fb24ec7bb2ebc37/src/interpreter/bytecode-generator.cc
[modify] https://crrev.com/7496c9de941119239fe489764fb24ec7bb2ebc37/src/objects.cc
[modify] https://crrev.com/7496c9de941119239fe489764fb24ec7bb2ebc37/src/objects.h
[modify] https://crrev.com/7496c9de941119239fe489764fb24ec7bb2ebc37/src/parsing/parser.cc
[modify] https://crrev.com/7496c9de941119239fe489764fb24ec7bb2ebc37/src/parsing/parser.h
[modify] https://crrev.com/7496c9de941119239fe489764fb24ec7bb2ebc37/test/cctest/interpreter/bytecode_expectations/CallRuntime.golden
[delete] https://crrev.com/8c87212186107fbe1b02086f87ce90645557865c/test/mjsunit/modules-error-trace.js
[delete] https://crrev.com/8c87212186107fbe1b02086f87ce90645557865c/test/mjsunit/modules-init1.js
[delete] https://crrev.com/8c87212186107fbe1b02086f87ce90645557865c/test/mjsunit/modules-init2.js
[delete] https://crrev.com/8c87212186107fbe1b02086f87ce90645557865c/test/mjsunit/modules-init3.js
[delete] https://crrev.com/8c87212186107fbe1b02086f87ce90645557865c/test/mjsunit/modules-skip-init1.js
[delete] https://crrev.com/8c87212186107fbe1b02086f87ce90645557865c/test/mjsunit/modules-skip-init3.js

Project Member Comment 99 by bugdroid1@chromium.org, Sep 29 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/8c52a411583e870bd5ed100864caa58f491c5d88

commit 8c52a411583e870bd5ed100864caa58f491c5d88
Author: neis <neis@chromium.org>
Date: Thu Sep 29 22:24:37 2016

Reland: [modules] Properly initialize declared variables.

Before evaluating a module, all variables declared at the top-level
in _any_ of the modules in the dependency graph must be initialized.
This is observable because a module A can access a variable imported
from module B (e.g. a function) at a point when module B's body hasn't
been evaluated yet.

We achieve this by implementing modules internally as generators with
two states (not initialized, initialized).

R=adamk@chromium.org
BUG=v8:1569
CQ_INCLUDE_TRYBOTS=master.tryserver.v8:v8_win_dbg

Committed: https://crrev.com/f4dfb6fbe1cdd9a0f287a1a9c496e1f69f6f5d20
Review-Url: https://codereview.chromium.org/2375793002
Cr-Original-Commit-Position: refs/heads/master@{#39871}
Cr-Commit-Position: refs/heads/master@{#39892}

[modify] https://crrev.com/8c52a411583e870bd5ed100864caa58f491c5d88/src/ast/scopes.cc
[modify] https://crrev.com/8c52a411583e870bd5ed100864caa58f491c5d88/src/bootstrapper.cc
[modify] https://crrev.com/8c52a411583e870bd5ed100864caa58f491c5d88/src/contexts.h
[modify] https://crrev.com/8c52a411583e870bd5ed100864caa58f491c5d88/src/globals.h
[modify] https://crrev.com/8c52a411583e870bd5ed100864caa58f491c5d88/src/interpreter/bytecode-generator.cc
[modify] https://crrev.com/8c52a411583e870bd5ed100864caa58f491c5d88/src/objects.cc
[modify] https://crrev.com/8c52a411583e870bd5ed100864caa58f491c5d88/src/objects.h
[modify] https://crrev.com/8c52a411583e870bd5ed100864caa58f491c5d88/src/parsing/parser.cc
[modify] https://crrev.com/8c52a411583e870bd5ed100864caa58f491c5d88/src/parsing/parser.h
[modify] https://crrev.com/8c52a411583e870bd5ed100864caa58f491c5d88/test/cctest/interpreter/bytecode_expectations/CallRuntime.golden
[add] https://crrev.com/8c52a411583e870bd5ed100864caa58f491c5d88/test/mjsunit/modules-error-trace.js
[add] https://crrev.com/8c52a411583e870bd5ed100864caa58f491c5d88/test/mjsunit/modules-init1.js
[add] https://crrev.com/8c52a411583e870bd5ed100864caa58f491c5d88/test/mjsunit/modules-init2.js
[add] https://crrev.com/8c52a411583e870bd5ed100864caa58f491c5d88/test/mjsunit/modules-init3.js
[add] https://crrev.com/8c52a411583e870bd5ed100864caa58f491c5d88/test/mjsunit/modules-skip-init1.js
[add] https://crrev.com/8c52a411583e870bd5ed100864caa58f491c5d88/test/mjsunit/modules-skip-init3.js

Project Member Comment 100 by bugdroid1@chromium.org, Sep 30 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/669cb71e60eeaf34153549713ab02b415c84379f

commit 669cb71e60eeaf34153549713ab02b415c84379f
Author: bmeurer <bmeurer@chromium.org>
Date: Fri Sep 30 04:22:14 2016

Revert of Reland: [modules] Properly initialize declared variables. (patchset #6 id:100001 of https://codereview.chromium.org/2375793002/ )

Reason for revert:
Speculative revert for christmas tree

Original issue's description:
> Reland: [modules] Properly initialize declared variables.
>
> Before evaluating a module, all variables declared at the top-level
> in _any_ of the modules in the dependency graph must be initialized.
> This is observable because a module A can access a variable imported
> from module B (e.g. a function) at a point when module B's body hasn't
> been evaluated yet.
>
> We achieve this by implementing modules internally as generators with
> two states (not initialized, initialized).
>
> R=adamk@chromium.org
> BUG=v8:1569
> CQ_INCLUDE_TRYBOTS=master.tryserver.v8:v8_win_dbg
>
> Committed: https://crrev.com/f4dfb6fbe1cdd9a0f287a1a9c496e1f69f6f5d20
> Committed: https://crrev.com/8c52a411583e870bd5ed100864caa58f491c5d88
> Cr-Original-Commit-Position: refs/heads/master@{#39871}
> Cr-Commit-Position: refs/heads/master@{#39892}

TBR=adamk@chromium.org,mstarzinger@chromium.org,machenbach@chromium.org,neis@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:1569

Review-Url: https://codereview.chromium.org/2387593002
Cr-Commit-Position: refs/heads/master@{#39896}

[modify] https://crrev.com/669cb71e60eeaf34153549713ab02b415c84379f/src/ast/scopes.cc
[modify] https://crrev.com/669cb71e60eeaf34153549713ab02b415c84379f/src/bootstrapper.cc
[modify] https://crrev.com/669cb71e60eeaf34153549713ab02b415c84379f/src/contexts.h
[modify] https://crrev.com/669cb71e60eeaf34153549713ab02b415c84379f/src/globals.h
[modify] https://crrev.com/669cb71e60eeaf34153549713ab02b415c84379f/src/interpreter/bytecode-generator.cc
[modify] https://crrev.com/669cb71e60eeaf34153549713ab02b415c84379f/src/objects.cc
[modify] https://crrev.com/669cb71e60eeaf34153549713ab02b415c84379f/src/objects.h
[modify] https://crrev.com/669cb71e60eeaf34153549713ab02b415c84379f/src/parsing/parser.cc
[modify] https://crrev.com/669cb71e60eeaf34153549713ab02b415c84379f/src/parsing/parser.h
[modify] https://crrev.com/669cb71e60eeaf34153549713ab02b415c84379f/test/cctest/interpreter/bytecode_expectations/CallRuntime.golden
[delete] https://crrev.com/4a5f5d0991656a6aa45b0021a0f5ba6a7ceabe15/test/mjsunit/modules-error-trace.js
[delete] https://crrev.com/4a5f5d0991656a6aa45b0021a0f5ba6a7ceabe15/test/mjsunit/modules-init1.js
[delete] https://crrev.com/4a5f5d0991656a6aa45b0021a0f5ba6a7ceabe15/test/mjsunit/modules-init2.js
[delete] https://crrev.com/4a5f5d0991656a6aa45b0021a0f5ba6a7ceabe15/test/mjsunit/modules-init3.js
[delete] https://crrev.com/4a5f5d0991656a6aa45b0021a0f5ba6a7ceabe15/test/mjsunit/modules-skip-init1.js
[delete] https://crrev.com/4a5f5d0991656a6aa45b0021a0f5ba6a7ceabe15/test/mjsunit/modules-skip-init3.js

Project Member Comment 101 by bugdroid1@chromium.org, Sep 30 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/427242326cdb322fd8d6df1f80bb3f4a24733708

commit 427242326cdb322fd8d6df1f80bb3f4a24733708
Author: neis <neis@chromium.org>
Date: Fri Sep 30 07:53:43 2016

Reland: [modules] Properly initialize declared variables.

Before evaluating a module, all variables declared at the top-level
in _any_ of the modules in the dependency graph must be initialized.
This is observable because a module A can access a variable imported
from module B (e.g. a function) at a point when module B's body hasn't
been evaluated yet.

We achieve this by implementing modules internally as generators with
two states (not initialized, initialized).

R=adamk@chromium.org
BUG=v8:1569
CQ_INCLUDE_TRYBOTS=master.tryserver.v8:v8_win_dbg

Committed: https://crrev.com/f4dfb6fbe1cdd9a0f287a1a9c496e1f69f6f5d20
Committed: https://crrev.com/8c52a411583e870bd5ed100864caa58f491c5d88
Review-Url: https://codereview.chromium.org/2375793002
Cr-Original-Original-Commit-Position: refs/heads/master@{#39871}
Cr-Original-Commit-Position: refs/heads/master@{#39892}
Cr-Commit-Position: refs/heads/master@{#39900}

[modify] https://crrev.com/427242326cdb322fd8d6df1f80bb3f4a24733708/src/ast/scopes.cc
[modify] https://crrev.com/427242326cdb322fd8d6df1f80bb3f4a24733708/src/bootstrapper.cc
[modify] https://crrev.com/427242326cdb322fd8d6df1f80bb3f4a24733708/src/contexts.h
[modify] https://crrev.com/427242326cdb322fd8d6df1f80bb3f4a24733708/src/globals.h
[modify] https://crrev.com/427242326cdb322fd8d6df1f80bb3f4a24733708/src/interpreter/bytecode-generator.cc
[modify] https://crrev.com/427242326cdb322fd8d6df1f80bb3f4a24733708/src/objects.cc
[modify] https://crrev.com/427242326cdb322fd8d6df1f80bb3f4a24733708/src/objects.h
[modify] https://crrev.com/427242326cdb322fd8d6df1f80bb3f4a24733708/src/parsing/parser.cc
[modify] https://crrev.com/427242326cdb322fd8d6df1f80bb3f4a24733708/src/parsing/parser.h
[modify] https://crrev.com/427242326cdb322fd8d6df1f80bb3f4a24733708/test/cctest/interpreter/bytecode_expectations/CallRuntime.golden
[add] https://crrev.com/427242326cdb322fd8d6df1f80bb3f4a24733708/test/mjsunit/modules-error-trace.js
[add] https://crrev.com/427242326cdb322fd8d6df1f80bb3f4a24733708/test/mjsunit/modules-init1.js
[add] https://crrev.com/427242326cdb322fd8d6df1f80bb3f4a24733708/test/mjsunit/modules-init2.js
[add] https://crrev.com/427242326cdb322fd8d6df1f80bb3f4a24733708/test/mjsunit/modules-init3.js
[add] https://crrev.com/427242326cdb322fd8d6df1f80bb3f4a24733708/test/mjsunit/modules-skip-init1.js
[add] https://crrev.com/427242326cdb322fd8d6df1f80bb3f4a24733708/test/mjsunit/modules-skip-init3.js

Blockedon: 5483
Cc: neis@chromium.org
Blockedon: 5485
Blockedon: 5486
Blockedon: 5487
Blockedon: 5488
Project Member Comment 108 by bugdroid1@chromium.org, Oct 6 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/3aeaf497818ba84bff5afae2e0f3935e6b85291c

commit 3aeaf497818ba84bff5afae2e0f3935e6b85291c
Author: adamk <adamk@chromium.org>
Date: Thu Oct 06 19:32:23 2016

[modules] Add basic path normalization to d8's module loader

d8 now elides './' when constructing absolute paths.
'../' is still not normalized.

R=neis@chromium.org
BUG=v8:1569

Review-Url: https://codereview.chromium.org/2393243002
Cr-Commit-Position: refs/heads/master@{#40057}

[modify] https://crrev.com/3aeaf497818ba84bff5afae2e0f3935e6b85291c/src/d8.cc
[add] https://crrev.com/3aeaf497818ba84bff5afae2e0f3935e6b85291c/test/mjsunit/modules-relative-path.js

Project Member Comment 109 by bugdroid1@chromium.org, Oct 7 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/57ba0ae10eef8a21845c15f4a220e97043c8a933

commit 57ba0ae10eef8a21845c15f4a220e97043c8a933
Author: neis <neis@chromium.org>
Date: Fri Oct 07 19:37:04 2016

[modules] Implement namespace imports.

This implements namespace imports (import * as foo from "bar"), except for the
@@iterator property on namespace objects (to be done later).

R=adamk@chromium.org
BUG=v8:1569

Review-Url: https://codereview.chromium.org/2388153003
Cr-Commit-Position: refs/heads/master@{#40096}

[modify] https://crrev.com/57ba0ae10eef8a21845c15f4a220e97043c8a933/src/accessors.cc
[modify] https://crrev.com/57ba0ae10eef8a21845c15f4a220e97043c8a933/src/accessors.h
[modify] https://crrev.com/57ba0ae10eef8a21845c15f4a220e97043c8a933/src/ast/ast-types.cc
[modify] https://crrev.com/57ba0ae10eef8a21845c15f4a220e97043c8a933/src/bootstrapper.cc
[modify] https://crrev.com/57ba0ae10eef8a21845c15f4a220e97043c8a933/src/compiler/types.cc
[modify] https://crrev.com/57ba0ae10eef8a21845c15f4a220e97043c8a933/src/contexts.h
[modify] https://crrev.com/57ba0ae10eef8a21845c15f4a220e97043c8a933/src/factory.cc
[modify] https://crrev.com/57ba0ae10eef8a21845c15f4a220e97043c8a933/src/factory.h
[modify] https://crrev.com/57ba0ae10eef8a21845c15f4a220e97043c8a933/src/heap/objects-visiting.cc
[modify] https://crrev.com/57ba0ae10eef8a21845c15f4a220e97043c8a933/src/interpreter/bytecode-generator.cc
[modify] https://crrev.com/57ba0ae10eef8a21845c15f4a220e97043c8a933/src/interpreter/bytecode-generator.h
[modify] https://crrev.com/57ba0ae10eef8a21845c15f4a220e97043c8a933/src/objects-body-descriptors-inl.h
[modify] https://crrev.com/57ba0ae10eef8a21845c15f4a220e97043c8a933/src/objects-debug.cc
[modify] https://crrev.com/57ba0ae10eef8a21845c15f4a220e97043c8a933/src/objects-inl.h
[modify] https://crrev.com/57ba0ae10eef8a21845c15f4a220e97043c8a933/src/objects.cc
[modify] https://crrev.com/57ba0ae10eef8a21845c15f4a220e97043c8a933/src/objects.h
[modify] https://crrev.com/57ba0ae10eef8a21845c15f4a220e97043c8a933/src/runtime/runtime-object.cc
[modify] https://crrev.com/57ba0ae10eef8a21845c15f4a220e97043c8a933/src/runtime/runtime.h
[modify] https://crrev.com/57ba0ae10eef8a21845c15f4a220e97043c8a933/test/cctest/interpreter/bytecode_expectations/CallRuntime.golden
[add] https://crrev.com/57ba0ae10eef8a21845c15f4a220e97043c8a933/test/mjsunit/modules-namespace1.js
[add] https://crrev.com/57ba0ae10eef8a21845c15f4a220e97043c8a933/test/mjsunit/modules-namespace2.js
[add] https://crrev.com/57ba0ae10eef8a21845c15f4a220e97043c8a933/test/mjsunit/modules-namespace3.js
[add] https://crrev.com/57ba0ae10eef8a21845c15f4a220e97043c8a933/test/mjsunit/modules-namespace4.js
[modify] https://crrev.com/57ba0ae10eef8a21845c15f4a220e97043c8a933/test/mjsunit/modules-skip-2.js
[add] https://crrev.com/57ba0ae10eef8a21845c15f4a220e97043c8a933/test/mjsunit/modules-skip-namespace.js

Project Member Comment 110 by bugdroid1@chromium.org, Oct 10 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/9606a938a687ad8ff52e7b072c22ea25f716321a

commit 9606a938a687ad8ff52e7b072c22ea25f716321a
Author: neis <neis@chromium.org>
Date: Mon Oct 10 16:56:15 2016

[modules] Extend a namespace test.

Extend a test of namespace imports such that it accesses the object inside a
with statement (inside a sloppy function).

Drive-by-fix: remove duplicate initialization of embedder data (probably due to
bad merge).

R=adamk@chromium.org
BUG=v8:1569

Review-Url: https://codereview.chromium.org/2405603003
Cr-Commit-Position: refs/heads/master@{#40129}

[modify] https://crrev.com/9606a938a687ad8ff52e7b072c22ea25f716321a/src/factory.cc
[modify] https://crrev.com/9606a938a687ad8ff52e7b072c22ea25f716321a/test/mjsunit/modules-namespace4.js

Project Member Comment 111 by bugdroid1@chromium.org, Oct 10 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/9cf8fce74cf6e7afd6aea3f3545f6bb61572f277

commit 9cf8fce74cf6e7afd6aea3f3545f6bb61572f277
Author: adamk <adamk@chromium.org>
Date: Mon Oct 10 17:37:32 2016

[modules] Store Module metadata in per-Context EmbedderData

Unifies the approaches used for storing the specifier -> module mapping
and the module -> directory mapping, using std::unordered_maps for both
and storing them per-Context.

This requires adding a method to the v8::Module API to get a hash code
for a Module, but allows slimming down the API in return: gone are
SetEmbedderData/GetEmbedderData, along with the fourth argument
to ResolveModuleCallback.

Besides a simpler API, this allows d8 to get closer to the HTML loader,
which requires each Realm to have a persistent module map (though this
capability is not yet exercised by any tests).

BUG=v8:1569

Review-Url: https://codereview.chromium.org/2393303002
Cr-Commit-Position: refs/heads/master@{#40133}

[modify] https://crrev.com/9cf8fce74cf6e7afd6aea3f3545f6bb61572f277/include/v8.h
[modify] https://crrev.com/9cf8fce74cf6e7afd6aea3f3545f6bb61572f277/src/api.cc
[modify] https://crrev.com/9cf8fce74cf6e7afd6aea3f3545f6bb61572f277/src/d8.cc
[modify] https://crrev.com/9cf8fce74cf6e7afd6aea3f3545f6bb61572f277/src/d8.h
[modify] https://crrev.com/9cf8fce74cf6e7afd6aea3f3545f6bb61572f277/src/factory.cc
[modify] https://crrev.com/9cf8fce74cf6e7afd6aea3f3545f6bb61572f277/src/objects-debug.cc
[modify] https://crrev.com/9cf8fce74cf6e7afd6aea3f3545f6bb61572f277/src/objects-inl.h
[modify] https://crrev.com/9cf8fce74cf6e7afd6aea3f3545f6bb61572f277/src/objects-printer.cc
[modify] https://crrev.com/9cf8fce74cf6e7afd6aea3f3545f6bb61572f277/src/objects.cc
[modify] https://crrev.com/9cf8fce74cf6e7afd6aea3f3545f6bb61572f277/src/objects.h
[modify] https://crrev.com/9cf8fce74cf6e7afd6aea3f3545f6bb61572f277/test/cctest/test-modules.cc

Project Member Comment 112 by bugdroid1@chromium.org, Oct 10 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/8c575ac64c8bd7c734255b60051ca3d593f0ce09

commit 8c575ac64c8bd7c734255b60051ca3d593f0ce09
Author: neis <neis@chromium.org>
Date: Mon Oct 10 17:38:41 2016

[modules] Update test262 config and status file.

- Make testcfg.py ignore files ending in "_FIXTURE.js", which are not supposed
  to be tested standalone but only as imports to other modules.

- Refine test262.status to match where we are with the modules implementation.

BUG=v8:1569
R=adamk@chromium.org

Review-Url: https://codereview.chromium.org/2400713004
Cr-Commit-Position: refs/heads/master@{#40134}

[modify] https://crrev.com/8c575ac64c8bd7c734255b60051ca3d593f0ce09/test/test262/test262.status
[modify] https://crrev.com/8c575ac64c8bd7c734255b60051ca3d593f0ce09/test/test262/testcfg.py

Blockedon: 5045
Project Member Comment 114 by bugdroid1@chromium.org, Oct 10 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/cd6f1c98f989ef991da3ff465f183c1caa070918

commit cd6f1c98f989ef991da3ff465f183c1caa070918
Author: adamk <adamk@chromium.org>
Date: Mon Oct 10 23:53:11 2016

[d8] Fix LeakSanitizer failures on the bots due to ModuleEmbedderData

BUG=v8:1569
TBR=jochen@chromium.org

Review-Url: https://codereview.chromium.org/2403303002
Cr-Commit-Position: refs/heads/master@{#40143}

[modify] https://crrev.com/cd6f1c98f989ef991da3ff465f183c1caa070918/src/d8.cc

Project Member Comment 115 by bugdroid1@chromium.org, Oct 11 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/9da6f1203fafeb3bb2675a7510efc981256755c9

commit 9da6f1203fafeb3bb2675a7510efc981256755c9
Author: adamk <adamk@chromium.org>
Date: Tue Oct 11 00:23:40 2016

Revert of [d8] Fix LeakSanitizer failures on the bots due to ModuleEmbedderData (patchset #2 id:20001 of https://codereview.chromium.org/2403303002/ )

Reason for revert:
Still failing on auto-roll fyi bot

Original issue's description:
> [d8] Fix LeakSanitizer failures on the bots due to ModuleEmbedderData
>
> BUG=v8:1569
> TBR=jochen@chromium.org
>
> Committed: https://crrev.com/cd6f1c98f989ef991da3ff465f183c1caa070918
> Cr-Commit-Position: refs/heads/master@{#40143}

TBR=jochen@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:1569

Review-Url: https://codereview.chromium.org/2403103004
Cr-Commit-Position: refs/heads/master@{#40144}

[modify] https://crrev.com/9da6f1203fafeb3bb2675a7510efc981256755c9/src/d8.cc

Project Member Comment 116 by bugdroid1@chromium.org, Oct 11 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/127798897f1fc17c2225d04d32ad90d2a088a66e

commit 127798897f1fc17c2225d04d32ad90d2a088a66e
Author: adamk <adamk@chromium.org>
Date: Tue Oct 11 00:24:53 2016

Revert of [modules] Store Module metadata in per-Context EmbedderData (patchset #7 id:120001 of https://codereview.chromium.org/2393303002/ )

Reason for revert:
Fails under LeakSanitizer on auto-roll fyi bot:

https://build.chromium.org/p/client.v8.fyi/builders/Auto-roll%20-%20release%20process/builds/49447

Original issue's description:
> [modules] Store Module metadata in per-Context EmbedderData
>
> Unifies the approaches used for storing the specifier -> module mapping
> and the module -> directory mapping, using std::unordered_maps for both
> and storing them per-Context.
>
> This requires adding a method to the v8::Module API to get a hash code
> for a Module, but allows slimming down the API in return: gone are
> SetEmbedderData/GetEmbedderData, along with the fourth argument
> to ResolveModuleCallback.
>
> Besides a simpler API, this allows d8 to get closer to the HTML loader,
> which requires each Realm to have a persistent module map (though this
> capability is not yet exercised by any tests).
>
> BUG=v8:1569
>
> Committed: https://crrev.com/9cf8fce74cf6e7afd6aea3f3545f6bb61572f277
> Cr-Commit-Position: refs/heads/master@{#40133}

TBR=jochen@chromium.org,neis@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:1569

Review-Url: https://codereview.chromium.org/2406973003
Cr-Commit-Position: refs/heads/master@{#40145}

[modify] https://crrev.com/127798897f1fc17c2225d04d32ad90d2a088a66e/include/v8.h
[modify] https://crrev.com/127798897f1fc17c2225d04d32ad90d2a088a66e/src/api.cc
[modify] https://crrev.com/127798897f1fc17c2225d04d32ad90d2a088a66e/src/d8.cc
[modify] https://crrev.com/127798897f1fc17c2225d04d32ad90d2a088a66e/src/d8.h
[modify] https://crrev.com/127798897f1fc17c2225d04d32ad90d2a088a66e/src/factory.cc
[modify] https://crrev.com/127798897f1fc17c2225d04d32ad90d2a088a66e/src/objects-debug.cc
[modify] https://crrev.com/127798897f1fc17c2225d04d32ad90d2a088a66e/src/objects-inl.h
[modify] https://crrev.com/127798897f1fc17c2225d04d32ad90d2a088a66e/src/objects-printer.cc
[modify] https://crrev.com/127798897f1fc17c2225d04d32ad90d2a088a66e/src/objects.cc
[modify] https://crrev.com/127798897f1fc17c2225d04d32ad90d2a088a66e/src/objects.h
[modify] https://crrev.com/127798897f1fc17c2225d04d32ad90d2a088a66e/test/cctest/test-modules.cc

Project Member Comment 117 by bugdroid1@chromium.org, Oct 11 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/8d18f42faec1723d2f4e188a27d869b7b382c812

commit 8d18f42faec1723d2f4e188a27d869b7b382c812
Author: neis <neis@chromium.org>
Date: Tue Oct 11 16:26:17 2016

[modules] Simplify installation of @@toStringTag on namespace objects.

Install it as DataConstantDescriptor, not AccessorConstantDescriptor.

R=adamk@chromium.org
BUG=v8:1569

Review-Url: https://codereview.chromium.org/2410823002
Cr-Commit-Position: refs/heads/master@{#40180}

[modify] https://crrev.com/8d18f42faec1723d2f4e188a27d869b7b382c812/src/accessors.cc
[modify] https://crrev.com/8d18f42faec1723d2f4e188a27d869b7b382c812/src/accessors.h
[modify] https://crrev.com/8d18f42faec1723d2f4e188a27d869b7b382c812/src/bootstrapper.cc

Project Member Comment 118 by bugdroid1@chromium.org, Oct 11 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/a78afeb6cd9da579b2fbaa641bf44dee1bd7a345

commit a78afeb6cd9da579b2fbaa641bf44dee1bd7a345
Author: neis <neis@chromium.org>
Date: Tue Oct 11 16:28:54 2016

[modules] Add internal printer method for JSModuleNamespace.

R=adamk@chromium.org
BUG=v8:1569

Review-Url: https://codereview.chromium.org/2410003002
Cr-Commit-Position: refs/heads/master@{#40181}

[modify] https://crrev.com/a78afeb6cd9da579b2fbaa641bf44dee1bd7a345/src/objects-printer.cc
[modify] https://crrev.com/a78afeb6cd9da579b2fbaa641bf44dee1bd7a345/src/objects.h

Project Member Comment 119 by bugdroid1@chromium.org, Oct 11 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/4ff5c2a72fefb7d8d645672df46d3b5802902129

commit 4ff5c2a72fefb7d8d645672df46d3b5802902129
Author: neis <neis@chromium.org>
Date: Tue Oct 11 17:32:22 2016

[modules] Move runtime functions into new file (runtime-module.cc).

R=adamk@chromium.org
BUG=v8:1569

Review-Url: https://codereview.chromium.org/2404243002
Cr-Commit-Position: refs/heads/master@{#40184}

[modify] https://crrev.com/4ff5c2a72fefb7d8d645672df46d3b5802902129/BUILD.gn
[add] https://crrev.com/4ff5c2a72fefb7d8d645672df46d3b5802902129/src/runtime/runtime-module.cc
[modify] https://crrev.com/4ff5c2a72fefb7d8d645672df46d3b5802902129/src/runtime/runtime-object.cc
[modify] https://crrev.com/4ff5c2a72fefb7d8d645672df46d3b5802902129/src/v8.gyp

Project Member Comment 120 by bugdroid1@chromium.org, Oct 11 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/f95abf2b3c1abe81d27893a0f66ba0cc83368558

commit f95abf2b3c1abe81d27893a0f66ba0cc83368558
Author: neis <neis@chromium.org>
Date: Tue Oct 11 18:52:35 2016

[modules] Create own section in runtime.h.

Forgot to do that in 4ff5c2a72fefb7d8d645672df46d3b5802902129.

TBR=adamk@chromium.org
BUG=v8:1569
NOTRY=true

Review-Url: https://codereview.chromium.org/2411013002
Cr-Commit-Position: refs/heads/master@{#40185}

[modify] https://crrev.com/f95abf2b3c1abe81d27893a0f66ba0cc83368558/src/runtime/runtime.h

Project Member Comment 121 by bugdroid1@chromium.org, Oct 11 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/9d2051fc2896bcb771cfb41b2864601c6c40e299

commit 9d2051fc2896bcb771cfb41b2864601c6c40e299
Author: adamk <adamk@chromium.org>
Date: Tue Oct 11 19:22:03 2016

[modules] Store Module metadata in per-Context EmbedderData

This is a re-land of https://codereview.chromium.org/2393303002/ with
an additional call to DisposeModuleEmbedderData() added to fix lsan failures.

Unifies the approaches used for storing the specifier -> module mapping
and the module -> directory mapping, using std::unordered_maps for both
and storing them per-Context.

This requires adding a method to the v8::Module API to get a hash code
for a Module, but allows slimming down the API in return: gone are
SetEmbedderData/GetEmbedderData, along with the fourth argument
to ResolveModuleCallback.

Besides a simpler API, this allows d8 to get closer to the HTML loader,
which requires each Realm to have a persistent module map (though this
capability is not yet exercised by any tests).

BUG=v8:1569
TBR=neis@chromium.org,jochen@chromium.org

Review-Url: https://codereview.chromium.org/2405313002
Cr-Commit-Position: refs/heads/master@{#40186}

[modify] https://crrev.com/9d2051fc2896bcb771cfb41b2864601c6c40e299/include/v8.h
[modify] https://crrev.com/9d2051fc2896bcb771cfb41b2864601c6c40e299/src/api.cc
[modify] https://crrev.com/9d2051fc2896bcb771cfb41b2864601c6c40e299/src/d8.cc
[modify] https://crrev.com/9d2051fc2896bcb771cfb41b2864601c6c40e299/src/d8.h
[modify] https://crrev.com/9d2051fc2896bcb771cfb41b2864601c6c40e299/src/factory.cc
[modify] https://crrev.com/9d2051fc2896bcb771cfb41b2864601c6c40e299/src/objects-debug.cc
[modify] https://crrev.com/9d2051fc2896bcb771cfb41b2864601c6c40e299/src/objects-inl.h
[modify] https://crrev.com/9d2051fc2896bcb771cfb41b2864601c6c40e299/src/objects-printer.cc
[modify] https://crrev.com/9d2051fc2896bcb771cfb41b2864601c6c40e299/src/objects.cc
[modify] https://crrev.com/9d2051fc2896bcb771cfb41b2864601c6c40e299/src/objects.h
[modify] https://crrev.com/9d2051fc2896bcb771cfb41b2864601c6c40e299/test/cctest/test-modules.cc

Project Member Comment 122 by bugdroid1@chromium.org, Oct 13 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/dafe6867f33ab95cb113159e9088da905c8de37b

commit dafe6867f33ab95cb113159e9088da905c8de37b
Author: neis <neis@chromium.org>
Date: Thu Oct 13 13:34:50 2016

[modules] Implement @@iterator on namespace objects.

As part of this, introduce a new JSObject for iterating over the elements of a
FixedArray.

R=adamk@chromium.org,bmeurer@chromium.org
TBR=ulan@chromium.org
BUG=v8:1569

Review-Url: https://codereview.chromium.org/2407423002
Cr-Commit-Position: refs/heads/master@{#40265}

[modify] https://crrev.com/dafe6867f33ab95cb113159e9088da905c8de37b/src/ast/ast-types.cc
[modify] https://crrev.com/dafe6867f33ab95cb113159e9088da905c8de37b/src/bootstrapper.cc
[modify] https://crrev.com/dafe6867f33ab95cb113159e9088da905c8de37b/src/builtins/builtins-iterator.cc
[modify] https://crrev.com/dafe6867f33ab95cb113159e9088da905c8de37b/src/builtins/builtins.h
[modify] https://crrev.com/dafe6867f33ab95cb113159e9088da905c8de37b/src/compiler/types.cc
[modify] https://crrev.com/dafe6867f33ab95cb113159e9088da905c8de37b/src/contexts.h
[modify] https://crrev.com/dafe6867f33ab95cb113159e9088da905c8de37b/src/factory.cc
[modify] https://crrev.com/dafe6867f33ab95cb113159e9088da905c8de37b/src/factory.h
[modify] https://crrev.com/dafe6867f33ab95cb113159e9088da905c8de37b/src/heap/objects-visiting.cc
[modify] https://crrev.com/dafe6867f33ab95cb113159e9088da905c8de37b/src/objects-body-descriptors-inl.h
[modify] https://crrev.com/dafe6867f33ab95cb113159e9088da905c8de37b/src/objects-debug.cc
[modify] https://crrev.com/dafe6867f33ab95cb113159e9088da905c8de37b/src/objects-inl.h
[modify] https://crrev.com/dafe6867f33ab95cb113159e9088da905c8de37b/src/objects-printer.cc
[modify] https://crrev.com/dafe6867f33ab95cb113159e9088da905c8de37b/src/objects.h
[modify] https://crrev.com/dafe6867f33ab95cb113159e9088da905c8de37b/test/cctest/interpreter/bytecode_expectations/CallRuntime.golden
[modify] https://crrev.com/dafe6867f33ab95cb113159e9088da905c8de37b/test/mjsunit/modules-namespace1.js
[modify] https://crrev.com/dafe6867f33ab95cb113159e9088da905c8de37b/test/mjsunit/modules-namespace2.js
[modify] https://crrev.com/dafe6867f33ab95cb113159e9088da905c8de37b/test/test262/test262.status

Project Member Comment 123 by bugdroid1@chromium.org, Oct 17 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/4c364e63af9b87dd5c2925ddd237e3cf0c29c2ed

commit 4c364e63af9b87dd5c2925ddd237e3cf0c29c2ed
Author: neis <neis@chromium.org>
Date: Mon Oct 17 07:36:42 2016

[modules] Don't unnecessarily keep function alive after evaluation.

Also hide some implementation details behind abstract predicates and clean up the heap verifier functions.

R=adamk@chromium.org
BUG=v8:1569

Review-Url: https://codereview.chromium.org/2407183002
Cr-Commit-Position: refs/heads/master@{#40336}

[modify] https://crrev.com/4c364e63af9b87dd5c2925ddd237e3cf0c29c2ed/src/api.cc
[modify] https://crrev.com/4c364e63af9b87dd5c2925ddd237e3cf0c29c2ed/src/factory.cc
[modify] https://crrev.com/4c364e63af9b87dd5c2925ddd237e3cf0c29c2ed/src/objects-debug.cc
[modify] https://crrev.com/4c364e63af9b87dd5c2925ddd237e3cf0c29c2ed/src/objects-inl.h
[modify] https://crrev.com/4c364e63af9b87dd5c2925ddd237e3cf0c29c2ed/src/objects.cc
[modify] https://crrev.com/4c364e63af9b87dd5c2925ddd237e3cf0c29c2ed/src/objects.h
[modify] https://crrev.com/4c364e63af9b87dd5c2925ddd237e3cf0c29c2ed/test/cctest/interpreter/bytecode-expectations-printer.cc

Blockedon: 5547
Project Member Comment 125 by bugdroid1@chromium.org, Oct 21 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/dd614f55ce36f9bd12f429bd8b69f24e974d0547

commit dd614f55ce36f9bd12f429bd8b69f24e974d0547
Author: neis <neis@chromium.org>
Date: Fri Oct 21 13:39:28 2016

[modules] Check more invariants for Module objects in heap verifier.

R=adamk@chromium.org
BUG=v8:1569

Review-Url: https://chromiumcodereview.appspot.com/2442723002
Cr-Commit-Position: refs/heads/master@{#40508}

[modify] https://crrev.com/dd614f55ce36f9bd12f429bd8b69f24e974d0547/src/objects-debug.cc

Project Member Comment 126 by bugdroid1@chromium.org, Oct 21 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/cadfe092a25fd052294a45a2c5aabe34b475f534

commit cadfe092a25fd052294a45a2c5aabe34b475f534
Author: neis <neis@chromium.org>
Date: Fri Oct 21 14:23:58 2016

[modules] Fix bugs in assignments to exported variables.

- Add hole check if needed.
- Preserve the accumulator so that the result is the rhs.

R=adamk@chromium.org
BUG=v8:1569,v8:5547

Review-Url: https://chromiumcodereview.appspot.com/2438653003
Cr-Commit-Position: refs/heads/master@{#40510}

[modify] https://crrev.com/cadfe092a25fd052294a45a2c5aabe34b475f534/src/interpreter/bytecode-generator.cc
[modify] https://crrev.com/cadfe092a25fd052294a45a2c5aabe34b475f534/test/mjsunit/modules-init3.js
[modify] https://crrev.com/cadfe092a25fd052294a45a2c5aabe34b475f534/test/mjsunit/modules-skip-init3.js

Project Member Comment 127 by bugdroid1@chromium.org, Oct 24 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/3107fd0788271296cf51207c5eecd8d068f5aa40

commit 3107fd0788271296cf51207c5eecd8d068f5aa40
Author: neis <neis@chromium.org>
Date: Mon Oct 24 15:48:56 2016

[modules] Update test262.status after test262 upstream fix.

R=littledan@chromium.org,adamk@chromium.org
BUG=v8:1569

Review-Url: https://codereview.chromium.org/2440103002
Cr-Commit-Position: refs/heads/master@{#40537}

[modify] https://crrev.com/3107fd0788271296cf51207c5eecd8d068f5aa40/test/test262/test262.status

Blockedon: 5563
Project Member Comment 129 by bugdroid1@chromium.org, Oct 25 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/ee2f80c6bd7cf89b98149ef9d640f5f6fc52124d

commit ee2f80c6bd7cf89b98149ef9d640f5f6fc52124d
Author: neis <neis@chromium.org>
Date: Tue Oct 25 12:29:46 2016

[modules] Add partial support for debug-scopes.

Setting variables is not yet implemented..

R=adamk@chromium.org
BUG=v8:1569

Review-Url: https://codereview.chromium.org/2445683002
Cr-Commit-Position: refs/heads/master@{#40559}

[modify] https://crrev.com/ee2f80c6bd7cf89b98149ef9d640f5f6fc52124d/src/ast/scopeinfo.cc
[modify] https://crrev.com/ee2f80c6bd7cf89b98149ef9d640f5f6fc52124d/src/contexts.cc
[modify] https://crrev.com/ee2f80c6bd7cf89b98149ef9d640f5f6fc52124d/src/debug/debug-scopes.cc
[modify] https://crrev.com/ee2f80c6bd7cf89b98149ef9d640f5f6fc52124d/src/debug/debug-scopes.h
[modify] https://crrev.com/ee2f80c6bd7cf89b98149ef9d640f5f6fc52124d/src/debug/mirrors.js
[modify] https://crrev.com/ee2f80c6bd7cf89b98149ef9d640f5f6fc52124d/src/objects.h
[add] https://crrev.com/ee2f80c6bd7cf89b98149ef9d640f5f6fc52124d/test/mjsunit/modules-debug-scopes1.js
[add] https://crrev.com/ee2f80c6bd7cf89b98149ef9d640f5f6fc52124d/test/mjsunit/modules-debug-scopes2.js

Project Member Comment 130 by bugdroid1@chromium.org, Oct 25 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/de52faf948a9fac550f1ae3fd3f4a28fa8335652

commit de52faf948a9fac550f1ae3fd3f4a28fa8335652
Author: machenbach <machenbach@chromium.org>
Date: Tue Oct 25 12:55:25 2016

Revert of [modules] Add partial support for debug-scopes. (patchset #1 id:1 of https://codereview.chromium.org/2445683002/ )

Reason for revert:
Breaks https://build.chromium.org/p/client.v8/builders/V8%20Mac%20GC%20Stress/builds/9349

Original issue's description:
> [modules] Add partial support for debug-scopes.
>
> Setting variables is not yet implemented..
>
> R=adamk@chromium.org
> BUG=v8:1569

TBR=adamk@chromium.org,yangguo@chromium.org,neis@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:1569

Review-Url: https://codereview.chromium.org/2449883002
Cr-Commit-Position: refs/heads/master@{#40564}

[modify] https://crrev.com/de52faf948a9fac550f1ae3fd3f4a28fa8335652/src/ast/scopeinfo.cc
[modify] https://crrev.com/de52faf948a9fac550f1ae3fd3f4a28fa8335652/src/contexts.cc
[modify] https://crrev.com/de52faf948a9fac550f1ae3fd3f4a28fa8335652/src/debug/debug-scopes.cc
[modify] https://crrev.com/de52faf948a9fac550f1ae3fd3f4a28fa8335652/src/debug/debug-scopes.h
[modify] https://crrev.com/de52faf948a9fac550f1ae3fd3f4a28fa8335652/src/debug/mirrors.js
[modify] https://crrev.com/de52faf948a9fac550f1ae3fd3f4a28fa8335652/src/objects.h
[delete] https://crrev.com/f97b28f8b9678f9529acb21551a10f466a0b722e/test/mjsunit/modules-debug-scopes1.js
[delete] https://crrev.com/f97b28f8b9678f9529acb21551a10f466a0b722e/test/mjsunit/modules-debug-scopes2.js

Project Member Comment 131 by bugdroid1@chromium.org, Oct 25 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/9c558d7bd96810c2852feadf04dacd69160d0baf

commit 9c558d7bd96810c2852feadf04dacd69160d0baf
Author: neis <neis@chromium.org>
Date: Tue Oct 25 14:39:06 2016

Reland: [modules] Add partial support for debug-scopes.

Setting variables is not yet implemented.

R=adamk@chromium.org
BUG=v8:1569

Review-Url: https://codereview.chromium.org/2445683002
Cr-Commit-Position: refs/heads/master@{#40566}

[modify] https://crrev.com/9c558d7bd96810c2852feadf04dacd69160d0baf/src/ast/scopeinfo.cc
[modify] https://crrev.com/9c558d7bd96810c2852feadf04dacd69160d0baf/src/contexts.cc
[modify] https://crrev.com/9c558d7bd96810c2852feadf04dacd69160d0baf/src/debug/debug-scopes.cc
[modify] https://crrev.com/9c558d7bd96810c2852feadf04dacd69160d0baf/src/debug/debug-scopes.h
[modify] https://crrev.com/9c558d7bd96810c2852feadf04dacd69160d0baf/src/debug/mirrors.js
[modify] https://crrev.com/9c558d7bd96810c2852feadf04dacd69160d0baf/src/objects.h
[add] https://crrev.com/9c558d7bd96810c2852feadf04dacd69160d0baf/test/mjsunit/modules-debug-scopes1.js
[add] https://crrev.com/9c558d7bd96810c2852feadf04dacd69160d0baf/test/mjsunit/modules-debug-scopes2.js

Project Member Comment 132 by bugdroid1@chromium.org, Oct 26 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/038a81976efdfa399da1b872a349d344d1aba837

commit 038a81976efdfa399da1b872a349d344d1aba837
Author: neis <neis@chromium.org>
Date: Wed Oct 26 15:09:47 2016

[modules] Improve error messages.

For instance, when an import cannot be resolved, actually
point at the corresponding import statement.

BUG=v8:1569

Review-Url: https://codereview.chromium.org/2451153002
Cr-Commit-Position: refs/heads/master@{#40594}

[modify] https://crrev.com/038a81976efdfa399da1b872a349d344d1aba837/src/ast/modules.cc
[modify] https://crrev.com/038a81976efdfa399da1b872a349d344d1aba837/src/ast/modules.h
[modify] https://crrev.com/038a81976efdfa399da1b872a349d344d1aba837/src/ast/scopeinfo.cc
[modify] https://crrev.com/038a81976efdfa399da1b872a349d344d1aba837/src/messages.h
[modify] https://crrev.com/038a81976efdfa399da1b872a349d344d1aba837/src/objects-inl.h
[modify] https://crrev.com/038a81976efdfa399da1b872a349d344d1aba837/src/objects.cc
[modify] https://crrev.com/038a81976efdfa399da1b872a349d344d1aba837/src/objects.h
[modify] https://crrev.com/038a81976efdfa399da1b872a349d344d1aba837/src/parsing/parser.cc
[modify] https://crrev.com/038a81976efdfa399da1b872a349d344d1aba837/test/message/message.status
[rename] https://crrev.com/038a81976efdfa399da1b872a349d344d1aba837/test/message/modules-cycle1.js
[add] https://crrev.com/038a81976efdfa399da1b872a349d344d1aba837/test/message/modules-cycle1.out
[rename] https://crrev.com/038a81976efdfa399da1b872a349d344d1aba837/test/message/modules-cycle2.js
[add] https://crrev.com/038a81976efdfa399da1b872a349d344d1aba837/test/message/modules-cycle2.out
[copy] https://crrev.com/038a81976efdfa399da1b872a349d344d1aba837/test/message/modules-cycle3.js
[add] https://crrev.com/038a81976efdfa399da1b872a349d344d1aba837/test/message/modules-cycle3.out
[copy] https://crrev.com/038a81976efdfa399da1b872a349d344d1aba837/test/message/modules-cycle4.js
[add] https://crrev.com/038a81976efdfa399da1b872a349d344d1aba837/test/message/modules-cycle4.out
[copy] https://crrev.com/038a81976efdfa399da1b872a349d344d1aba837/test/message/modules-duplicate-export1.js
[add] https://crrev.com/038a81976efdfa399da1b872a349d344d1aba837/test/message/modules-duplicate-export1.out
[copy] https://crrev.com/038a81976efdfa399da1b872a349d344d1aba837/test/message/modules-duplicate-export2.js
[add] https://crrev.com/038a81976efdfa399da1b872a349d344d1aba837/test/message/modules-duplicate-export2.out
[copy] https://crrev.com/038a81976efdfa399da1b872a349d344d1aba837/test/message/modules-duplicate-export3.js
[add] https://crrev.com/038a81976efdfa399da1b872a349d344d1aba837/test/message/modules-duplicate-export3.out
[copy] https://crrev.com/038a81976efdfa399da1b872a349d344d1aba837/test/message/modules-duplicate-export4.js
[add] https://crrev.com/038a81976efdfa399da1b872a349d344d1aba837/test/message/modules-duplicate-export4.out
[copy] https://crrev.com/038a81976efdfa399da1b872a349d344d1aba837/test/message/modules-import-redeclare1.js
[add] https://crrev.com/038a81976efdfa399da1b872a349d344d1aba837/test/message/modules-import-redeclare1.out
[copy] https://crrev.com/038a81976efdfa399da1b872a349d344d1aba837/test/message/modules-import-redeclare2.js
[add] https://crrev.com/038a81976efdfa399da1b872a349d344d1aba837/test/message/modules-import-redeclare2.out
[copy] https://crrev.com/038a81976efdfa399da1b872a349d344d1aba837/test/message/modules-import-redeclare3.js
[add] https://crrev.com/038a81976efdfa399da1b872a349d344d1aba837/test/message/modules-import-redeclare3.out
[copy] https://crrev.com/038a81976efdfa399da1b872a349d344d1aba837/test/message/modules-import1.js
[add] https://crrev.com/038a81976efdfa399da1b872a349d344d1aba837/test/message/modules-import1.out
[copy] https://crrev.com/038a81976efdfa399da1b872a349d344d1aba837/test/message/modules-import2.js
[add] https://crrev.com/038a81976efdfa399da1b872a349d344d1aba837/test/message/modules-import2.out
[copy] https://crrev.com/038a81976efdfa399da1b872a349d344d1aba837/test/message/modules-import3.js
[add] https://crrev.com/038a81976efdfa399da1b872a349d344d1aba837/test/message/modules-import3.out
[copy] https://crrev.com/038a81976efdfa399da1b872a349d344d1aba837/test/message/modules-import4.js
[add] https://crrev.com/038a81976efdfa399da1b872a349d344d1aba837/test/message/modules-import4.out
[add] https://crrev.com/038a81976efdfa399da1b872a349d344d1aba837/test/message/modules-import5.js
[add] https://crrev.com/038a81976efdfa399da1b872a349d344d1aba837/test/message/modules-import5.out
[copy] https://crrev.com/038a81976efdfa399da1b872a349d344d1aba837/test/message/modules-import6.js
[add] https://crrev.com/038a81976efdfa399da1b872a349d344d1aba837/test/message/modules-import6.out
[copy] https://crrev.com/038a81976efdfa399da1b872a349d344d1aba837/test/message/modules-skip-cycle2.js
[copy] https://crrev.com/038a81976efdfa399da1b872a349d344d1aba837/test/message/modules-skip-cycle3.js
[copy] https://crrev.com/038a81976efdfa399da1b872a349d344d1aba837/test/message/modules-star-conflict1.js
[add] https://crrev.com/038a81976efdfa399da1b872a349d344d1aba837/test/message/modules-star-conflict1.out
[add] https://crrev.com/038a81976efdfa399da1b872a349d344d1aba837/test/message/modules-star-conflict2.js
[add] https://crrev.com/038a81976efdfa399da1b872a349d344d1aba837/test/message/modules-star-conflict2.out
[rename] https://crrev.com/038a81976efdfa399da1b872a349d344d1aba837/test/message/modules-star-default.js
[add] https://crrev.com/038a81976efdfa399da1b872a349d344d1aba837/test/message/modules-star-default.out
[rename] https://crrev.com/038a81976efdfa399da1b872a349d344d1aba837/test/message/modules-undefined-export1.js
[add] https://crrev.com/038a81976efdfa399da1b872a349d344d1aba837/test/message/modules-undefined-export1.out
[copy] https://crrev.com/038a81976efdfa399da1b872a349d344d1aba837/test/message/modules-undefined-export2.js
[add] https://crrev.com/038a81976efdfa399da1b872a349d344d1aba837/test/message/modules-undefined-export2.out
[modify] https://crrev.com/038a81976efdfa399da1b872a349d344d1aba837/test/mjsunit/mjsunit.status
[delete] https://crrev.com/35b3e01394145b4566539af0e4811e6716d765d8/test/mjsunit/modules-fail-1.js
[delete] https://crrev.com/35b3e01394145b4566539af0e4811e6716d765d8/test/mjsunit/modules-fail-2.js
[delete] https://crrev.com/35b3e01394145b4566539af0e4811e6716d765d8/test/mjsunit/modules-fail-4.js
[delete] https://crrev.com/35b3e01394145b4566539af0e4811e6716d765d8/test/mjsunit/modules-fail-5.js
[delete] https://crrev.com/35b3e01394145b4566539af0e4811e6716d765d8/test/mjsunit/modules-fail-7.js
[delete] https://crrev.com/35b3e01394145b4566539af0e4811e6716d765d8/test/mjsunit/modules-fail-8.js
[delete] https://crrev.com/35b3e01394145b4566539af0e4811e6716d765d8/test/mjsunit/modules-fail-cyclic-3.js
[delete] https://crrev.com/35b3e01394145b4566539af0e4811e6716d765d8/test/mjsunit/modules-fail-star-exports-conflict.js
[delete] https://crrev.com/35b3e01394145b4566539af0e4811e6716d765d8/test/mjsunit/modules-skip-cyclic-3.js
[delete] https://crrev.com/35b3e01394145b4566539af0e4811e6716d765d8/test/mjsunit/modules-skip-cyclic.js

Project Member Comment 133 by bugdroid1@chromium.org, Oct 27 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/84bbdc7648926fc143529a04d15b57b8d1a6cb89

commit 84bbdc7648926fc143529a04d15b57b8d1a6cb89
Author: adamk <adamk@chromium.org>
Date: Thu Oct 27 12:37:22 2016

[modules] Move MODULE variable back to Scopes, before resolution

Unlike other variable allocation logic, MODULE allocation does
not depend on resolution. So in order to give hole check elimination
(which runs during resolution) access to the information "is this
variable an import", simply allocate all modules variables prior
to resolution.

BUG=v8:1569

Review-Url: https://codereview.chromium.org/2458653002
Cr-Commit-Position: refs/heads/master@{#40621}

[modify] https://crrev.com/84bbdc7648926fc143529a04d15b57b8d1a6cb89/src/ast/scopes.cc
[modify] https://crrev.com/84bbdc7648926fc143529a04d15b57b8d1a6cb89/src/ast/scopes.h
[modify] https://crrev.com/84bbdc7648926fc143529a04d15b57b8d1a6cb89/src/parsing/parser.cc
[modify] https://crrev.com/84bbdc7648926fc143529a04d15b57b8d1a6cb89/src/parsing/parser.h

Project Member Comment 134 by bugdroid1@chromium.org, Oct 28 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/a017715d1d1daabbf8fcf731cd79120411b70d4c

commit a017715d1d1daabbf8fcf731cd79120411b70d4c
Author: neis <neis@chromium.org>
Date: Fri Oct 28 14:40:46 2016

[modules] Remove outdated TODO.

R=gsathya@chromium.org
BUG=v8:1569

Review-Url: https://codereview.chromium.org/2460883002
Cr-Commit-Position: refs/heads/master@{#40649}

[modify] https://crrev.com/a017715d1d1daabbf8fcf731cd79120411b70d4c/src/objects.cc

Project Member Comment 135 by bugdroid1@chromium.org, Nov 2 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/24b1c1abfc1b397b4fff8b91e0a4e750e7e55217

commit 24b1c1abfc1b397b4fff8b91e0a4e750e7e55217
Author: neis <neis@chromium.org>
Date: Wed Nov 02 09:30:24 2016

[modules] Add namespace import snippet to test-bytecode-generator.

R=rmcilroy@chromium.org
BUG=v8:1569

Review-Url: https://codereview.chromium.org/2460403002
Cr-Commit-Position: refs/heads/master@{#40694}

[modify] https://crrev.com/24b1c1abfc1b397b4fff8b91e0a4e750e7e55217/test/cctest/interpreter/bytecode_expectations/Modules.golden
[modify] https://crrev.com/24b1c1abfc1b397b4fff8b91e0a4e750e7e55217/test/cctest/interpreter/test-bytecode-generator.cc

Project Member Comment 136 by bugdroid1@chromium.org, Nov 4 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/1dd241c44bab3facea7abe5cb0e51e1315b376ce

commit 1dd241c44bab3facea7abe5cb0e51e1315b376ce
Author: neis <neis@chromium.org>
Date: Fri Nov 04 08:51:15 2016

[modules] Assign cell indices at validation time.

Instead of having a MODULE variable's index be 0 or 1, let it be the index of
its cell.  In this CL, we assign the indices but we continue to only use them to
distinguish imports from exports.  Actually using them to directly access the
cells will be done in a later CL.

R=adamk@chromium.org
BUG=v8:1569

Review-Url: https://codereview.chromium.org/2460233003
Cr-Commit-Position: refs/heads/master@{#40752}

[modify] https://crrev.com/1dd241c44bab3facea7abe5cb0e51e1315b376ce/src/ast/modules.cc
[modify] https://crrev.com/1dd241c44bab3facea7abe5cb0e51e1315b376ce/src/ast/modules.h
[modify] https://crrev.com/1dd241c44bab3facea7abe5cb0e51e1315b376ce/src/ast/scopeinfo.cc
[modify] https://crrev.com/1dd241c44bab3facea7abe5cb0e51e1315b376ce/src/ast/scopes.cc
[modify] https://crrev.com/1dd241c44bab3facea7abe5cb0e51e1315b376ce/src/ast/variables.h
[modify] https://crrev.com/1dd241c44bab3facea7abe5cb0e51e1315b376ce/src/debug/debug-scopes.cc
[modify] https://crrev.com/1dd241c44bab3facea7abe5cb0e51e1315b376ce/src/objects-inl.h
[modify] https://crrev.com/1dd241c44bab3facea7abe5cb0e51e1315b376ce/src/objects.cc
[modify] https://crrev.com/1dd241c44bab3facea7abe5cb0e51e1315b376ce/src/objects.h

Project Member Comment 137 by bugdroid1@chromium.org, Nov 4 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/43995e2fa876c9501f7eb9440d33999708f1428b

commit 43995e2fa876c9501f7eb9440d33999708f1428b
Author: neis <neis@chromium.org>
Date: Fri Nov 04 09:37:22 2016

[modules] Make ModuleInfoEntry a Struct rather than FixedArray.

It always has the same number of slots.

R=adamk@chromium.org
TBR=bmeurer@chromium.org
BUG=v8:1569

Review-Url: https://codereview.chromium.org/2460353002
Cr-Commit-Position: refs/heads/master@{#40754}

[modify] https://crrev.com/43995e2fa876c9501f7eb9440d33999708f1428b/include/v8.h
[modify] https://crrev.com/43995e2fa876c9501f7eb9440d33999708f1428b/src/ast/ast-types.cc
[modify] https://crrev.com/43995e2fa876c9501f7eb9440d33999708f1428b/src/ast/scopeinfo.cc
[modify] https://crrev.com/43995e2fa876c9501f7eb9440d33999708f1428b/src/compiler/types.cc
[modify] https://crrev.com/43995e2fa876c9501f7eb9440d33999708f1428b/src/factory.cc
[modify] https://crrev.com/43995e2fa876c9501f7eb9440d33999708f1428b/src/heap/heap.cc
[modify] https://crrev.com/43995e2fa876c9501f7eb9440d33999708f1428b/src/heap/heap.h
[modify] https://crrev.com/43995e2fa876c9501f7eb9440d33999708f1428b/src/objects-debug.cc
[modify] https://crrev.com/43995e2fa876c9501f7eb9440d33999708f1428b/src/objects-inl.h
[modify] https://crrev.com/43995e2fa876c9501f7eb9440d33999708f1428b/src/objects-printer.cc
[modify] https://crrev.com/43995e2fa876c9501f7eb9440d33999708f1428b/src/objects.h

Project Member Comment 138 by bugdroid1@chromium.org, Nov 7 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/9d6c6e5a666af9464935cb1b227186f480ecd264

commit 9d6c6e5a666af9464935cb1b227186f480ecd264
Author: neis <neis@chromium.org>
Date: Mon Nov 07 09:55:25 2016

[modules] Make handling of module info's regular exports more robust.

R=adamk@chromium.org
BUG=v8:1569

Review-Url: https://codereview.chromium.org/2473993002
Cr-Commit-Position: refs/heads/master@{#40795}

[modify] https://crrev.com/9d6c6e5a666af9464935cb1b227186f480ecd264/src/ast/modules.cc
[modify] https://crrev.com/9d6c6e5a666af9464935cb1b227186f480ecd264/src/ast/modules.h
[modify] https://crrev.com/9d6c6e5a666af9464935cb1b227186f480ecd264/src/ast/scopeinfo.cc
[modify] https://crrev.com/9d6c6e5a666af9464935cb1b227186f480ecd264/src/ast/scopes.cc
[modify] https://crrev.com/9d6c6e5a666af9464935cb1b227186f480ecd264/src/factory.cc
[modify] https://crrev.com/9d6c6e5a666af9464935cb1b227186f480ecd264/src/objects.cc
[modify] https://crrev.com/9d6c6e5a666af9464935cb1b227186f480ecd264/src/objects.h

Project Member Comment 139 by bugdroid1@chromium.org, Nov 7 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/21463f73e97deefe89177ce6b65a81e898c2acc6

commit 21463f73e97deefe89177ce6b65a81e898c2acc6
Author: neis <neis@chromium.org>
Date: Mon Nov 07 16:23:20 2016

[modules] Maintain array of cells for imports and local exports.

This makes use of the newly introduced cell indices to speed up variable
accesses. Imports and local exports are now directly stored in (separate)
arrays. In the future, we may merge the two arrays into a single one, or
even into the module context.

This CL also replaces the LoadImport and LoadExport runtime functions with
a single LoadVariable taking a variable index as argument (rather than a
name).

BUG=v8:1569

Review-Url: https://codereview.chromium.org/2465283004
Cr-Commit-Position: refs/heads/master@{#40808}

[modify] https://crrev.com/21463f73e97deefe89177ce6b65a81e898c2acc6/src/ast/modules.cc
[modify] https://crrev.com/21463f73e97deefe89177ce6b65a81e898c2acc6/src/ast/modules.h
[modify] https://crrev.com/21463f73e97deefe89177ce6b65a81e898c2acc6/src/debug/debug-scopes.cc
[modify] https://crrev.com/21463f73e97deefe89177ce6b65a81e898c2acc6/src/factory.cc
[modify] https://crrev.com/21463f73e97deefe89177ce6b65a81e898c2acc6/src/interpreter/bytecode-generator.cc
[modify] https://crrev.com/21463f73e97deefe89177ce6b65a81e898c2acc6/src/objects-inl.h
[modify] https://crrev.com/21463f73e97deefe89177ce6b65a81e898c2acc6/src/objects.cc
[modify] https://crrev.com/21463f73e97deefe89177ce6b65a81e898c2acc6/src/objects.h
[modify] https://crrev.com/21463f73e97deefe89177ce6b65a81e898c2acc6/src/runtime/runtime-module.cc
[modify] https://crrev.com/21463f73e97deefe89177ce6b65a81e898c2acc6/src/runtime/runtime.h
[modify] https://crrev.com/21463f73e97deefe89177ce6b65a81e898c2acc6/test/cctest/interpreter/bytecode_expectations/Modules.golden

Project Member Comment 140 by bugdroid1@chromium.org, Nov 8 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/dd155e47bd167b4bb536493579366f8035896233

commit dd155e47bd167b4bb536493579366f8035896233
Author: neis <neis@chromium.org>
Date: Tue Nov 08 11:01:03 2016

[ignition,modules] Introduce bytecodes for loading/storing module variables.

This introduces two new bytecodes LdaModuleVariable and StaModuleVariable,
replacing the corresponding runtime calls.

Support in the bytecode graph builder exists only in the form of runtime calls.

BUG=v8:1569

Review-Url: https://codereview.chromium.org/2471033004
Cr-Commit-Position: refs/heads/master@{#40825}

[modify] https://crrev.com/dd155e47bd167b4bb536493579366f8035896233/src/bailout-reason.h
[modify] https://crrev.com/dd155e47bd167b4bb536493579366f8035896233/src/compiler/bytecode-graph-builder.cc
[modify] https://crrev.com/dd155e47bd167b4bb536493579366f8035896233/src/interpreter/bytecode-array-builder.cc
[modify] https://crrev.com/dd155e47bd167b4bb536493579366f8035896233/src/interpreter/bytecode-array-builder.h
[modify] https://crrev.com/dd155e47bd167b4bb536493579366f8035896233/src/interpreter/bytecode-generator.cc
[modify] https://crrev.com/dd155e47bd167b4bb536493579366f8035896233/src/interpreter/bytecodes.h
[modify] https://crrev.com/dd155e47bd167b4bb536493579366f8035896233/src/interpreter/interpreter.cc
[modify] https://crrev.com/dd155e47bd167b4bb536493579366f8035896233/test/cctest/interpreter/bytecode_expectations/Modules.golden
[modify] https://crrev.com/dd155e47bd167b4bb536493579366f8035896233/test/unittests/interpreter/bytecode-array-builder-unittest.cc

Project Member Comment 141 by bugdroid1@chromium.org, Nov 8 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/cc3195abda56e56b05cf92c41b493055e9ba52ad

commit cc3195abda56e56b05cf92c41b493055e9ba52ad
Author: neis <neis@chromium.org>
Date: Tue Nov 08 11:45:04 2016

[modules] Disable Crankshaft for functions referencing module variables.

Also add a primitive mjsunit test that uses such a function optimized by
Turbofan.

R=mstarzinger@chromium.org
CC=adamk@chromium.org
BUG=v8:1569

Review-Url: https://codereview.chromium.org/2472143002
Cr-Commit-Position: refs/heads/master@{#40826}

[modify] https://crrev.com/cc3195abda56e56b05cf92c41b493055e9ba52ad/src/ast/ast-numbering.cc
[modify] https://crrev.com/cc3195abda56e56b05cf92c41b493055e9ba52ad/src/bailout-reason.h
[add] https://crrev.com/cc3195abda56e56b05cf92c41b493055e9ba52ad/test/mjsunit/modules-turbo.js

Project Member Comment 142 by bugdroid1@chromium.org, Nov 10 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/a9f593ef6ba936f07c034ce74e93a1bd9507df5f

commit a9f593ef6ba936f07c034ce74e93a1bd9507df5f
Author: neis <neis@chromium.org>
Date: Thu Nov 10 10:21:04 2016

[compiler,modules] Introduce JS operators for module loads and stores.

With this CL, the bytecode graph builder no longer translates module
loads/stores as runtime calls but in terms of two new JS operators.  These are
lowered in typed-lowering to a sequence of LoadField's.

R=bmeurer@chromium.org
CC=adamk@chromium.org
BUG=v8:1569

Review-Url: https://codereview.chromium.org/2489863003
Cr-Commit-Position: refs/heads/master@{#40881}

[modify] https://crrev.com/a9f593ef6ba936f07c034ce74e93a1bd9507df5f/src/compiler/access-builder.cc
[modify] https://crrev.com/a9f593ef6ba936f07c034ce74e93a1bd9507df5f/src/compiler/access-builder.h
[modify] https://crrev.com/a9f593ef6ba936f07c034ce74e93a1bd9507df5f/src/compiler/bytecode-graph-builder.cc
[modify] https://crrev.com/a9f593ef6ba936f07c034ce74e93a1bd9507df5f/src/compiler/js-generic-lowering.cc
[modify] https://crrev.com/a9f593ef6ba936f07c034ce74e93a1bd9507df5f/src/compiler/js-operator.cc
[modify] https://crrev.com/a9f593ef6ba936f07c034ce74e93a1bd9507df5f/src/compiler/js-operator.h
[modify] https://crrev.com/a9f593ef6ba936f07c034ce74e93a1bd9507df5f/src/compiler/js-typed-lowering.cc
[modify] https://crrev.com/a9f593ef6ba936f07c034ce74e93a1bd9507df5f/src/compiler/js-typed-lowering.h
[modify] https://crrev.com/a9f593ef6ba936f07c034ce74e93a1bd9507df5f/src/compiler/opcodes.h
[modify] https://crrev.com/a9f593ef6ba936f07c034ce74e93a1bd9507df5f/src/compiler/typer.cc
[modify] https://crrev.com/a9f593ef6ba936f07c034ce74e93a1bd9507df5f/src/compiler/verifier.cc

Project Member Comment 143 by bugdroid1@chromium.org, Nov 21 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/2e5a90fd024f9cf70b8fc5b55aee2c1f574288d3

commit 2e5a90fd024f9cf70b8fc5b55aee2c1f574288d3
Author: mstarzinger <mstarzinger@chromium.org>
Date: Mon Nov 21 14:18:13 2016

[test] Run module tests in all variants.

By now the compilation pipeline is flexible enough to run module tests
against all variants, we should no longer choose unsupported compilers
for modules. It also fixes the predicate checking for functions being
"resumable" in the {AstNumberingVisitor} heuristic.

R=neis@chromium.org
BUG=v8:1569

Review-Url: https://codereview.chromium.org/2517143002
Cr-Commit-Position: refs/heads/master@{#41144}

[modify] https://crrev.com/2e5a90fd024f9cf70b8fc5b55aee2c1f574288d3/src/ast/ast-numbering.cc
[modify] https://crrev.com/2e5a90fd024f9cf70b8fc5b55aee2c1f574288d3/test/cctest/cctest.status
[modify] https://crrev.com/2e5a90fd024f9cf70b8fc5b55aee2c1f574288d3/test/mjsunit/mjsunit.status
[modify] https://crrev.com/2e5a90fd024f9cf70b8fc5b55aee2c1f574288d3/test/test262/test262.status

Project Member Comment 144 by bugdroid1@chromium.org, Nov 22 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/ffe2fbf876836d84b0296a1486be54d68d2aed6d

commit ffe2fbf876836d84b0296a1486be54d68d2aed6d
Author: mstarzinger <mstarzinger@chromium.org>
Date: Tue Nov 22 11:35:58 2016

[test] Run module tests on the deopt fuzzer.

R=neis@chromium.org
BUG=v8:1569

Review-Url: https://codereview.chromium.org/2523693002
Cr-Commit-Position: refs/heads/master@{#41171}

[modify] https://crrev.com/ffe2fbf876836d84b0296a1486be54d68d2aed6d/test/mjsunit/mjsunit.status

Project Member Comment 145 by bugdroid1@chromium.org, Nov 23 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/f77dbef1ab24c5889c8ff3f2735e65fb4fa85335

commit f77dbef1ab24c5889c8ff3f2735e65fb4fa85335
Author: mstarzinger <mstarzinger@chromium.org>
Date: Wed Nov 23 12:01:01 2016

[test] Run module message tests in all variants.

R=neis@chromium.org
BUG=v8:1569

Review-Url: https://codereview.chromium.org/2528433005
Cr-Commit-Position: refs/heads/master@{#41211}

[modify] https://crrev.com/f77dbef1ab24c5889c8ff3f2735e65fb4fa85335/test/message/message.status

Project Member Comment 146 by bugdroid1@chromium.org, Nov 24 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/cde9f7bfedbff818fc05e5c7f723b108de4c6a4a

commit cde9f7bfedbff818fc05e5c7f723b108de4c6a4a
Author: neis <neis@chromium.org>
Date: Thu Nov 24 10:48:39 2016

[modules] Propagate module status when creating ParseInfo from SFI.

In the ParseInfo constructor that takes a SharedFunctionInfo, we must
set the module flag when the function represents a module.

BUG=v8:1569

Review-Url: https://codereview.chromium.org/2525013002
Cr-Commit-Position: refs/heads/master@{#41257}

[modify] https://crrev.com/cde9f7bfedbff818fc05e5c7f723b108de4c6a4a/src/parsing/parse-info.cc
[modify] https://crrev.com/cde9f7bfedbff818fc05e5c7f723b108de4c6a4a/test/mjsunit/mjsunit.status

Cc: yosin@chromium.org
Comment 148 by neis@chromium.org, Nov 30 2016
Blockedon: 5685
Project Member Comment 149 by bugdroid1@chromium.org, Dec 8 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/6505e022662d368e09e28148d24ab1d0a4887aa4

commit 6505e022662d368e09e28148d24ab1d0a4887aa4
Author: adamk <adamk@chromium.org>
Date: Thu Dec 08 08:43:32 2016

[modules] Remove outdated TODO in module namespace objects test

As of https://github.com/tc39/ecma262/commit/13906140a, the spec
now returns true when [[SetPrototypeOf]] is invoked with null
on a module namespace object.

R=neis@chromium.org
BUG=v8:1569

Review-Url: https://codereview.chromium.org/2557923004
Cr-Commit-Position: refs/heads/master@{#41575}

[modify] https://crrev.com/6505e022662d368e09e28148d24ab1d0a4887aa4/test/mjsunit/modules-namespace1.js

Project Member Comment 150 by bugdroid1@chromium.org, Dec 16 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/e3ad4f131b9453252f77f20046427959acf8d939

commit e3ad4f131b9453252f77f20046427959acf8d939
Author: neis <neis@chromium.org>
Date: Fri Dec 16 08:57:29 2016

[modules] Remove @@iterator on namespace objects.

TC39 decided at their last meeting to remove this feature.

R=adamk@chromium.org
TBR=ulan@chromium.org
BUG=v8:1569

Review-Url: https://codereview.chromium.org/2578053003
Cr-Commit-Position: refs/heads/master@{#41745}

[modify] https://crrev.com/e3ad4f131b9453252f77f20046427959acf8d939/src/ast/ast-types.cc
[modify] https://crrev.com/e3ad4f131b9453252f77f20046427959acf8d939/src/bootstrapper.cc
[modify] https://crrev.com/e3ad4f131b9453252f77f20046427959acf8d939/src/builtins/builtins-iterator.cc
[modify] https://crrev.com/e3ad4f131b9453252f77f20046427959acf8d939/src/builtins/builtins.h
[modify] https://crrev.com/e3ad4f131b9453252f77f20046427959acf8d939/src/compiler/types.cc
[modify] https://crrev.com/e3ad4f131b9453252f77f20046427959acf8d939/src/contexts.h
[modify] https://crrev.com/e3ad4f131b9453252f77f20046427959acf8d939/src/factory.cc
[modify] https://crrev.com/e3ad4f131b9453252f77f20046427959acf8d939/src/factory.h
[modify] https://crrev.com/e3ad4f131b9453252f77f20046427959acf8d939/src/heap/objects-visiting.cc
[modify] https://crrev.com/e3ad4f131b9453252f77f20046427959acf8d939/src/objects-body-descriptors-inl.h
[modify] https://crrev.com/e3ad4f131b9453252f77f20046427959acf8d939/src/objects-debug.cc
[modify] https://crrev.com/e3ad4f131b9453252f77f20046427959acf8d939/src/objects-inl.h
[modify] https://crrev.com/e3ad4f131b9453252f77f20046427959acf8d939/src/objects-printer.cc
[modify] https://crrev.com/e3ad4f131b9453252f77f20046427959acf8d939/src/objects.h
[modify] https://crrev.com/e3ad4f131b9453252f77f20046427959acf8d939/test/cctest/interpreter/bytecode_expectations/CallRuntime.golden
[modify] https://crrev.com/e3ad4f131b9453252f77f20046427959acf8d939/test/cctest/interpreter/bytecode_expectations/SuperCallAndSpread.golden
[modify] https://crrev.com/e3ad4f131b9453252f77f20046427959acf8d939/test/mjsunit/modules-namespace1.js
[modify] https://crrev.com/e3ad4f131b9453252f77f20046427959acf8d939/test/mjsunit/modules-namespace2.js
[modify] https://crrev.com/e3ad4f131b9453252f77f20046427959acf8d939/test/test262/test262.status

Project Member Comment 151 by bugdroid1@chromium.org, Jan 4
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/d946a27e039457514db31a9da319d72a33c4e732

commit d946a27e039457514db31a9da319d72a33c4e732
Author: neis <neis@chromium.org>
Date: Wed Jan 04 06:33:10 2017

[modules] Make @@toStringTag on namespace objects non-configurable.

See https://github.com/tc39/ecma262/pull/747.

R=adamk@chromium.org
BUG=v8:1569

Review-Url: https://codereview.chromium.org/2603193002
Cr-Commit-Position: refs/heads/master@{#42057}

[modify] https://crrev.com/d946a27e039457514db31a9da319d72a33c4e732/src/bootstrapper.cc
[modify] https://crrev.com/d946a27e039457514db31a9da319d72a33c4e732/test/mjsunit/modules-namespace1.js
[modify] https://crrev.com/d946a27e039457514db31a9da319d72a33c4e732/test/test262/test262.status

Is there a target release version yet?
v8 fully supports modules in its shell (d8) at this point; the bulk of the development now is on the Chromium side, so I'd recommend following https://bugs.chromium.org/p/chromium/issues/detail?id=594639 for ongoing work there.
Project Member Comment 154 by bugdroid1@chromium.org, Jan 12
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/aee244b0e115f4c3aef56055b739777dde94c3ac

commit aee244b0e115f4c3aef56055b739777dde94c3ac
Author: ishell <ishell@chromium.org>
Date: Thu Jan 12 21:40:04 2017

[modules] Define @@toStringTag on namespace object as a field.

The constant field tracking implies data constants to be stored
in fields instead of descriptor arrays. This CL does necessary
modifications to the JSModuleNamespace map setup.

BUG=v8:1569, v8:5495

Review-Url: https://codereview.chromium.org/2625093005
Cr-Commit-Position: refs/heads/master@{#42294}

[modify] https://crrev.com/aee244b0e115f4c3aef56055b739777dde94c3ac/src/bootstrapper.cc
[modify] https://crrev.com/aee244b0e115f4c3aef56055b739777dde94c3ac/src/factory.cc
[modify] https://crrev.com/aee244b0e115f4c3aef56055b739777dde94c3ac/src/objects-inl.h
[modify] https://crrev.com/aee244b0e115f4c3aef56055b739777dde94c3ac/src/objects-printer.cc
[modify] https://crrev.com/aee244b0e115f4c3aef56055b739777dde94c3ac/src/objects.h

Project Member Comment 155 by bugdroid1@chromium.org, Jan 13
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/9eb8714262ac66597d0642a3ab1a9ac1dedb9cb9

commit 9eb8714262ac66597d0642a3ab1a9ac1dedb9cb9
Author: neis <neis@chromium.org>
Date: Fri Jan 13 12:23:06 2017

[modules] Remove dead code.

TBR=adamk@chromium.org
BUG=v8:1569

Review-Url: https://codereview.chromium.org/2621413009
Cr-Commit-Position: refs/heads/master@{#42325}

[modify] https://crrev.com/9eb8714262ac66597d0642a3ab1a9ac1dedb9cb9/src/objects.h

Project Member Comment 156 by bugdroid1@chromium.org, Jan 17
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/01b684cf6869f52ff37b2a5d584314e07f7028a2

commit 01b684cf6869f52ff37b2a5d584314e07f7028a2
Author: rmcilroy <rmcilroy@chromium.org>
Date: Tue Jan 17 10:14:02 2017

[modules] Fix NewJSModuleNamespace to avoid GC being able to see incomplete JSModuleNamespace.

A GC could happen when creating the Module string, which would cause the
JSModuleNamespace to be seen in an incomplete state. Instead make this
string a root object so that we don't need to allocate it during
NewJSModuleNamespace construction.

BUG=v8:1569

Review-Url: https://codereview.chromium.org/2631223002
Cr-Commit-Position: refs/heads/master@{#42393}

[modify] https://crrev.com/01b684cf6869f52ff37b2a5d584314e07f7028a2/src/factory.cc
[modify] https://crrev.com/01b684cf6869f52ff37b2a5d584314e07f7028a2/src/heap-symbols.h

Project Member Comment 157 by bugdroid1@chromium.org, Jan 19
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/b0f5abbea372b0cc4d27f267de271766f5c8a11a

commit b0f5abbea372b0cc4d27f267de271766f5c8a11a
Author: neis <neis@chromium.org>
Date: Thu Jan 19 06:59:20 2017

[modules] Add an IsModule flag to ScriptOriginOptions.

Since the script origin is part of the key used in the compilation
cache, this ensures that the cache never confuses a module with a
non-module script.

BUG=v8:1569,v8:5685

Review-Url: https://codereview.chromium.org/2611643002
Cr-Commit-Position: refs/heads/master@{#42490}

[modify] https://crrev.com/b0f5abbea372b0cc4d27f267de271766f5c8a11a/include/v8.h
[modify] https://crrev.com/b0f5abbea372b0cc4d27f267de271766f5c8a11a/src/api.cc
[modify] https://crrev.com/b0f5abbea372b0cc4d27f267de271766f5c8a11a/src/bootstrapper.cc
[modify] https://crrev.com/b0f5abbea372b0cc4d27f267de271766f5c8a11a/src/compiler.cc
[modify] https://crrev.com/b0f5abbea372b0cc4d27f267de271766f5c8a11a/src/compiler.h
[modify] https://crrev.com/b0f5abbea372b0cc4d27f267de271766f5c8a11a/src/d8.cc
[modify] https://crrev.com/b0f5abbea372b0cc4d27f267de271766f5c8a11a/src/objects.h
[modify] https://crrev.com/b0f5abbea372b0cc4d27f267de271766f5c8a11a/test/cctest/compiler/test-linkage.cc
[modify] https://crrev.com/b0f5abbea372b0cc4d27f267de271766f5c8a11a/test/cctest/interpreter/bytecode-expectations-printer.cc
[modify] https://crrev.com/b0f5abbea372b0cc4d27f267de271766f5c8a11a/test/cctest/test-compiler.cc
[modify] https://crrev.com/b0f5abbea372b0cc4d27f267de271766f5c8a11a/test/cctest/test-modules.cc
[modify] https://crrev.com/b0f5abbea372b0cc4d27f267de271766f5c8a11a/test/cctest/test-serialize.cc

Comment 158 Deleted
Doesn't seem to work in macOS Chrome Canary. I tried

  /Applications/Google\ Chrome\ Canary.app/Contents/MacOS/Google\ Chrome\ Canary --harmony-modules

and I have an HTML file like this:

  <script type="module">
    async function main() {
      const imports = await import('./Foo.js')
      console.log(Foo)
    }
    main()
  </script>

Works in Safari Tech Preview and logs the class exported from Foo.js. How do I get it working in Chrome Canary?
Oops, Sorry, I meant my HTML file looks like this:

  <script type="module">
    import Foo from './Foo.js'
    console.log(Foo)
  </script>

That one works in Safari.
Project Member Comment 161 by bugdroid1@chromium.org, Jan 30
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/5ed733737e0241af2bf939fec1f82af24b5a0d52

commit 5ed733737e0241af2bf939fec1f82af24b5a0d52
Author: neis <neis@chromium.org>
Date: Mon Jan 30 09:41:15 2017

[modules] Update a test and status file to reflect recent spec changes.

R=adamk@chromium.org
BUG=v8:1569

Review-Url: https://codereview.chromium.org/2657773006
Cr-Commit-Position: refs/heads/master@{#42763}

[modify] https://crrev.com/5ed733737e0241af2bf939fec1f82af24b5a0d52/test/mjsunit/modules-namespace1.js
[modify] https://crrev.com/5ed733737e0241af2bf939fec1f82af24b5a0d52/test/test262/test262.status

Project Member Comment 162 by bugdroid1@chromium.org, Jan 31
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/d6db11fd181061f9ffce4431af5afec0dba2c82c

commit d6db11fd181061f9ffce4431af5afec0dba2c82c
Author: kozyatinskiy <kozyatinskiy@chromium.org>
Date: Tue Jan 31 00:19:41 2017

[inspector] added test infrastructure and test for es6 modules

Test just checks that all basic features are working correctly with modules.

BUG=v8:1569
R=dgozman@chromium.org,alph@chromium.org,adamk@chromium.org

Review-Url: https://codereview.chromium.org/2663743002
Cr-Commit-Position: refs/heads/master@{#42796}

[modify] https://crrev.com/d6db11fd181061f9ffce4431af5afec0dba2c82c/src/ast/scopes.cc
[modify] https://crrev.com/d6db11fd181061f9ffce4431af5afec0dba2c82c/test/inspector/debugger/get-possible-breakpoints-array-literal.js
[modify] https://crrev.com/d6db11fd181061f9ffce4431af5afec0dba2c82c/test/inspector/debugger/get-possible-breakpoints.js
[modify] https://crrev.com/d6db11fd181061f9ffce4431af5afec0dba2c82c/test/inspector/inspector-test.cc
[modify] https://crrev.com/d6db11fd181061f9ffce4431af5afec0dba2c82c/test/inspector/protocol-test.js
[add] https://crrev.com/d6db11fd181061f9ffce4431af5afec0dba2c82c/test/inspector/runtime/es6-module-expected.txt
[add] https://crrev.com/d6db11fd181061f9ffce4431af5afec0dba2c82c/test/inspector/runtime/es6-module.js
[modify] https://crrev.com/d6db11fd181061f9ffce4431af5afec0dba2c82c/test/inspector/task-runner.cc
[modify] https://crrev.com/d6db11fd181061f9ffce4431af5afec0dba2c82c/test/inspector/task-runner.h

Project Member Comment 163 by bugdroid1@chromium.org, Feb 3
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/9c7da663f93df1e6fa8a9e899f2bacbe2b7f8d8e

commit 9c7da663f93df1e6fa8a9e899f2bacbe2b7f8d8e
Author: kozyatinskiy <kozyatinskiy@chromium.org>
Date: Fri Feb 03 07:17:09 2017

[inspector] added experimental is_module flag for script parsed events

This flag is true when compiled script is ES6 module.

BUG=v8:1569
R=dgozman@chromium.org,adamk@chromium.org

Review-Url: https://codereview.chromium.org/2663973002
Cr-Commit-Position: refs/heads/master@{#42910}

[modify] https://crrev.com/9c7da663f93df1e6fa8a9e899f2bacbe2b7f8d8e/src/api.cc
[modify] https://crrev.com/9c7da663f93df1e6fa8a9e899f2bacbe2b7f8d8e/src/debug/debug-interface.h
[modify] https://crrev.com/9c7da663f93df1e6fa8a9e899f2bacbe2b7f8d8e/src/inspector/js_protocol.json
[modify] https://crrev.com/9c7da663f93df1e6fa8a9e899f2bacbe2b7f8d8e/src/inspector/v8-debugger-agent-impl.cc
[modify] https://crrev.com/9c7da663f93df1e6fa8a9e899f2bacbe2b7f8d8e/src/inspector/v8-debugger-script.cc
[modify] https://crrev.com/9c7da663f93df1e6fa8a9e899f2bacbe2b7f8d8e/src/inspector/v8-debugger-script.h
[add] https://crrev.com/9c7da663f93df1e6fa8a9e899f2bacbe2b7f8d8e/test/inspector/debugger/es6-module-script-parsed-expected.txt
[add] https://crrev.com/9c7da663f93df1e6fa8a9e899f2bacbe2b7f8d8e/test/inspector/debugger/es6-module-script-parsed.js
[modify] https://crrev.com/9c7da663f93df1e6fa8a9e899f2bacbe2b7f8d8e/test/inspector/debugger/script-on-after-compile-expected.txt
[modify] https://crrev.com/9c7da663f93df1e6fa8a9e899f2bacbe2b7f8d8e/test/inspector/debugger/script-parsed-for-runtime-evaluate-expected.txt
[modify] https://crrev.com/9c7da663f93df1e6fa8a9e899f2bacbe2b7f8d8e/test/inspector/protocol-test.js
[modify] https://crrev.com/9c7da663f93df1e6fa8a9e899f2bacbe2b7f8d8e/test/inspector/runtime/es6-module-expected.txt
[modify] https://crrev.com/9c7da663f93df1e6fa8a9e899f2bacbe2b7f8d8e/test/inspector/runtime/es6-module.js

Project Member Comment 164 by bugdroid1@chromium.org, Feb 3
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/6b6ed60155314fc608504b235382909ebedc23d8

commit 6b6ed60155314fc608504b235382909ebedc23d8
Author: kozyatinskiy <kozyatinskiy@chromium.org>
Date: Fri Feb 03 22:10:04 2017

[inspector] return meaningful error on Debug.setScriptSource for ES module

BUG=v8:1569
R=dgozman@chromium.org,alph@chromium.org

Review-Url: https://codereview.chromium.org/2669713002
Cr-Commit-Position: refs/heads/master@{#42935}

[modify] https://crrev.com/6b6ed60155314fc608504b235382909ebedc23d8/src/inspector/v8-debugger-agent-impl.cc
[add] https://crrev.com/6b6ed60155314fc608504b235382909ebedc23d8/test/inspector/debugger/es6-module-set-script-source-expected.txt
[add] https://crrev.com/6b6ed60155314fc608504b235382909ebedc23d8/test/inspector/debugger/es6-module-set-script-source.js
[modify] https://crrev.com/6b6ed60155314fc608504b235382909ebedc23d8/test/inspector/debugger/set-script-source-exception-expected.txt

Comment 165 Deleted
Bogdan Padalko asked me to post this comment by email:

I currently work on php-v8 (https://github.com/pinepain/php-v8) to add experimental modules support. 

Is it possible to add data as an optional third parameter to Module::Instantiate which will be then passed as a fourth parameters to  Module::ResolveCallback callback:

  V8_WARN_UNUSED_RESULT bool Instantiate(Local<Context> context,
                                         ResolveCallback callback,
                                         Local<Value> data = Local<Value>());

and

  typedef MaybeLocal<Module> (*ResolveCallback)(Local<Context> context,
                                                Local<String> specifier,
                                                Local<Module> referrer,
                                                Local<Value> data);

I'd benefit from it a lot to pass PHP callback. I guess all embedders would benefit from this.

Also, it would be quite nice for embedding purposses to be able to set internal fields on Module, like on Context to associate embedders data.
Blockedon: 5979
Thanks for posting it for me and taking care, for some reason I wasn't able to get in with 3rd party cookie disabled.

Blockedon: 5978
Comment 170 Deleted
Project Member Comment 171 by bugdroid1@chromium.org, Feb 21
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/abb9eda40d2500238432ed2c64c4491ffbaa9263

commit abb9eda40d2500238432ed2c64c4491ffbaa9263
Author: adamk <adamk@chromium.org>
Date: Tue Feb 21 18:25:18 2017

[api] Use CHECK instead of DCHECK for IsModule tests in ScriptCompiler

This is such a mis-use of the API that it's important to fail fast:
this patch was prompted by a bug report from a Node.js developer
trying to use CompileModule() without passing a properly
module-tagged ScriptOrigin.

R=jochen@chromium.org, neis@chromium.org
BUG=v8:1569

Review-Url: https://codereview.chromium.org/2695713014
Cr-Commit-Position: refs/heads/master@{#43354}

[modify] https://crrev.com/abb9eda40d2500238432ed2c64c4491ffbaa9263/src/api.cc

Project Member Comment 172 by bugdroid1@chromium.org, Feb 23
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/32f60470d527116be7411756c02e4709eeae410f

commit 32f60470d527116be7411756c02e4709eeae410f
Author: neis <neis@chromium.org>
Date: Thu Feb 23 17:10:15 2017

[modules] When debug-printing a module, print its origin if possible.

BUG=v8:1569

Review-Url: https://codereview.chromium.org/2711123002
Cr-Commit-Position: refs/heads/master@{#43392}

[modify] https://crrev.com/32f60470d527116be7411756c02e4709eeae410f/src/objects-printer.cc

Project Member Comment 173 by bugdroid1@chromium.org, Feb 28
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/59c9e6ff6915f844cc26821c590001226a399846

commit 59c9e6ff6915f844cc26821c590001226a399846
Author: Georg Neis <neis@chromium.org>
Date: Tue Feb 28 19:00:58 2017

[modules] Fix bug in Module::Instantiate.

The order in which things were done wasn't quite correct and lead
to wrong behaviour for certain circular module graphs.

BUG=v8:1569,chromium:694566

Change-Id: I291186e261268c853a30ad891ff362904e0b28ef
Reviewed-on: https://chromium-review.googlesource.com/447399
Reviewed-by: Adam Klein <adamk@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#43497}
[modify] https://crrev.com/59c9e6ff6915f844cc26821c590001226a399846/src/factory.cc
[modify] https://crrev.com/59c9e6ff6915f844cc26821c590001226a399846/src/objects-debug.cc
[modify] https://crrev.com/59c9e6ff6915f844cc26821c590001226a399846/src/objects-inl.h
[modify] https://crrev.com/59c9e6ff6915f844cc26821c590001226a399846/src/objects.cc
[modify] https://crrev.com/59c9e6ff6915f844cc26821c590001226a399846/src/objects.h
[add] https://crrev.com/59c9e6ff6915f844cc26821c590001226a399846/test/message/modules-cycle5.js
[add] https://crrev.com/59c9e6ff6915f844cc26821c590001226a399846/test/message/modules-cycle5.out
[add] https://crrev.com/59c9e6ff6915f844cc26821c590001226a399846/test/message/modules-cycle6.js
[add] https://crrev.com/59c9e6ff6915f844cc26821c590001226a399846/test/message/modules-cycle6.out
[add] https://crrev.com/59c9e6ff6915f844cc26821c590001226a399846/test/message/modules-skip-cycle5.js
[add] https://crrev.com/59c9e6ff6915f844cc26821c590001226a399846/test/message/modules-skip-cycle6.js
[add] https://crrev.com/59c9e6ff6915f844cc26821c590001226a399846/test/mjsunit/modules-cycle.js
[add] https://crrev.com/59c9e6ff6915f844cc26821c590001226a399846/test/mjsunit/modules-skip-cycle.js

Project Member Comment 174 by bugdroid1@chromium.org, Feb 28
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/ae66dcbec0b2457d5c050e1869a2de18925e23e1

commit ae66dcbec0b2457d5c050e1869a2de18925e23e1
Author: Georg Neis <neis@chromium.org>
Date: Tue Feb 28 19:02:32 2017

[modules] Make Module::Evaluate return the completion value.

This is more useful than always returning undefined.

BUG=v8:1569,v8:5978

Change-Id: Id10cf87f7865db1a85de412460eaead4e4bf3b62
Reviewed-on: https://chromium-review.googlesource.com/446846
Reviewed-by: Adam Klein <adamk@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#43498}
[modify] https://crrev.com/ae66dcbec0b2457d5c050e1869a2de18925e23e1/include/v8.h
[modify] https://crrev.com/ae66dcbec0b2457d5c050e1869a2de18925e23e1/src/objects-inl.h
[modify] https://crrev.com/ae66dcbec0b2457d5c050e1869a2de18925e23e1/src/objects.cc
[modify] https://crrev.com/ae66dcbec0b2457d5c050e1869a2de18925e23e1/src/objects.h
[modify] https://crrev.com/ae66dcbec0b2457d5c050e1869a2de18925e23e1/src/parsing/parser.cc
[modify] https://crrev.com/ae66dcbec0b2457d5c050e1869a2de18925e23e1/src/parsing/rewriter.cc
[modify] https://crrev.com/ae66dcbec0b2457d5c050e1869a2de18925e23e1/test/cctest/interpreter/bytecode_expectations/Modules.golden
[modify] https://crrev.com/ae66dcbec0b2457d5c050e1869a2de18925e23e1/test/cctest/test-modules.cc

Please consider upgrading priority to High. This feature request is going on 6 years now.
Labels: Priority-2
Why are we humans so bad at agreeing on specifications... of all the tech companies, the company that sells the most overpriced laptops/phone and has a site with a progressive web app score of 33/100 is releasing a ES6 module capable browser while the rest is still messing with bundlers and transpilers. Didn't we learn from shadow dom v0 that nobody will agree on anything unless somebody makes something that can be tested for real by many other people? Pen and paper modules only get you so far. Even if they released something buggy as hell they will be the one that did push everybody forward. Not saying it is easy at all just saying nobody can do this perfect on their first try.
Project Member Comment 178 by bugdroid1@chromium.org, Mar 27
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/cb3174632ee246d830cce969b9abb5e2879d2f58

commit cb3174632ee246d830cce969b9abb5e2879d2f58
Author: Georg Neis <neis@chromium.org>
Date: Mon Mar 27 06:58:54 2017

[test262] Update status file w.r.t. modules.

Bug: v8:1569, v8:5401
Change-Id: I6a223d20eb9e7e299712955a36c7b95762780604
Reviewed-on: https://chromium-review.googlesource.com/459601
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#44138}
[modify] https://crrev.com/cb3174632ee246d830cce969b9abb5e2879d2f58/test/test262/test262.status

Project Member Comment 179 by bugdroid1@chromium.org, Apr 19
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/486cd04f3d9a75acb4d9f929b333954b8f59cec0

commit 486cd04f3d9a75acb4d9f929b333954b8f59cec0
Author: neis <neis@chromium.org>
Date: Wed Apr 19 18:28:09 2017

[modules] Allow resolve-callback to signal failure.

When asked for a module that previously failed to compile or
instantiate, the embedder necessarily has to signal failure.  In this
case, we expect an exception to be scheduled, which we will rethrow.

BUG=v8:1569

Review-Url: https://codereview.chromium.org/2827733002
Cr-Commit-Position: refs/heads/master@{#44729}

[modify] https://crrev.com/486cd04f3d9a75acb4d9f929b333954b8f59cec0/include/v8.h
[modify] https://crrev.com/486cd04f3d9a75acb4d9f929b333954b8f59cec0/src/objects.cc
[modify] https://crrev.com/486cd04f3d9a75acb4d9f929b333954b8f59cec0/src/objects.h
[modify] https://crrev.com/486cd04f3d9a75acb4d9f929b333954b8f59cec0/test/cctest/test-modules.cc

Project Member Comment 180 by bugdroid1@chromium.org, Apr 24
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/6c0e81bd48a1db3183e0f94c04cb89708da2c61e

commit 6c0e81bd48a1db3183e0f94c04cb89708da2c61e
Author: neis <neis@chromium.org>
Date: Mon Apr 24 18:52:02 2017

[modules] Add a simple micro-benchmark for import/export accesses.

R=adamk@chromium.org
BUG=v8:1569

Review-Url: https://codereview.chromium.org/2833773002
Cr-Commit-Position: refs/heads/master@{#44811}

[modify] https://crrev.com/6c0e81bd48a1db3183e0f94c04cb89708da2c61e/test/js-perf-test/JSTests.json
[add] https://crrev.com/6c0e81bd48a1db3183e0f94c04cb89708da2c61e/test/js-perf-test/Modules/basic-export.js
[add] https://crrev.com/6c0e81bd48a1db3183e0f94c04cb89708da2c61e/test/js-perf-test/Modules/basic-import.js
[add] https://crrev.com/6c0e81bd48a1db3183e0f94c04cb89708da2c61e/test/js-perf-test/Modules/basic-namespace.js
[add] https://crrev.com/6c0e81bd48a1db3183e0f94c04cb89708da2c61e/test/js-perf-test/Modules/run.js
[add] https://crrev.com/6c0e81bd48a1db3183e0f94c04cb89708da2c61e/test/js-perf-test/Modules/value.js

Comment 181 Deleted
Project Member Comment 182 by bugdroid1@chromium.org, May 3
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/973ec26eb174ad434a04836b93aa739e320ae89d

commit 973ec26eb174ad434a04836b93aa739e320ae89d
Author: neis <neis@chromium.org>
Date: Wed May 03 18:34:36 2017

[modules] Factor out cell load into helper function.

This is just a refactoring, no changes in behavior.

BUG=v8:1569

Review-Url: https://codereview.chromium.org/2839623003
Cr-Commit-Position: refs/heads/master@{#45071}

[modify] https://crrev.com/973ec26eb174ad434a04836b93aa739e320ae89d/src/compiler/js-typed-lowering.cc
[modify] https://crrev.com/973ec26eb174ad434a04836b93aa739e320ae89d/src/compiler/js-typed-lowering.h
[modify] https://crrev.com/973ec26eb174ad434a04836b93aa739e320ae89d/src/objects.cc
[modify] https://crrev.com/973ec26eb174ad434a04836b93aa739e320ae89d/src/objects.h

Project Member Comment 183 by bugdroid1@chromium.org, May 4
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/24d7890151cdaae0bf373a30bc8fbd603bfbfa9a

commit 24d7890151cdaae0bf373a30bc8fbd603bfbfa9a
Author: neis <neis@chromium.org>
Date: Thu May 04 11:09:19 2017

[compiler][modules] Constant-fold loads of module cells.

1. Generalize context specialization such that the provided context
   can be any outer context of the function, not necessarily the
   immediate outer context.

2. Based on this: if function specialization is disabled, then
   specialize for the module context if there is one.

3. Extend typed lowering of module loads and stores such that if
   the operand is a Module constant, we constant-fold the cell load.
   That is, a JSLoadModule with a Module HeapConstant input becomes
   a LoadField with a Cell HeapConstant input, and similarly for
   JSStoreModule.

BUG=v8:1569

Review-Url: https://codereview.chromium.org/2841613002
Cr-Commit-Position: refs/heads/master@{#45083}

[modify] https://crrev.com/24d7890151cdaae0bf373a30bc8fbd603bfbfa9a/src/compiler/js-context-specialization.cc
[modify] https://crrev.com/24d7890151cdaae0bf373a30bc8fbd603bfbfa9a/src/compiler/js-context-specialization.h
[modify] https://crrev.com/24d7890151cdaae0bf373a30bc8fbd603bfbfa9a/src/compiler/js-typed-lowering.cc
[modify] https://crrev.com/24d7890151cdaae0bf373a30bc8fbd603bfbfa9a/src/compiler/node-properties.cc
[modify] https://crrev.com/24d7890151cdaae0bf373a30bc8fbd603bfbfa9a/src/compiler/node-properties.h
[modify] https://crrev.com/24d7890151cdaae0bf373a30bc8fbd603bfbfa9a/src/compiler/pipeline.cc
[modify] https://crrev.com/24d7890151cdaae0bf373a30bc8fbd603bfbfa9a/src/compiler/types.cc
[modify] https://crrev.com/24d7890151cdaae0bf373a30bc8fbd603bfbfa9a/test/cctest/compiler/test-js-context-specialization.cc

Project Member Comment 184 by bugdroid1@chromium.org, Jun 2
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/c1862b9f4bf3a00b5a1065584e9017eb80db47df

commit c1862b9f4bf3a00b5a1065584e9017eb80db47df
Author: Georg Neis <neis@chromium.org>
Date: Fri Jun 02 15:42:45 2017

[debug, modules] Implement ScopeIterator::SetVariableValue for exported locals.

R=jgruber@chromium.org, kozyatinskiy@chromium.org

Bug: v8:1569
Change-Id: Ief7d96079adc03e62c129ac2bb9d9ccd6db65102
Reviewed-on: https://chromium-review.googlesource.com/522664
Commit-Queue: Georg Neis <neis@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45693}
[modify] https://crrev.com/c1862b9f4bf3a00b5a1065584e9017eb80db47df/src/debug/debug-scopes.cc
[modify] https://crrev.com/c1862b9f4bf3a00b5a1065584e9017eb80db47df/src/debug/debug-scopes.h
[add] https://crrev.com/c1862b9f4bf3a00b5a1065584e9017eb80db47df/test/debugger/debug/debug-modules-set-variable-value.js

Project Member Comment 185 by bugdroid1@chromium.org, Jun 2
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/90b68baabc5ba545de2a73047f9beaac8b5bc0b5

commit 90b68baabc5ba545de2a73047f9beaac8b5bc0b5
Author: neis <neis@chromium.org>
Date: Fri Jun 02 17:36:00 2017

[modules] Teach JSObject::ReferencesObject about module contexts.

A module context holds the module object in its extension slot, which should not be recursed on (it's not even a JSObject).

(I don't know how this code path can be triggered, though.)

R=adamk@chromium.org
BUG=v8:1569

Review-Url: https://codereview.chromium.org/2919063002
Cr-Commit-Position: refs/heads/master@{#45695}

[modify] https://crrev.com/90b68baabc5ba545de2a73047f9beaac8b5bc0b5/src/objects.cc

Project Member Comment 186 by bugdroid1@chromium.org, Jun 15
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/e53fdff9da062457405d696796d5e93b9cfd854a

commit e53fdff9da062457405d696796d5e93b9cfd854a
Author: Georg Neis <neis@chromium.org>
Date: Thu Jun 15 15:46:48 2017

[modules] Fix setting variables via debug-scopes.

I incorrectly assumed that ScopeIterator::SetModuleVariableValue gets called
when the frame is the module function.

R=jgruber@chromium.org, kozyatinskiy@chromium.org

Bug: v8:1569, v8:6484
Change-Id: I1fbad8ccde57280149547c78e679527f7a0c89dd
Reviewed-on: https://chromium-review.googlesource.com/535620
Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45961}
[modify] https://crrev.com/e53fdff9da062457405d696796d5e93b9cfd854a/src/debug/debug-scopes.cc
[modify] https://crrev.com/e53fdff9da062457405d696796d5e93b9cfd854a/src/objects/scope-info.cc
[modify] https://crrev.com/e53fdff9da062457405d696796d5e93b9cfd854a/test/debugger/debug/debug-modules-set-variable-value.js

Project Member Comment 187 by bugdroid1@chromium.org, Jun 21
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/4f065cd141fede7d7249d2816778c518096e71f6

commit 4f065cd141fede7d7249d2816778c518096e71f6
Author: Georg Neis <neis@chromium.org>
Date: Wed Jun 21 14:59:47 2017

[test262] Remove outdated SKIPs from status file.

R=littledan@chromium.org

Bug: v8:1569
Cq-Include-Trybots: master.tryserver.v8:v8_linux_noi18n_rel_ng
Change-Id: I9c598afca288c68a64bf15c39e1043c6c37b6add
Reviewed-on: https://chromium-review.googlesource.com/543139
Reviewed-by: Daniel Ehrenberg <littledan@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#46100}
[modify] https://crrev.com/4f065cd141fede7d7249d2816778c518096e71f6/test/test262/test262.status

Project Member Comment 188 by bugdroid1@chromium.org, Jun 28
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/d02cb6f0ff7fb5b7bb818a436df7de2f7e353d64

commit d02cb6f0ff7fb5b7bb818a436df7de2f7e353d64
Author: Georg Neis <neis@chromium.org>
Date: Wed Jun 28 14:24:37 2017

[modules] Implement the new semantics of instantiation and evaluation.

This implements the changes proposed at
https://github.com/tc39/ecma262/pull/916.
The API will be extended in a follow-up CL.

R=adamk@chromium.org

Bug: v8:1569
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
Change-Id: I79476b5b674c924fea390dff1b9bee7f86a111c6
Reviewed-on: https://chromium-review.googlesource.com/544970
Reviewed-by: Adam Klein <adamk@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#46289}
[modify] https://crrev.com/d02cb6f0ff7fb5b7bb818a436df7de2f7e353d64/src/api.cc
[modify] https://crrev.com/d02cb6f0ff7fb5b7bb818a436df7de2f7e353d64/src/factory.cc
[modify] https://crrev.com/d02cb6f0ff7fb5b7bb818a436df7de2f7e353d64/src/objects-debug.cc
[modify] https://crrev.com/d02cb6f0ff7fb5b7bb818a436df7de2f7e353d64/src/objects-inl.h
[modify] https://crrev.com/d02cb6f0ff7fb5b7bb818a436df7de2f7e353d64/src/objects-printer.cc
[modify] https://crrev.com/d02cb6f0ff7fb5b7bb818a436df7de2f7e353d64/src/objects.cc
[modify] https://crrev.com/d02cb6f0ff7fb5b7bb818a436df7de2f7e353d64/src/objects.h
[modify] https://crrev.com/d02cb6f0ff7fb5b7bb818a436df7de2f7e353d64/src/zone/zone-containers.h
[modify] https://crrev.com/d02cb6f0ff7fb5b7bb818a436df7de2f7e353d64/test/cctest/interpreter/bytecode-expectations-printer.cc
[add] https://crrev.com/d02cb6f0ff7fb5b7bb818a436df7de2f7e353d64/test/mjsunit/harmony/import-from-compilation-errored.js
[add] https://crrev.com/d02cb6f0ff7fb5b7bb818a436df7de2f7e353d64/test/mjsunit/harmony/import-from-evaluation-errored.js
[add] https://crrev.com/d02cb6f0ff7fb5b7bb818a436df7de2f7e353d64/test/mjsunit/harmony/import-from-fetch-errored.js
[add] https://crrev.com/d02cb6f0ff7fb5b7bb818a436df7de2f7e353d64/test/mjsunit/harmony/import-from-instantiation-errored.js
[add] https://crrev.com/d02cb6f0ff7fb5b7bb818a436df7de2f7e353d64/test/mjsunit/harmony/modules-skip-10.js
[add] https://crrev.com/d02cb6f0ff7fb5b7bb818a436df7de2f7e353d64/test/mjsunit/harmony/modules-skip-11.js
[add] https://crrev.com/d02cb6f0ff7fb5b7bb818a436df7de2f7e353d64/test/mjsunit/harmony/modules-skip-12.js

Project Member Comment 189 by bugdroid1@chromium.org, Jun 28
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/a209dcf6a151b0bc26aace1b49507af255b948b2

commit a209dcf6a151b0bc26aace1b49507af255b948b2
Author: Georg Neis <neis@chromium.org>
Date: Wed Jun 28 15:54:57 2017

[api] Expose a module's status and exception.

V8 now takes care of recording a module's status, as proposed
in https://github.com/tc39/ecma262/pull/916.

R=adamk@chromium.org

Bug: v8:1569, chromium:594639
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
Change-Id: Id884f1c817e1dc3eea79a5d5a7f5cd996db1dbb0
Reviewed-on: https://chromium-review.googlesource.com/548500
Commit-Queue: Georg Neis <neis@chromium.org>
Reviewed-by: Adam Klein <adamk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#46293}
[modify] https://crrev.com/a209dcf6a151b0bc26aace1b49507af255b948b2/include/v8.h
[modify] https://crrev.com/a209dcf6a151b0bc26aace1b49507af255b948b2/src/api.cc
[modify] https://crrev.com/a209dcf6a151b0bc26aace1b49507af255b948b2/test/cctest/test-modules.cc

Project Member Comment 190 by bugdroid1@chromium.org, Jun 28
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/5e62c1fba3195d240367ff4addd558de081740e5

commit 5e62c1fba3195d240367ff4addd558de081740e5
Author: Georg Neis <neis@chromium.org>
Date: Wed Jun 28 16:02:22 2017

[modules, cleanup] Reuse existing zone.

... instead of creating a new one in each recursive call.

R=adamk@chromium.org

Bug: v8:1569
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
Change-Id: Ieb2e76a5dec7bc0157b534a8b5f21acf6c86007c
Reviewed-on: https://chromium-review.googlesource.com/552548
Reviewed-by: Adam Klein <adamk@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#46294}
[modify] https://crrev.com/5e62c1fba3195d240367ff4addd558de081740e5/src/objects.cc
[modify] https://crrev.com/5e62c1fba3195d240367ff4addd558de081740e5/src/objects.h

Project Member Comment 191 by bugdroid1@chromium.org, Jun 29
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/365fd6613967039e33ddc598eb65dc690f84edad

commit 365fd6613967039e33ddc598eb65dc690f84edad
Author: Georg Neis <neis@chromium.org>
Date: Thu Jun 29 10:21:40 2017

[modules, cleanup] Simplify Print().

R=adamk@chromium.org

Bug: v8:1569
Change-Id: Idf069e7c8dac4a064eacf6bd1db1df3314988e6a
Reviewed-on: https://chromium-review.googlesource.com/553261
Reviewed-by: Adam Klein <adamk@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#46313}
[modify] https://crrev.com/365fd6613967039e33ddc598eb65dc690f84edad/src/objects-printer.cc

Sign in to add a comment