81f4342994
This removes an optimization from the code generator that tries to materialize certain constants (i.e. context and closure) from the stackframe when possible. This does not work with Harmony tail calls which are split into several instructions. There have already been numerous bugs in this optimization, it is too fragile in its current form. R=bmeurer@chromium.org TEST=mjsunit/regress/regress-crbug-648539 BUG=chromium:648539 Review-Url: https://codereview.chromium.org/2357583003 Cr-Commit-Position: refs/heads/master@{#39583}
18 lines
428 B
JavaScript
18 lines
428 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: --allow-natives-syntax --harmony-tailcalls
|
|
|
|
function f() {
|
|
"use strict";
|
|
return undefined(0, 0);
|
|
}
|
|
function g() {
|
|
return f();
|
|
}
|
|
assertThrows(g, TypeError);
|
|
assertThrows(g, TypeError);
|
|
%OptimizeFunctionOnNextCall(g);
|
|
assertThrows(g, TypeError);
|