| Index: runtime/lib/double.cc
|
| diff --git a/runtime/lib/double.cc b/runtime/lib/double.cc
|
| index 303305e04e0721e00a1d88bdeb1807703b8c579c..00c68e823af1033d676c8ada5744f8cd8eaa93b8 100644
|
| --- a/runtime/lib/double.cc
|
| +++ b/runtime/lib/double.cc
|
| @@ -7,6 +7,7 @@
|
| #include "vm/bootstrap_natives.h"
|
|
|
| #include "vm/bigint_operations.h"
|
| +#include "vm/double_conversion.h"
|
| #include "vm/exceptions.h"
|
| #include "vm/native_entry.h"
|
| #include "vm/object.h"
|
| @@ -184,6 +185,33 @@ DEFINE_NATIVE_ENTRY(Double_toInt, 1) {
|
| }
|
|
|
|
|
| +DEFINE_NATIVE_ENTRY(Double_toStringAsFixed, 2) {
|
| + const Double& arg = Double::CheckedHandle(arguments->At(0));
|
| + GET_NATIVE_ARGUMENT(Smi, fraction_digits, arguments->At(1));
|
| + double d = arg.value();
|
| + int fraction_digits_value = fraction_digits.Value();
|
| + String& result = String::Handle();
|
| + bool succeeded = DoubleToStringAsFixed(d, fraction_digits_value, result);
|
| + if (!succeeded) {
|
| + GrowableArray<const Object*> args;
|
| + args.Add(&String::ZoneHandle(String::New(
|
| + "Illegal arguments to double.toStringAsFixed")));
|
| + Exceptions::ThrowByType(Exceptions::kIllegalArgument, args);
|
| + }
|
| + arguments->SetReturn(result);
|
| +}
|
| +
|
| +
|
| +DEFINE_NATIVE_ENTRY(Double_toStringAsExponential, 2) {
|
| + UNIMPLEMENTED();
|
| +}
|
| +
|
| +
|
| +DEFINE_NATIVE_ENTRY(Double_toStringAsPrecision, 2) {
|
| + UNIMPLEMENTED();
|
| +}
|
| +
|
| +
|
| DEFINE_NATIVE_ENTRY(Double_isInfinite, 1) {
|
| const Double& arg = Double::CheckedHandle(arguments->At(0));
|
| if (isinf(arg.value())) {
|
|
|