| Index: src/objects.cc
|
| diff --git a/src/objects.cc b/src/objects.cc
|
| index b133ee3f75c6d71e04370b8b61617f34fb90af6c..93928e80eaf3c833ea80cd44e4d25a40d1b893c4 100644
|
| --- a/src/objects.cc
|
| +++ b/src/objects.cc
|
| @@ -383,6 +383,18 @@ MaybeHandle<Object> Object::ToLength(Isolate* isolate, Handle<Object> input) {
|
| return isolate->factory()->NewNumber(len);
|
| }
|
|
|
| +// static
|
| +MaybeHandle<Object> Object::ToIndex(Isolate* isolate, Handle<Object> input,
|
| + MessageTemplate::Template error_index) {
|
| + if (input->IsUndefined(isolate)) return isolate->factory()->NewNumber(0.0);
|
| + ASSIGN_RETURN_ON_EXCEPTION(isolate, input, ToNumber(input), Object);
|
| + double len = DoubleToInteger(input->Number()) + 0.0;
|
| + auto js_len = isolate->factory()->NewNumber(len);
|
| + if (len < 0.0 || len > kMaxSafeInteger) {
|
| + THROW_NEW_ERROR(isolate, NewRangeError(error_index, js_len), Object);
|
| + }
|
| + return js_len;
|
| +}
|
|
|
| bool Object::BooleanValue() {
|
| if (IsSmi()) return Smi::cast(this)->value() != 0;
|
|
|