Index: src/array.js |
diff --git a/src/array.js b/src/array.js |
index 599fd5cfe98e97e484926ed697966041cb464561..a3674e837d3ade7a59e7ddc159ff77b6b745ebd5 100644 |
--- a/src/array.js |
+++ b/src/array.js |
@@ -1001,11 +1001,13 @@ function ArraySort(comparefn) { |
max_prototype_element = CopyFromPrototype(this, length); |
} |
- var num_non_undefined = %RemoveArrayHoles(this, length); |
+ var num_non_undefined = %IsObserved(this) ? |
+ -1 : %RemoveArrayHoles(this, length); |
+ |
if (num_non_undefined == -1) { |
- // There were indexed accessors in the array. Move array holes and |
- // undefineds to the end using a Javascript function that is safe |
- // in the presence of accessors. |
+ // The array is observed, or there were indexed accessors in the array. |
+ // Move array holes and undefineds to the end using a Javascript function |
+ // that is safe in the presence of accessors and is observable. |
num_non_undefined = SafeRemoveArrayHoles(this); |
} |