| OLD | NEW | 
|   1 // Copyright 2014 the V8 project authors. All rights reserved. |   1 // Copyright 2014 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 | 
|  11 //       with the distribution. |  11 //       with the distribution. | 
|  12 //     * Neither the name of Google Inc. nor the names of its |  12 //     * Neither the name of Google Inc. nor the names of its | 
|  13 //       contributors may be used to endorse or promote products derived |  13 //       contributors may be used to endorse or promote products derived | 
|  14 //       from this software without specific prior written permission. |  14 //       from this software without specific prior written permission. | 
|  15 // |  15 // | 
|  16 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |  16 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | 
|  17 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |  17 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | 
|  18 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |  18 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | 
|  19 // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |  19 // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | 
|  20 // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |  20 // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | 
|  21 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |  21 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | 
|  22 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |  22 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | 
|  23 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |  23 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | 
|  24 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |  24 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 
|  25 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |  25 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 
|  26 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |  26 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 
|  27  |  27  | 
|  28 // Flags: --allow-natives-syntax --noalways-opt |  28 // Flags: --allow-natives-syntax --crankshaft --noalways-opt | 
|  29  |  29  | 
|  30 function check(func, input, expected) { |  30 function check(func, input, expected) { | 
|  31   func(-1); |  31   func(-1); | 
|  32   func(-1); |  32   func(-1); | 
|  33   %OptimizeFunctionOnNextCall(func); |  33   %OptimizeFunctionOnNextCall(func); | 
|  34   assertEquals(expected, func(input)); |  34   assertEquals(expected, func(input)); | 
|  35   assertOptimized(func); |  35   assertOptimized(func); | 
|  36 } |  36 } | 
|  37  |  37  | 
|  38 function mul_by_neg_1(a) { return a * -1; } |  38 function mul_by_neg_1(a) { return a * -1; } | 
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  78 var two_31 = 2 * two_30; |  78 var two_31 = 2 * two_30; | 
|  79  |  79  | 
|  80 // TODO(rmcilroy): replace after r16361 with:  if (%IsValidSmi(two_31)) { |  80 // TODO(rmcilroy): replace after r16361 with:  if (%IsValidSmi(two_31)) { | 
|  81 if (true) { |  81 if (true) { | 
|  82   assertEquals(two_31, mul_by_neg_1(-two_31)); |  82   assertEquals(two_31, mul_by_neg_1(-two_31)); | 
|  83   assertUnoptimized(mul_by_neg_1); |  83   assertUnoptimized(mul_by_neg_1); | 
|  84 } else { |  84 } else { | 
|  85   assertEquals(two_30, mul_by_neg_1(-two_30)); |  85   assertEquals(two_30, mul_by_neg_1(-two_30)); | 
|  86   assertUnoptimized(mul_by_neg_1); |  86   assertUnoptimized(mul_by_neg_1); | 
|  87 } |  87 } | 
| OLD | NEW |