OLD | NEW |
1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 18 matching lines...) Expand all Loading... |
29 | 29 |
30 const kExtraTypeFeedbackMinusZeroSentinel = 1; | 30 const kExtraTypeFeedbackMinusZeroSentinel = 1; |
31 const kFirstSlotExtraTypeFeedbackIndex = 5; | 31 const kFirstSlotExtraTypeFeedbackIndex = 5; |
32 | 32 |
33 (function(){ | 33 (function(){ |
34 var floorFunc = function() { | 34 var floorFunc = function() { |
35 Math.floor(NaN); | 35 Math.floor(NaN); |
36 } | 36 } |
37 // Execute the function once to make sure it has a type feedback vector. | 37 // Execute the function once to make sure it has a type feedback vector. |
38 floorFunc(5); | 38 floorFunc(5); |
| 39 var stub = builtins.MathFloorStub("MathFloorStub", 0); |
39 assertTrue(kExtraTypeFeedbackMinusZeroSentinel !== | 40 assertTrue(kExtraTypeFeedbackMinusZeroSentinel !== |
40 %FixedArrayGet(%GetTypeFeedbackVector(floorFunc), | 41 %FixedArrayGet(%GetTypeFeedbackVector(floorFunc), |
41 kFirstSlotExtraTypeFeedbackIndex)); | 42 kFirstSlotExtraTypeFeedbackIndex)); |
42 assertEquals(5.0, builtins.MathFloor_STUB(floorFunc, 4, 5.5)); | 43 assertEquals(5.0, stub(floorFunc, 4, 5.5)); |
43 assertTrue(kExtraTypeFeedbackMinusZeroSentinel !== | 44 assertTrue(kExtraTypeFeedbackMinusZeroSentinel !== |
44 %FixedArrayGet(%GetTypeFeedbackVector(floorFunc), | 45 %FixedArrayGet(%GetTypeFeedbackVector(floorFunc), |
45 kFirstSlotExtraTypeFeedbackIndex)); | 46 kFirstSlotExtraTypeFeedbackIndex)); |
46 // Executing floor such that it returns -0 should set the proper sentinel in | 47 // Executing floor such that it returns -0 should set the proper sentinel in |
47 // the feedback vector. | 48 // the feedback vector. |
48 assertEquals(-Infinity, 1/builtins.MathFloor_STUB(floorFunc, 4, -0)); | 49 assertEquals(-Infinity, 1/stub(floorFunc, 4, -0)); |
49 assertEquals(kExtraTypeFeedbackMinusZeroSentinel, | 50 assertEquals(kExtraTypeFeedbackMinusZeroSentinel, |
50 %FixedArrayGet(%GetTypeFeedbackVector(floorFunc), | 51 %FixedArrayGet(%GetTypeFeedbackVector(floorFunc), |
51 kFirstSlotExtraTypeFeedbackIndex)); | 52 kFirstSlotExtraTypeFeedbackIndex)); |
52 %ClearFunctionTypeFeedback(floorFunc); | 53 %ClearFunctionTypeFeedback(floorFunc); |
53 })(); | 54 })(); |
OLD | NEW |