Index: src/runtime.cc |
diff --git a/src/runtime.cc b/src/runtime.cc |
index 140c3234e6bed870ad706b7a96ff8d5e99ed7d77..61ebc0ad55122767412e82aac5d6367e8986dc14 100644 |
--- a/src/runtime.cc |
+++ b/src/runtime.cc |
@@ -10508,11 +10508,17 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_GlobalPrint) { |
// and are followed by non-existing element. Does not change the length |
// property. |
// Returns the number of non-undefined elements collected. |
+// Returns -1 if hole removal is not supported by this method. |
RUNTIME_FUNCTION(MaybeObject*, Runtime_RemoveArrayHoles) { |
HandleScope scope(isolate); |
ASSERT(args.length() == 2); |
CONVERT_ARG_HANDLE_CHECKED(JSObject, object, 0); |
CONVERT_NUMBER_CHECKED(uint32_t, limit, Uint32, args[1]); |
+ if (object->HasFastArgumentsElements() || |
Michael Starzinger
2014/03/12 13:31:57
nit: Instead of putting this logic here, can we mo
|
+ object->HasDictionaryArgumentsElements() || |
Michael Starzinger
2014/03/12 13:31:57
nit: Better use object->HasNonStrictArgumentsEleme
|
+ object->map()->is_observed()) { |
+ return Smi::FromInt(-1); |
+ } |
return *JSObject::PrepareElementsForSort(object, limit); |
} |