fb16583179
This involved adding a count_ member to SloppyBlockFunctionMap, so to avoid making DeclarationScope larger, this patch makes the creation of the map lazy, thus reducing the size of DeclarationScope by several words in the process. BUG=chromium:688567 Change-Id: If9a9eb2ccc01690fe10edadb3aa9625454ff4a19 Reviewed-on: https://chromium-review.googlesource.com/448701 Commit-Queue: Adam Klein <adamk@chromium.org> Reviewed-by: Daniel Ehrenberg <littledan@chromium.org> Reviewed-by: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#43558}
37 lines
777 B
JavaScript
37 lines
777 B
JavaScript
// Copyright 2017 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 a(){}
|
|
function b(){}
|
|
function c(){}
|
|
function d(){}
|
|
function e(){}
|
|
function f(){}
|
|
function g(){}
|
|
function h(){}
|
|
}
|
|
|
|
var names = Object.getOwnPropertyNames(this);
|
|
names = names.filter(n => Array.prototype.includes.call("abcdefgh", n));
|
|
assertEquals("a,b,c,d,e,f,g,h", names.join());
|
|
|
|
{
|
|
{
|
|
let j;
|
|
{
|
|
// This j will not be hoisted
|
|
function j(){}
|
|
}
|
|
}
|
|
function i(){}
|
|
|
|
// but this j will be.
|
|
function j(){}
|
|
}
|
|
|
|
var names = Object.getOwnPropertyNames(this);
|
|
names = names.filter(n => Array.prototype.includes.call("ij", n));
|
|
assertEquals("i,j", names.join());
|