Index: sdk/lib/_internal/js_runtime/lib/js_array.dart |
diff --git a/sdk/lib/_internal/js_runtime/lib/js_array.dart b/sdk/lib/_internal/js_runtime/lib/js_array.dart |
index 51a8fb4dc1ee4eb3eeac3bff547ed79dace4ab5e..f6bcbbbe6d382bdd4a1e136d6ff73bc0fa84b918 100644 |
--- a/sdk/lib/_internal/js_runtime/lib/js_array.dart |
+++ b/sdk/lib/_internal/js_runtime/lib/js_array.dart |
@@ -22,14 +22,8 @@ class JSArray<E> extends Interceptor implements List<E>, JSIndexable { |
factory JSArray.fixed(int length) { |
// Explicit type test is necessary to guard against JavaScript conversions |
// in unchecked mode. |
- if (length is !int) { |
- throw new ArgumentError.value(length, "length", "is not an integer"); |
- } |
- // The JavaScript Array constructor with one argument throws if |
- // the value is not a UInt32. Give a better error message. |
- int maxJSArrayLength = 0xFFFFFFFF; |
- if (length < 0 || length > maxJSArrayLength) { |
- throw new RangeError.range(length, 0, maxJSArrayLength, "length"); |
+ if ((length is !int) || (length < 0)) { |
+ throw new ArgumentError("Length must be a non-negative integer: $length"); |
} |
return new JSArray<E>.markFixed(JS('', 'new Array(#)', length)); |
} |
@@ -214,10 +208,8 @@ class JSArray<E> extends Interceptor implements List<E>, JSIndexable { |
} |
void addAll(Iterable<E> collection) { |
- int i = this.length; |
checkGrowable('addAll'); |
for (E e in collection) { |
- assert(i++ == this.length || (throw new ConcurrentModificationError(this))); |
JS('void', r'#.push(#)', this, e); |
} |
} |