// 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 | |
var thrower = { | |
[Symbol.toPrimitive]: function() { | |
FAIL; | |
} | |
}; | |
function testTrace(func) { | |
try { | |
func(thrower); | |
assertUnreachable(); | |
} catch (e) { | |
assertTrue(e.stack.indexOf("fromCharCode") >= 0); | |
} | |
} | |
testTrace(String.fromCharCode); | |
function foo(x) { | |
return String.fromCharCode(x); | |
}; | |
%PrepareFunctionForOptimization(foo); | |
foo(1); | |
foo(2); | |
testTrace(foo); | |
%OptimizeFunctionOnNextCall(foo); | |
testTrace(foo); |