bf3081c837
When parsing a eagerly-parsed-but-lazily-compiled function, we used to put some of its AST nodes into a discardable Zone. This CL puts the function Scope, its inner Scopes and the related AST nodes (Declarations, VariableProxys) into the temporary Zone too. This reduces peak memory usage and enables future work to keep the temporary Zone around for later compilation. BUG= Review-Url: https://codereview.chromium.org/2210243002 Cr-Commit-Position: refs/heads/master@{#38348}
34 lines
877 B
JavaScript
34 lines
877 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.
|
|
|
|
// Flags: --min-preparse-length=0
|
|
|
|
// The test functions in this file will be eagerly compiled. The functions
|
|
// inside will be eagerly parsed but lazily compiled.
|
|
|
|
(function TestLengths() {
|
|
function inner(p1, p2, p3) { }
|
|
assertEquals(3, inner.length);
|
|
})();
|
|
|
|
(function TestAccessingContextVariables() {
|
|
var in_context = 8;
|
|
function inner() { return in_context; }
|
|
assertEquals(8, inner());
|
|
})();
|
|
|
|
(function TestAccessingContextVariablesFromDeeper() {
|
|
var in_context = 8;
|
|
function inner() {
|
|
function inner_inner() {
|
|
function inner_inner_inner() {
|
|
return in_context;
|
|
}
|
|
return inner_inner_inner;
|
|
}
|
|
return inner_inner;
|
|
}
|
|
assertEquals(8, inner()()());
|
|
})();
|