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:
adamk 2016-08-04 09:10:48 -07:00 committed by Commit bot
parent 0d7f7dc3ee
commit e6d2c9b584
2 changed files with 16 additions and 0 deletions

View File

@ -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);

View 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;
});