Index: test/mjsunit/harmony/typedarray-proto.js |
diff --git a/test/mjsunit/harmony/typedarray-proto.js b/test/mjsunit/harmony/typedarray-proto.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..c164a317e52b32029fae157379ac869cdabf0016 |
--- /dev/null |
+++ b/test/mjsunit/harmony/typedarray-proto.js |
@@ -0,0 +1,44 @@ |
+// Copyright 2015 the V8 project authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+// Flags: --harmony-arrays |
+ |
+// Test that the methods for different TypedArray types have the same |
+// identity. |
+// TODO(dehrenberg): Test that the TypedArray proto hierarchy is set |
+// up properly. |
+// TODO(dehrenberg): subarray is currently left out because that still |
+// uses per-type methods. When that's fixed, stop leaving it out. |
+ |
+var typedArrayConstructors = [ |
+ Uint8Array, |
+ Int8Array, |
+ Uint16Array, |
+ Int16Array, |
+ Uint32Array, |
+ Int32Array, |
+ Uint8ClampedArray, |
+ Float32Array, |
+ Float64Array]; |
+ |
+function functionProperties(object) { |
+ return Object.getOwnPropertyNames(object).filter(function(name) { |
+ return typeof Object.getOwnPropertyDescriptor(object, name).value |
+ == "function" |
+ && name != 'constructor' && name != 'subarray'; |
+ }); |
+} |
+ |
+var typedArrayMethods = functionProperties(Uint8Array.prototype); |
+var typedArrayClassMethods = functionProperties(Uint8Array); |
+ |
+for (var constructor of typedArrayConstructors) { |
+ for (var method of typedArrayMethods) { |
+ assertEquals(constructor.prototype[method], |
+ Uint8Array.prototype[method], method); |
+ } |
+ for (var classMethod of typedArrayClassMethods) { |
+ assertEquals(constructor[method], Uint8Array[method], classMethod); |
+ } |
+} |