Home | History | Annotate | Download | only in compiler
      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 
      7 function deopt(f) {
      8   return { valueOf : function() { %DeoptimizeFunction(f); return 1.1; } };
      9 }
     10 
     11 function or_zero(o) {
     12   return o|0;
     13 }
     14 
     15 function multiply_one(o) {
     16   return +o;
     17 }
     18 
     19 function multiply_one_symbol() {
     20   return +Symbol();
     21 }
     22 
     23 assertThrows(multiply_one_symbol, TypeError);
     24 assertEquals(1, or_zero(deopt(or_zero)));
     25 assertEquals(1.1, multiply_one(deopt(multiply_one)));
     26