| OLD | NEW | 
|---|
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 #include <stdlib.h> | 5 #include <stdlib.h> | 
| 6 #include <limits> | 6 #include <limits> | 
| 7 | 7 | 
| 8 #include "src/v8.h" | 8 #include "src/v8.h" | 
| 9 | 9 | 
| 10 #include "src/accessors.h" | 10 #include "src/accessors.h" | 
| (...skipping 24 matching lines...) Expand all  Loading... | 
| 35 #include "src/misc-intrinsics.h" | 35 #include "src/misc-intrinsics.h" | 
| 36 #include "src/parser.h" | 36 #include "src/parser.h" | 
| 37 #include "src/prototype.h" | 37 #include "src/prototype.h" | 
| 38 #include "src/runtime.h" | 38 #include "src/runtime.h" | 
| 39 #include "src/runtime-profiler.h" | 39 #include "src/runtime-profiler.h" | 
| 40 #include "src/scopeinfo.h" | 40 #include "src/scopeinfo.h" | 
| 41 #include "src/smart-pointers.h" | 41 #include "src/smart-pointers.h" | 
| 42 #include "src/string-search.h" | 42 #include "src/string-search.h" | 
| 43 #include "src/stub-cache.h" | 43 #include "src/stub-cache.h" | 
| 44 #include "src/uri.h" | 44 #include "src/uri.h" | 
|  | 45 #include "src/utils.h" | 
| 45 #include "src/v8threads.h" | 46 #include "src/v8threads.h" | 
| 46 #include "src/vm-state-inl.h" | 47 #include "src/vm-state-inl.h" | 
| 47 | 48 | 
| 48 #ifdef V8_I18N_SUPPORT | 49 #ifdef V8_I18N_SUPPORT | 
| 49 #include "src/i18n.h" | 50 #include "src/i18n.h" | 
| 50 #include "unicode/brkiter.h" | 51 #include "unicode/brkiter.h" | 
| 51 #include "unicode/calendar.h" | 52 #include "unicode/calendar.h" | 
| 52 #include "unicode/coll.h" | 53 #include "unicode/coll.h" | 
| 53 #include "unicode/curramt.h" | 54 #include "unicode/curramt.h" | 
| 54 #include "unicode/datefmt.h" | 55 #include "unicode/datefmt.h" | 
| (...skipping 7650 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 7705   return *isolate->factory()->NewNumber(fast_exp(x)); | 7706   return *isolate->factory()->NewNumber(fast_exp(x)); | 
| 7706 } | 7707 } | 
| 7707 | 7708 | 
| 7708 | 7709 | 
| 7709 RUNTIME_FUNCTION(Runtime_MathFloorRT) { | 7710 RUNTIME_FUNCTION(Runtime_MathFloorRT) { | 
| 7710   HandleScope scope(isolate); | 7711   HandleScope scope(isolate); | 
| 7711   ASSERT(args.length() == 1); | 7712   ASSERT(args.length() == 1); | 
| 7712   isolate->counters()->math_floor()->Increment(); | 7713   isolate->counters()->math_floor()->Increment(); | 
| 7713 | 7714 | 
| 7714   CONVERT_DOUBLE_ARG_CHECKED(x, 0); | 7715   CONVERT_DOUBLE_ARG_CHECKED(x, 0); | 
| 7715   return *isolate->factory()->NewNumber(std::floor(x)); | 7716   return *isolate->factory()->NewNumber(Floor(x)); | 
| 7716 } | 7717 } | 
| 7717 | 7718 | 
| 7718 | 7719 | 
| 7719 // Slow version of Math.pow.  We check for fast paths for special cases. | 7720 // Slow version of Math.pow.  We check for fast paths for special cases. | 
| 7720 // Used if VFP3 is not available. | 7721 // Used if VFP3 is not available. | 
| 7721 RUNTIME_FUNCTION(Runtime_MathPowSlow) { | 7722 RUNTIME_FUNCTION(Runtime_MathPowSlow) { | 
| 7722   HandleScope scope(isolate); | 7723   HandleScope scope(isolate); | 
| 7723   ASSERT(args.length() == 2); | 7724   ASSERT(args.length() == 2); | 
| 7724   isolate->counters()->math_pow()->Increment(); | 7725   isolate->counters()->math_pow()->Increment(); | 
| 7725 | 7726 | 
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 7790 | 7791 | 
| 7791   // If the magnitude is big enough, there's no place for fraction part. If we | 7792   // If the magnitude is big enough, there's no place for fraction part. If we | 
| 7792   // try to add 0.5 to this number, 1.0 will be added instead. | 7793   // try to add 0.5 to this number, 1.0 will be added instead. | 
| 7793   if (exponent >= 52) { | 7794   if (exponent >= 52) { | 
| 7794     return *number; | 7795     return *number; | 
| 7795   } | 7796   } | 
| 7796 | 7797 | 
| 7797   if (sign && value >= -0.5) return isolate->heap()->minus_zero_value(); | 7798   if (sign && value >= -0.5) return isolate->heap()->minus_zero_value(); | 
| 7798 | 7799 | 
| 7799   // Do not call NumberFromDouble() to avoid extra checks. | 7800   // Do not call NumberFromDouble() to avoid extra checks. | 
| 7800   return *isolate->factory()->NewNumber(std::floor(value + 0.5)); | 7801   return *isolate->factory()->NewNumber(Floor(value + 0.5)); | 
| 7801 } | 7802 } | 
| 7802 | 7803 | 
| 7803 | 7804 | 
| 7804 RUNTIME_FUNCTION(Runtime_MathSqrtRT) { | 7805 RUNTIME_FUNCTION(Runtime_MathSqrtRT) { | 
| 7805   HandleScope scope(isolate); | 7806   HandleScope scope(isolate); | 
| 7806   ASSERT(args.length() == 1); | 7807   ASSERT(args.length() == 1); | 
| 7807   isolate->counters()->math_sqrt()->Increment(); | 7808   isolate->counters()->math_sqrt()->Increment(); | 
| 7808 | 7809 | 
| 7809   CONVERT_DOUBLE_ARG_CHECKED(x, 0); | 7810   CONVERT_DOUBLE_ARG_CHECKED(x, 0); | 
| 7810   return *isolate->factory()->NewNumber(fast_sqrt(x)); | 7811   return *isolate->factory()->NewNumber(fast_sqrt(x)); | 
| (...skipping 1704 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 9515   ASSERT(args.length() == 0); | 9516   ASSERT(args.length() == 0); | 
| 9516   if (FLAG_log_timer_events) LOG(isolate, CurrentTimeEvent()); | 9517   if (FLAG_log_timer_events) LOG(isolate, CurrentTimeEvent()); | 
| 9517 | 9518 | 
| 9518   // According to ECMA-262, section 15.9.1, page 117, the precision of | 9519   // According to ECMA-262, section 15.9.1, page 117, the precision of | 
| 9519   // the number in a Date object representing a particular instant in | 9520   // the number in a Date object representing a particular instant in | 
| 9520   // time is milliseconds. Therefore, we floor the result of getting | 9521   // time is milliseconds. Therefore, we floor the result of getting | 
| 9521   // the OS time. | 9522   // the OS time. | 
| 9522   double millis; | 9523   double millis; | 
| 9523   if (FLAG_verify_predictable) { | 9524   if (FLAG_verify_predictable) { | 
| 9524     millis = 1388534400000.0;  // Jan 1 2014 00:00:00 GMT+0000 | 9525     millis = 1388534400000.0;  // Jan 1 2014 00:00:00 GMT+0000 | 
| 9525     millis += std::floor(isolate->heap()->synthetic_time()); | 9526     millis += Floor(isolate->heap()->synthetic_time()); | 
| 9526   } else { | 9527   } else { | 
| 9527     millis = std::floor(base::OS::TimeCurrentMillis()); | 9528     millis = Floor(base::OS::TimeCurrentMillis()); | 
| 9528   } | 9529   } | 
| 9529   return *isolate->factory()->NewNumber(millis); | 9530   return *isolate->factory()->NewNumber(millis); | 
| 9530 } | 9531 } | 
| 9531 | 9532 | 
| 9532 | 9533 | 
| 9533 RUNTIME_FUNCTION(Runtime_DateParseString) { | 9534 RUNTIME_FUNCTION(Runtime_DateParseString) { | 
| 9534   HandleScope scope(isolate); | 9535   HandleScope scope(isolate); | 
| 9535   ASSERT(args.length() == 2); | 9536   ASSERT(args.length() == 2); | 
| 9536   CONVERT_ARG_HANDLE_CHECKED(String, str, 0); | 9537   CONVERT_ARG_HANDLE_CHECKED(String, str, 0); | 
| 9537   CONVERT_ARG_HANDLE_CHECKED(JSArray, output, 1); | 9538   CONVERT_ARG_HANDLE_CHECKED(JSArray, output, 1); | 
| (...skipping 5546 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 15084   } | 15085   } | 
| 15085   return NULL; | 15086   return NULL; | 
| 15086 } | 15087 } | 
| 15087 | 15088 | 
| 15088 | 15089 | 
| 15089 const Runtime::Function* Runtime::FunctionForId(Runtime::FunctionId id) { | 15090 const Runtime::Function* Runtime::FunctionForId(Runtime::FunctionId id) { | 
| 15090   return &(kIntrinsicFunctions[static_cast<int>(id)]); | 15091   return &(kIntrinsicFunctions[static_cast<int>(id)]); | 
| 15091 } | 15092 } | 
| 15092 | 15093 | 
| 15093 } }  // namespace v8::internal | 15094 } }  // namespace v8::internal | 
| OLD | NEW | 
|---|