| Index: src/objects.cc
|
| diff --git a/src/objects.cc b/src/objects.cc
|
| index 8a97b2d7852ee628af7ae2da45d9acc53981f1ee..c42aebc411b80f9b865f7bdf9b372b567c39de4b 100644
|
| --- a/src/objects.cc
|
| +++ b/src/objects.cc
|
| @@ -228,6 +228,17 @@ MaybeHandle<Object> Object::ToLength(Isolate* isolate, Handle<Object> input) {
|
| return isolate->factory()->NewNumber(len);
|
| }
|
|
|
| +// static
|
| +MaybeHandle<Object> Object::ToIndex(Isolate* isolate, Handle<Object> input) {
|
| + 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;
|
| + if (len < 0.0 || len > kMaxSafeInteger) {
|
| + THROW_NEW_ERROR(isolate, NewRangeError(MessageTemplate::kInvalidIndex),
|
| + Object);
|
| + }
|
| + return isolate->factory()->NewNumber(len);
|
| +}
|
|
|
| bool Object::BooleanValue() {
|
| if (IsSmi()) return Smi::cast(this)->value() != 0;
|
|
|