| Index: src/lookup.cc
|
| diff --git a/src/lookup.cc b/src/lookup.cc
|
| index bca0ab5d5f4379888605026c65528a1f7d5eb40c..84eb6d45adc44cfacad6c94a77a93e1e80a22fa5 100644
|
| --- a/src/lookup.cc
|
| +++ b/src/lookup.cc
|
| @@ -314,8 +314,12 @@ bool LookupIterator::IsSpecialNumericIndex() const {
|
| Handle<String> name_string = Handle<String>::cast(name());
|
| if (name_string->length() > 0) {
|
| double d =
|
| - StringToDouble(isolate()->unicode_cache(), *name_string, NO_FLAGS);
|
| + StringToDouble(isolate()->unicode_cache(), name_string, NO_FLAGS);
|
| if (!std::isnan(d)) {
|
| + if (String::Equals(isolate()->factory()->minus_zero_string(),
|
| + name_string))
|
| + return true;
|
| +
|
| Factory* factory = isolate()->factory();
|
| Handle<Object> num = factory->NewNumber(d);
|
| Handle<String> roundtrip_string = factory->NumberToString(num);
|
|
|