Index: src/runtime.cc |
diff --git a/src/runtime.cc b/src/runtime.cc |
index 5e18c97bdcf0afdcf75ced9083bc35fdbb4dd14b..cc41117ead4fd9dec1613bbf553d465ff7101e8f 100644 |
--- a/src/runtime.cc |
+++ b/src/runtime.cc |
@@ -45,6 +45,7 @@ |
#include "src/utils.h" |
#include "src/v8threads.h" |
#include "src/vm-state-inl.h" |
+#include "third_party/fdlibm/fdlibm.h" |
#ifdef V8_I18N_SUPPORT |
#include "src/i18n.h" |
@@ -7683,6 +7684,23 @@ RUNTIME_FUNCTION(Runtime_ConstructDouble) { |
} |
+RUNTIME_FUNCTION(Runtime_RemPiO2) { |
+ HandleScope handle_scope(isolate); |
+ DCHECK(args.length() == 1); |
+ CONVERT_DOUBLE_ARG_CHECKED(x, 0); |
+ Factory* factory = isolate->factory(); |
+ double y[2]; |
+ int n = rempio2(x, y); |
+ Handle<FixedArray> array = factory->NewFixedArray(3); |
+ Handle<HeapNumber> y0 = factory->NewHeapNumber(y[0]); |
+ Handle<HeapNumber> y1 = factory->NewHeapNumber(y[1]); |
+ array->set(0, Smi::FromInt(n)); |
+ array->set(1, *y0); |
+ array->set(2, *y1); |
+ return *factory->NewJSArrayWithElements(array); |
+} |
+ |
+ |
static const double kPiDividedBy4 = 0.78539816339744830962; |