DescriptionReland: [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
Committed: https://crrev.com/427242326cdb322fd8d6df1f80bb3f4a24733708
Cr-Original-Original-Commit-Position: refs/heads/master@{#39871}
Cr-Original-Commit-Position: refs/heads/master@{#39892}
Cr-Commit-Position: refs/heads/master@{#39900}
Patch Set 1 #
Total comments: 1
Patch Set 2 : Rebase. #Patch Set 3 : Use internal version of generator_prototype_next that doesn't show up in trace. #Patch Set 4 : Address comment and remove bogus comment. #Patch Set 5 : Use new FunctionKind::kModule rather than kGeneratorFunction. #Patch Set 6 : Update CompilerHints. #
Messages
Total messages: 63 (30 generated)
|