blob: 91fbae5e3ea8ae92cf95c2aa9fb9c85a61991d67 [file] [log] [blame]
//-------------------------------------------------------------------------------------------------------
// Copyright (C) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
//-------------------------------------------------------------------------------------------------------
// This is a sketchy test because it relies on knowing that the following pattern
// hits the heuristics that decide to cache the scopes within the generator function.
// If those heuristics were to change this test could no longer be hitting the
// desired code paths. If you suspect it is not hitting the cached scope code paths
// dump the bytecode and check for InitCachedScope and LdHeapArgsCached opcodes.
var o = {
gf: function* () {
var _a = 'pas';
function a() { return _a; }
return eval('a()') + arguments[0];
}
};
function test() {
for (var i = 0; i < 3; i += 1) {
var g = o.gf('sed');
WScript.Echo(g.next().value);
}
}
test();