Properly pass InitializationFlag back from ScriptContextTable lookups
This was dropped accidentally in bb97d27ab
.
R=verwaest@chromium.org
BUG=chromium:633884
Review-Url: https://codereview.chromium.org/2203213003
Cr-Commit-Position: refs/heads/master@{#38345}
This commit is contained in:
parent
0d7f7dc3ee
commit
e6d2c9b584
@ -233,6 +233,7 @@ Handle<Object> Context::Lookup(Handle<String> name, ContextLookupFlags flags,
|
||||
}
|
||||
*index = r.slot_index;
|
||||
*variable_mode = r.mode;
|
||||
*init_flag = r.init_flag;
|
||||
*attributes = GetAttributesForMode(r.mode);
|
||||
return ScriptContextTable::GetContext(script_contexts,
|
||||
r.context_index);
|
||||
|
15
test/mjsunit/regress/regress-crbug-633884.js
Normal file
15
test/mjsunit/regress/regress-crbug-633884.js
Normal file
@ -0,0 +1,15 @@
|
||||
// Copyright 2016 the V8 project authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
try {
|
||||
// Leave "blarg" as the hole in a new ScriptContext.
|
||||
Realm.eval(Realm.current(), "throw Error(); let blarg");
|
||||
} catch (e) { }
|
||||
|
||||
// Access "blarg" via a dynamic lookup. Should not crash!
|
||||
assertThrows(function() {
|
||||
// Prevent full-codegen from optimizing away the %LoadLookupSlot call.
|
||||
eval("var x = 5");
|
||||
blarg;
|
||||
});
|
Loading…
Reference in New Issue
Block a user