65bae443a2
After parsing a function, if there's no masking declaration in the function scope, DeclareFunctionVar will also bind the function name to a variable. It will either bind it to the const/const-legacy function_ variable, or to a dynamic non-local if the function calls sloppy eval. Even if the variable is masked or sloppy eval is called, we still declare the function-var. The client immediately sets up the variable by assigning the resulting function to it. BUG=v8:5209 Review-Url: https://codereview.chromium.org/2274133002 Cr-Commit-Position: refs/heads/master@{#39581}
24 lines
466 B
JavaScript
24 lines
466 B
JavaScript
// 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.
|
|
|
|
(function() {
|
|
function f() {
|
|
{
|
|
function f() { return 42 }
|
|
}
|
|
function g() { return f }
|
|
return g;
|
|
}
|
|
|
|
var g = f();
|
|
var inner_f = g();
|
|
assertEquals(42, inner_f());
|
|
})();
|
|
|
|
(function() {
|
|
var y = 100;
|
|
var z = (function y() { return y; });
|
|
assertEquals(z, z());
|
|
})();
|