1// Copyright 2015 the V8 project authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5// Flags: --allow-natives-syntax 6 7function deopt(f) { 8 return { valueOf : function() { %DeoptimizeFunction(f); return 1.1; } }; 9} 10 11function or_zero(o) { 12 return o|0; 13} 14 15function multiply_one(o) { 16 return +o; 17} 18 19function multiply_one_symbol() { 20 return +Symbol(); 21} 22 23assertThrows(multiply_one_symbol, TypeError); 24assertEquals(1, or_zero(deopt(or_zero))); 25assertEquals(1.1, multiply_one(deopt(multiply_one))); 26