// Copyright 2019 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: --allow-natives-syntax (function() { function opt(flag) { function inline() { (function () { flag() })(); (flag) = 1; } inline(); } assertThrows(opt, TypeError); })(); (function() { function opt(flag){ function inline() { var f = (function() { return flag; }); function g(x) { (flag) = x; } return [f,g]; } return inline(); } [f, g] = opt(1); %PrepareFunctionForOptimization(f); assertEquals(1, f()); assertEquals(1, f()); %OptimizeFunctionOnNextCall(f); assertEquals(1, f()); g(2); assertEquals(2, f()); })();