New issue
Advanced search Search tips

Issue 727299 link

Starred by 4 users

Issue metadata

Status: Fixed
Owner:
Closed: Jul 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 1
Type: Bug

Blocking:
issue 594639
issue 735833



Sign in to add a comment

Fix error handling of module scripts

Project Member Reported by hirosh...@chromium.org, May 29 2017

Issue description

Comment 1 by kouhei@chromium.org, May 31 2017

Cc: -kouhei@chromium.org module-dev@chromium.org
Owner: kouhei@chromium.org

Comment 2 by kouhei@chromium.org, May 31 2017

Status: Started (was: Assigned)

Comment 3 by kouhei@chromium.org, May 31 2017

I'll start from:
- renaming instantiation_error_ -> error_
- #error-a-script impl.
- ScriptModule::CompileModule to take a ExceptionState
...
Project Member

Comment 4 by bugdroid1@chromium.org, Jun 5 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6db0969deafe90c56f576ac18de17b5e51113ab4

commit 6db0969deafe90c56f576ac18de17b5e51113ab4
Author: Kouhei Ueno <kouhei@chromium.org>
Date: Mon Jun 05 06:43:37 2017

[ES6 modules] Rename ModuleScript::{instantiation_,}{error_,state_}

Update name to match new name references in:
https://github.com/whatwg/html/commit/115763124a641e8814665c5014d28155f95ff441

Bug:  727299 
Change-Id: If18b541cac7338f04397e03fe9f1cf17f38bbf6e
Reviewed-on: https://chromium-review.googlesource.com/519223
Reviewed-by: Hiroki Nakagawa <nhiroki@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Kouhei Ueno <kouhei@chromium.org>
Cr-Commit-Position: refs/heads/master@{#476954}
[modify] https://crrev.com/6db0969deafe90c56f576ac18de17b5e51113ab4/third_party/WebKit/Source/core/dom/Modulator.h
[modify] https://crrev.com/6db0969deafe90c56f576ac18de17b5e51113ab4/third_party/WebKit/Source/core/dom/ModulatorImpl.cpp
[modify] https://crrev.com/6db0969deafe90c56f576ac18de17b5e51113ab4/third_party/WebKit/Source/core/dom/ModulatorImpl.h
[modify] https://crrev.com/6db0969deafe90c56f576ac18de17b5e51113ab4/third_party/WebKit/Source/core/dom/ModuleMapTest.cpp
[modify] https://crrev.com/6db0969deafe90c56f576ac18de17b5e51113ab4/third_party/WebKit/Source/core/dom/ModulePendingScript.cpp
[modify] https://crrev.com/6db0969deafe90c56f576ac18de17b5e51113ab4/third_party/WebKit/Source/core/dom/ModuleScript.cpp
[modify] https://crrev.com/6db0969deafe90c56f576ac18de17b5e51113ab4/third_party/WebKit/Source/core/dom/ModuleScript.h
[modify] https://crrev.com/6db0969deafe90c56f576ac18de17b5e51113ab4/third_party/WebKit/Source/core/dom/ScriptModuleResolverImpl.cpp
[modify] https://crrev.com/6db0969deafe90c56f576ac18de17b5e51113ab4/third_party/WebKit/Source/core/dom/ScriptModuleResolverImplTest.cpp
[modify] https://crrev.com/6db0969deafe90c56f576ac18de17b5e51113ab4/third_party/WebKit/Source/core/loader/modulescript/ModuleScriptLoaderTest.cpp
[modify] https://crrev.com/6db0969deafe90c56f576ac18de17b5e51113ab4/third_party/WebKit/Source/core/loader/modulescript/ModuleTreeLinker.cpp
[modify] https://crrev.com/6db0969deafe90c56f576ac18de17b5e51113ab4/third_party/WebKit/Source/core/loader/modulescript/ModuleTreeLinkerTest.cpp
[modify] https://crrev.com/6db0969deafe90c56f576ac18de17b5e51113ab4/third_party/WebKit/Source/core/testing/DummyModulator.cpp
[modify] https://crrev.com/6db0969deafe90c56f576ac18de17b5e51113ab4/third_party/WebKit/Source/core/testing/DummyModulator.h

Project Member

Comment 5 by bugdroid1@chromium.org, Jun 5 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/24a0e2bc7d7b746b7dd98feca32812f33a8dab3f

commit 24a0e2bc7d7b746b7dd98feca32812f33a8dab3f
Author: Kouhei Ueno <kouhei@chromium.org>
Date: Mon Jun 05 06:55:24 2017

[ES6 modules] Update SetErrorAndClearRecord to match spec

Update name to match the new
https://html.spec.whatwg.org/multipage/webappapis.html#error-a-module-script
procedure introduced in commit:
https://github.com/whatwg/html/commit/115763124a641e8814665c5014d28155f95ff441

Bug:  727299 ,  594639 
Change-Id: I72784a71341a74135b308b06becf041db345845e
Reviewed-on: https://chromium-review.googlesource.com/523050
Reviewed-by: Hiroki Nakagawa <nhiroki@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Commit-Queue: Kouhei Ueno <kouhei@chromium.org>
Cr-Commit-Position: refs/heads/master@{#476955}
[modify] https://crrev.com/24a0e2bc7d7b746b7dd98feca32812f33a8dab3f/third_party/WebKit/Source/core/dom/ModuleScript.cpp
[modify] https://crrev.com/24a0e2bc7d7b746b7dd98feca32812f33a8dab3f/third_party/WebKit/Source/core/dom/ModuleScript.h

Project Member

Comment 6 by bugdroid1@chromium.org, Jun 9 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/505cc74298100f7f54cfb8d95ce6cebfc92635c7

commit 505cc74298100f7f54cfb8d95ce6cebfc92635c7
Author: Kouhei Ueno <kouhei@chromium.org>
Date: Fri Jun 09 05:19:13 2017

[ES6 modules] Update #creating-a-module-script to record its compilation error

This CL updates Blink's impl of #creating-a-module-script to match
recent spec change: https://github.com/whatwg/html/pull/2595 .

Before this CL, ModuleScript::Create, the Blink's impl of #creating-a-module-script reported the compilation error to console.
After this CL, ModuleScript::Create records module script compilation error
to ModuleScript::error_, and stops reporting the error to console.

Tests: external/wpt/html/semantics/scripting-1/the-script-element/module/compilation-error-*.html
Bug:  727299 ,  594639 
Change-Id: Iad166780aa93db491abe1c5185fb2da07b61b8f0
Reviewed-on: https://chromium-review.googlesource.com/526555
Commit-Queue: Kouhei Ueno <kouhei@chromium.org>
Reviewed-by: Yutaka Hirano <yhirano@chromium.org>
Cr-Commit-Position: refs/heads/master@{#478207}
[modify] https://crrev.com/505cc74298100f7f54cfb8d95ce6cebfc92635c7/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/505cc74298100f7f54cfb8d95ce6cebfc92635c7/third_party/WebKit/Source/bindings/core/v8/ScriptModule.cpp
[modify] https://crrev.com/505cc74298100f7f54cfb8d95ce6cebfc92635c7/third_party/WebKit/Source/bindings/core/v8/ScriptModule.h
[modify] https://crrev.com/505cc74298100f7f54cfb8d95ce6cebfc92635c7/third_party/WebKit/Source/bindings/core/v8/ScriptModuleTest.cpp
[modify] https://crrev.com/505cc74298100f7f54cfb8d95ce6cebfc92635c7/third_party/WebKit/Source/core/dom/Modulator.h
[modify] https://crrev.com/505cc74298100f7f54cfb8d95ce6cebfc92635c7/third_party/WebKit/Source/core/dom/ModulatorImpl.cpp
[modify] https://crrev.com/505cc74298100f7f54cfb8d95ce6cebfc92635c7/third_party/WebKit/Source/core/dom/ModulatorImpl.h
[modify] https://crrev.com/505cc74298100f7f54cfb8d95ce6cebfc92635c7/third_party/WebKit/Source/core/dom/ModuleScript.cpp
[modify] https://crrev.com/505cc74298100f7f54cfb8d95ce6cebfc92635c7/third_party/WebKit/Source/core/dom/ScriptModuleResolverImpl.cpp
[modify] https://crrev.com/505cc74298100f7f54cfb8d95ce6cebfc92635c7/third_party/WebKit/Source/core/dom/ScriptModuleResolverImplTest.cpp
[modify] https://crrev.com/505cc74298100f7f54cfb8d95ce6cebfc92635c7/third_party/WebKit/Source/core/loader/modulescript/ModuleScriptLoaderTest.cpp
[modify] https://crrev.com/505cc74298100f7f54cfb8d95ce6cebfc92635c7/third_party/WebKit/Source/core/loader/modulescript/ModuleTreeLinkerTest.cpp
[modify] https://crrev.com/505cc74298100f7f54cfb8d95ce6cebfc92635c7/third_party/WebKit/Source/core/testing/DummyModulator.cpp
[modify] https://crrev.com/505cc74298100f7f54cfb8d95ce6cebfc92635c7/third_party/WebKit/Source/core/testing/DummyModulator.h

Project Member

Comment 7 by bugdroid1@chromium.org, Jun 12 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e123c9108586cd8386edf8df90af739ce84ae3a4

commit e123c9108586cd8386edf8df90af739ce84ae3a4
Author: Kouhei Ueno <kouhei@chromium.org>
Date: Mon Jun 12 14:17:34 2017

[ES6 modules] Update module linking procedures to follow latest spec updates

This CL updates Blink's impl of #internal-module-script-graph-fetching-procedure
and #fetch-the-descendants-of-and-instantiate-a-module-script to match
recent spec change: https://github.com/whatwg/html/pull/2595 .

Tests: external/wpt/html/semantics/scripting-1/the-script-element/module/specifier-error.html
Bug:  727299 ,  594639 
Change-Id: I022b3b380b408a6d5c75a59d161aea4fe2868f48
Reviewed-on: https://chromium-review.googlesource.com/528724
Commit-Queue: Yutaka Hirano <yhirano@chromium.org>
Reviewed-by: Hiroki Nakagawa <nhiroki@chromium.org>
Reviewed-by: Yutaka Hirano <yhirano@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Cr-Commit-Position: refs/heads/master@{#478609}
[modify] https://crrev.com/e123c9108586cd8386edf8df90af739ce84ae3a4/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/e123c9108586cd8386edf8df90af739ce84ae3a4/third_party/WebKit/LayoutTests/external/wpt/html/semantics/scripting-1/the-script-element/module/specifier-error.html
[modify] https://crrev.com/e123c9108586cd8386edf8df90af739ce84ae3a4/third_party/WebKit/Source/core/dom/ModuleScript.cpp
[modify] https://crrev.com/e123c9108586cd8386edf8df90af739ce84ae3a4/third_party/WebKit/Source/core/dom/ModuleScript.h
[modify] https://crrev.com/e123c9108586cd8386edf8df90af739ce84ae3a4/third_party/WebKit/Source/core/loader/modulescript/ModuleTreeLinker.cpp
[modify] https://crrev.com/e123c9108586cd8386edf8df90af739ce84ae3a4/third_party/WebKit/Source/core/loader/modulescript/ModuleTreeLinker.h

Comment 8 by kouhei@chromium.org, Jun 23 2017

Blocking: 735833
Project Member

Comment 9 by bugdroid1@chromium.org, Jun 26 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4005d8973b7c0649eb0774402f2df66713ffed23

commit 4005d8973b7c0649eb0774402f2df66713ffed23
Author: Kouhei Ueno <kouhei@chromium.org>
Date: Mon Jun 26 08:12:34 2017

[ES6 modules] Update module script error state predicate and transition.

This CL updates the following spec concepts:
"#concept-module-script-is-errored"
- Null record is now also treated as an error
"#concept-module-script-pre-instantiation-error"
- Renamed from module script's error.
"#concept-module-script-module-record"
- Implement "set its [[HostDefined]] field to undefined" step.
"#concept-module-script-set-pre-instantiation-error"
- Don't set script's state to errored.

This change is to be introduced in whatwg html spec PR:
https://github.com/whatwg/html/pull/2674

The actual implementation behavior change will be introduced in separate CLs.

Bug:  594639 ,  727299 , https://github.com/whatwg/html/pull/2674
Change-Id: Ie9734344030f99bcdaa3d595f8dbec87d44a7c92
Reviewed-on: https://chromium-review.googlesource.com/541097
Commit-Queue: Kouhei Ueno <kouhei@chromium.org>
Reviewed-by: Yutaka Hirano <yhirano@chromium.org>
Cr-Commit-Position: refs/heads/master@{#482213}
[modify] https://crrev.com/4005d8973b7c0649eb0774402f2df66713ffed23/third_party/WebKit/Source/bindings/core/v8/ScriptModuleTest.cpp
[modify] https://crrev.com/4005d8973b7c0649eb0774402f2df66713ffed23/third_party/WebKit/Source/core/dom/ModulatorImpl.cpp
[modify] https://crrev.com/4005d8973b7c0649eb0774402f2df66713ffed23/third_party/WebKit/Source/core/dom/ModuleMapTest.cpp
[modify] https://crrev.com/4005d8973b7c0649eb0774402f2df66713ffed23/third_party/WebKit/Source/core/dom/ModulePendingScript.cpp
[modify] https://crrev.com/4005d8973b7c0649eb0774402f2df66713ffed23/third_party/WebKit/Source/core/dom/ModuleScript.cpp
[modify] https://crrev.com/4005d8973b7c0649eb0774402f2df66713ffed23/third_party/WebKit/Source/core/dom/ModuleScript.h
[modify] https://crrev.com/4005d8973b7c0649eb0774402f2df66713ffed23/third_party/WebKit/Source/core/dom/ScriptModuleResolver.h
[modify] https://crrev.com/4005d8973b7c0649eb0774402f2df66713ffed23/third_party/WebKit/Source/core/dom/ScriptModuleResolverImpl.cpp
[modify] https://crrev.com/4005d8973b7c0649eb0774402f2df66713ffed23/third_party/WebKit/Source/core/dom/ScriptModuleResolverImpl.h
[modify] https://crrev.com/4005d8973b7c0649eb0774402f2df66713ffed23/third_party/WebKit/Source/core/loader/modulescript/ModuleScriptLoaderTest.cpp
[modify] https://crrev.com/4005d8973b7c0649eb0774402f2df66713ffed23/third_party/WebKit/Source/core/loader/modulescript/ModuleTreeLinker.cpp
[modify] https://crrev.com/4005d8973b7c0649eb0774402f2df66713ffed23/third_party/WebKit/Source/core/loader/modulescript/ModuleTreeLinkerTest.cpp
[modify] https://crrev.com/4005d8973b7c0649eb0774402f2df66713ffed23/third_party/WebKit/Source/core/testing/DummyModulator.cpp

Project Member

Comment 10 by bugdroid1@chromium.org, Jun 29 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1723ce24c39c60cfea47cb4570553b461fcfe4aa

commit 1723ce24c39c60cfea47cb4570553b461fcfe4aa
Author: Kouhei Ueno <kouhei@chromium.org>
Date: Thu Jun 29 14:11:18 2017

[ES6 modules] Add bindings for ModuleRecord.[[Status]]

This CL exposes v8::Module::Status() as ScriptModule::Status()

Bug:  594639 ,  727299 , https://github.com/whatwg/html/pull/2674
Change-Id: If515936fe72122343b05c1bd71f86559725d80cc
Reviewed-on: https://chromium-review.googlesource.com/554531
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Yutaka Hirano <yhirano@chromium.org>
Commit-Queue: Kouhei Ueno <kouhei@chromium.org>
Cr-Commit-Position: refs/heads/master@{#483354}
[modify] https://crrev.com/1723ce24c39c60cfea47cb4570553b461fcfe4aa/third_party/WebKit/Source/bindings/core/v8/ScriptModule.cpp
[modify] https://crrev.com/1723ce24c39c60cfea47cb4570553b461fcfe4aa/third_party/WebKit/Source/bindings/core/v8/ScriptModule.h
[modify] https://crrev.com/1723ce24c39c60cfea47cb4570553b461fcfe4aa/third_party/WebKit/Source/bindings/core/v8/ScriptModuleTest.cpp

Project Member

Comment 11 by bugdroid1@chromium.org, Jun 29 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/40485cc21560912f7b2c943a4d6b5646480faa61

commit 40485cc21560912f7b2c943a4d6b5646480faa61
Author: Kouhei Ueno <kouhei@chromium.org>
Date: Thu Jun 29 22:34:01 2017

[ES6 modules] Add bindings for module record's [[ErrorCompletion]] field's [[Value]].

This CL exposes v8::Module::GetException() as ScriptModule::ErrorCompletion().

This CL also updates ModulatorImpl::GetError(ModuleScript*) impl to match the latest "#concept-module-script-error" concept.
ModulatorImpl change will be covered by external/wpt/html/semantics/scripting-1/the-script-element/instantiation-error* once the entire module infra is updated.

Bug:  594639 ,  727299 , https://github.com/whatwg/html/pull/2674 , https://github.com/tc39/ecma262/pull/916
Change-Id: I4d4847c2031f7456e659984b00542fdb08c68dd9
Reviewed-on: https://chromium-review.googlesource.com/554633
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Yutaka Hirano <yhirano@chromium.org>
Commit-Queue: Kouhei Ueno <kouhei@chromium.org>
Cr-Commit-Position: refs/heads/master@{#483521}
[modify] https://crrev.com/40485cc21560912f7b2c943a4d6b5646480faa61/third_party/WebKit/Source/bindings/core/v8/ScriptModule.cpp
[modify] https://crrev.com/40485cc21560912f7b2c943a4d6b5646480faa61/third_party/WebKit/Source/bindings/core/v8/ScriptModule.h
[modify] https://crrev.com/40485cc21560912f7b2c943a4d6b5646480faa61/third_party/WebKit/Source/bindings/core/v8/ScriptModuleTest.cpp
[modify] https://crrev.com/40485cc21560912f7b2c943a4d6b5646480faa61/third_party/WebKit/Source/core/dom/Modulator.h
[modify] https://crrev.com/40485cc21560912f7b2c943a4d6b5646480faa61/third_party/WebKit/Source/core/dom/ModulatorImpl.cpp

Project Member

Comment 12 by bugdroid1@chromium.org, Jul 1 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3bd23b408727fe4991922081c9cf43d6ad594105

commit 3bd23b408727fe4991922081c9cf43d6ad594105
Author: Kouhei Ueno <kouhei@chromium.org>
Date: Sat Jul 01 05:27:23 2017

[ES6 modules] Implement ModuleScript::RecordStatus()

This CL implements ModuleScript::RecordStatus(), which returns
module script's record's [[Status]].
Which will replace usage of ModuleScript::state_ after we switch to
the new #internal-module-script-graph-fetching procedure proposed
in the linked PRs.

The call to ScriptModule::Status routed via Modulator to allow
mock implementation in Modulator infra unit tests.

This codepath will be tested in modulator infra unit tests after
the #internal-module-script-graph-fetching update.

Bug:  594639 ,  727299 , https://github.com/whatwg/html/pull/2674 , https://github.com/tc39/ecma262/pull/916
Change-Id: I2ca193a8c779945c9ae9b08c2b5f55de41fb1a3c
Reviewed-on: https://chromium-review.googlesource.com/558724
Commit-Queue: Kouhei Ueno <kouhei@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Cr-Commit-Position: refs/heads/master@{#483902}
[modify] https://crrev.com/3bd23b408727fe4991922081c9cf43d6ad594105/third_party/WebKit/Source/core/dom/Modulator.h
[modify] https://crrev.com/3bd23b408727fe4991922081c9cf43d6ad594105/third_party/WebKit/Source/core/dom/ModulatorImpl.cpp
[modify] https://crrev.com/3bd23b408727fe4991922081c9cf43d6ad594105/third_party/WebKit/Source/core/dom/ModulatorImpl.h
[modify] https://crrev.com/3bd23b408727fe4991922081c9cf43d6ad594105/third_party/WebKit/Source/core/dom/ModuleScript.cpp
[modify] https://crrev.com/3bd23b408727fe4991922081c9cf43d6ad594105/third_party/WebKit/Source/core/dom/ModuleScript.h
[modify] https://crrev.com/3bd23b408727fe4991922081c9cf43d6ad594105/third_party/WebKit/Source/core/testing/DummyModulator.cpp
[modify] https://crrev.com/3bd23b408727fe4991922081c9cf43d6ad594105/third_party/WebKit/Source/core/testing/DummyModulator.h

Project Member

Comment 13 by bugdroid1@chromium.org, Jul 1 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1f6a1811fa90e8873235a4d404d2cecc1c472134

commit 1f6a1811fa90e8873235a4d404d2cecc1c472134
Author: Kouhei Ueno <kouhei@chromium.org>
Date: Sat Jul 01 06:21:57 2017

[ES6 modules] Implement #concept-module-script-has-instantiated

This CL introduces ModuleScript::HasInstantiated(), which implements
spec concept: "#concept-module-script-has-instantiated"
This will replace usage of ModuleScript::state_ comparison to kInstantiated
after we switch to the new #internal-module-script-graph-fetching procedure
proposed in the linked PRs.

This codepath will be tested in modulator infra unit tests after
the #internal-module-script-graph-fetching update.

Bug:  594639 ,  727299 , https://github.com/whatwg/html/pull/2674 , https://github.com/tc39/ecma262/pull/916
Change-Id: Icdcc21cf00b1e47a35e747d85dd5af7907dc5a2a
Reviewed-on: https://chromium-review.googlesource.com/558166
Commit-Queue: Kouhei Ueno <kouhei@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Cr-Commit-Position: refs/heads/master@{#483904}
[modify] https://crrev.com/1f6a1811fa90e8873235a4d404d2cecc1c472134/third_party/WebKit/Source/core/dom/ModuleScript.cpp
[modify] https://crrev.com/1f6a1811fa90e8873235a4d404d2cecc1c472134/third_party/WebKit/Source/core/dom/ModuleScript.h

Project Member

Comment 14 by bugdroid1@chromium.org, Jul 1 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6614832e3a90564cb4e24c02eea867a9666b3ca0

commit 6614832e3a90564cb4e24c02eea867a9666b3ca0
Author: Kouhei Ueno <kouhei@chromium.org>
Date: Sat Jul 01 12:56:14 2017

[ES6 modules] ModulatorImpl::ExecuteModule should report error acquired via GetError

Before this CL, ExecuteModule reported error acquired via
ModuleScript::GetErrorInternal. This is not always correct after
40485cc21560912f7b2c943a4d6b5646480faa61. ModuleScript::GetErrorInternal only
refers to preinstantiation errors, and we may have errors stored inside
module records as [[ErrorCompletion]] field's [[Value]].

This CL corrects ExecuteModule to report the appropriate error by using error
acquired by ModulatorImpl::GetError, which correctly implements the
"#concept-module-script-error" spec concept.

This is tested by wpt/html/semantics/scripting-1/the-script-element/module/evaluation-error-*.html.
However the wpt tests don't pass until we have updated

Bug:  594639 ,  727299 , https://github.com/whatwg/html/pull/2674 , https://github.com/tc39/ecma262/pull/916
Change-Id: I97de9762bfad58e1f1b71bedf524761e53d43158
Reviewed-on: https://chromium-review.googlesource.com/558725
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Kouhei Ueno <kouhei@chromium.org>
Cr-Commit-Position: refs/heads/master@{#483908}
[modify] https://crrev.com/6614832e3a90564cb4e24c02eea867a9666b3ca0/third_party/WebKit/Source/core/dom/ModulatorImpl.cpp

Project Member

Comment 15 by bugdroid1@chromium.org, Jul 3 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c5330b4aab314775157dafe8adadde0f600be8b7

commit c5330b4aab314775157dafe8adadde0f600be8b7
Author: Kouhei Ueno <kouhei@chromium.org>
Date: Mon Jul 03 03:19:02 2017

[ES6 modules] Remove usage of ModuleInstantiationState outside ModuleTreeLinker

The spec concept "module script's state" is removed from latest HTML spec.
Remove its usage outside ModuleTreeLinker.

Bonus: Introduce pretty-printer of ModuleScript.

Bug:  594639 ,  727299 , https://github.com/whatwg/html/pull/2674
Change-Id: Ic01d729d4c2bfa546da9138e7a8248b997060c87
Reviewed-on: https://chromium-review.googlesource.com/558567
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Commit-Queue: Kouhei Ueno <kouhei@chromium.org>
Cr-Commit-Position: refs/heads/master@{#483930}
[modify] https://crrev.com/c5330b4aab314775157dafe8adadde0f600be8b7/third_party/WebKit/Source/core/dom/ModuleMapTest.cpp
[modify] https://crrev.com/c5330b4aab314775157dafe8adadde0f600be8b7/third_party/WebKit/Source/core/dom/ModulePendingScript.cpp
[modify] https://crrev.com/c5330b4aab314775157dafe8adadde0f600be8b7/third_party/WebKit/Source/core/dom/ModuleScript.cpp
[modify] https://crrev.com/c5330b4aab314775157dafe8adadde0f600be8b7/third_party/WebKit/Source/core/dom/ModuleScript.h
[modify] https://crrev.com/c5330b4aab314775157dafe8adadde0f600be8b7/third_party/WebKit/Source/core/dom/ScriptModuleResolverImplTest.cpp
[modify] https://crrev.com/c5330b4aab314775157dafe8adadde0f600be8b7/third_party/WebKit/Source/core/loader/modulescript/ModuleScriptLoaderTest.cpp

Project Member

Comment 16 by bugdroid1@chromium.org, Jul 3 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/fb77eef767180e26c5358d1096969569ffd2ed2e

commit fb77eef767180e26c5358d1096969569ffd2ed2e
Author: Kouhei Ueno <kouhei@chromium.org>
Date: Mon Jul 03 05:30:18 2017

[ES6 modules] Update ModuleScript::IsErrored to match latest spec.

This CL updates ModuleScript::IsErrored so that it would also consider
its record's [[Status]].

This behavior change will be tested in
wpt/html/semantics/scripting-1/the-script-element/module/evaluation-error-*.html
once we update ModuleTreeLinker to latest #internal-module-script-graph-fetching
procedure

Bug:  594639 ,  727299 , https://github.com/whatwg/html/pull/2674 , https://github.com/tc39/ecma262/pull/916
Change-Id: I575001a44ca1cc2ad5c9208c93c0b628a09086dd
Reviewed-on: https://chromium-review.googlesource.com/558825
Commit-Queue: Kouhei Ueno <kouhei@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#483945}
[modify] https://crrev.com/fb77eef767180e26c5358d1096969569ffd2ed2e/third_party/WebKit/Source/core/dom/ModuleScript.cpp
[modify] https://crrev.com/fb77eef767180e26c5358d1096969569ffd2ed2e/third_party/WebKit/Source/core/dom/ModuleScript.h
[modify] https://crrev.com/fb77eef767180e26c5358d1096969569ffd2ed2e/third_party/WebKit/Source/core/loader/modulescript/ModuleTreeLinkerTest.cpp

Project Member

Comment 17 by bugdroid1@chromium.org, Jul 3 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ec49f96b9874e4e0006805872601ffdbd792fda7

commit ec49f96b9874e4e0006805872601ffdbd792fda7
Author: Kouhei Ueno <kouhei@chromium.org>
Date: Mon Jul 03 08:01:04 2017

[ES6 modules] Update #internal-module-script-graph-fetching procedure

This CL implements the changes introduced in whatwg html spec PR:
https://github.com/whatwg/html/pull/2674

Summary:
- "final result" is now simply the "module script", instead of previous
  "descendant module script" which was used to report where error occurred.
- "#fetch-the-descendants-of-a-module-script" assumes (actually asserts)
  that all module specifiers are valid, as now it is guaranteed that their
  failure is handled at ModuleScript::Create.
- ModuleTreeLinker::NotifyOneDescendantFinished now waits for all descendants
  fetch to complete, even in error cases.
-- This matches spec procedure precisely, but we can optimize here later
   while keeping the behavior.
- ModuleScriptLinker now only triggers instantiate on module tree root.
  (iff ModuleGraphLevel == kTopLevelModuleFetch)
-- V8 is now responsible for instantiating the descendant tree +
   keeping their instantiation status as module script's record's
   [[Status]] (accessible via ModuleScript::RecordStatus() in Blink)
-- UninstantiatedInclusiveDescendants() is removed, as it is no longer used.

With this change, Blink now conforms to all module script WPTs!

Bug:  594639 ,  727299 , https://github.com/whatwg/html/pull/2674
Change-Id: I7354e00820dd222f30b4a4eba1d3cf8c1b319798
Reviewed-on: https://chromium-review.googlesource.com/540960
Reviewed-by: Hiroki Nakagawa <nhiroki@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Commit-Queue: Kouhei Ueno <kouhei@chromium.org>
Cr-Commit-Position: refs/heads/master@{#483957}
[modify] https://crrev.com/ec49f96b9874e4e0006805872601ffdbd792fda7/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/ec49f96b9874e4e0006805872601ffdbd792fda7/third_party/WebKit/Source/core/loader/modulescript/ModuleTreeLinker.cpp
[modify] https://crrev.com/ec49f96b9874e4e0006805872601ffdbd792fda7/third_party/WebKit/Source/core/loader/modulescript/ModuleTreeLinker.h
[modify] https://crrev.com/ec49f96b9874e4e0006805872601ffdbd792fda7/third_party/WebKit/Source/core/loader/modulescript/ModuleTreeLinkerTest.cpp

Status: Fixed (was: Started)
Project Member

Comment 19 by bugdroid1@chromium.org, Jul 4 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6760a4421363e77cbe529a1835737be69f06a521

commit 6760a4421363e77cbe529a1835737be69f06a521
Author: Kouhei Ueno <kouhei@chromium.org>
Date: Tue Jul 04 00:47:23 2017

[ES6 modules] Remove ModuleScript::SetInstantiationSuccess()

The member function is no longer used.

Bug:  594639 ,  727299 
Change-Id: Ibf33ad4da2c0a863afe3951d0c7229ad9930a204
Reviewed-on: https://chromium-review.googlesource.com/558746
Commit-Queue: Kouhei Ueno <kouhei@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Cr-Commit-Position: refs/heads/master@{#484033}
[modify] https://crrev.com/6760a4421363e77cbe529a1835737be69f06a521/third_party/WebKit/Source/core/dom/ModuleScript.cpp
[modify] https://crrev.com/6760a4421363e77cbe529a1835737be69f06a521/third_party/WebKit/Source/core/dom/ModuleScript.h

Sign in to add a comment