diff --git a/Libraries/LibJS/Runtime/CommonPropertyNames.h b/Libraries/LibJS/Runtime/CommonPropertyNames.h index 46d0eab30a..63e3aa9691 100644 --- a/Libraries/LibJS/Runtime/CommonPropertyNames.h +++ b/Libraries/LibJS/Runtime/CommonPropertyNames.h @@ -32,6 +32,7 @@ namespace JS { #define ENUMERATE_STANDARD_PROPERTY_NAMES(P) \ + P(BYTES_PER_ELEMENT) \ P(BigInt) \ P(Boolean) \ P(E) \ diff --git a/Libraries/LibJS/Runtime/TypedArray.cpp b/Libraries/LibJS/Runtime/TypedArray.cpp index 47c7e1c2de..58b9eba1c3 100644 --- a/Libraries/LibJS/Runtime/TypedArray.cpp +++ b/Libraries/LibJS/Runtime/TypedArray.cpp @@ -65,6 +65,7 @@ namespace JS { NativeFunction::initialize(global_object); \ define_property(vm.names.prototype, global_object.snake_name##_prototype(), 0); \ define_property(vm.names.length, Value(1), Attribute::Configurable); \ + define_property(vm.names.BYTES_PER_ELEMENT, Value((i32)sizeof(Type)), 0); \ } \ Value ConstructorName::call() \ { \ diff --git a/Libraries/LibJS/Tests/builtins/TypedArray/TypedArray.BYTES_PER_ELEMENT.js b/Libraries/LibJS/Tests/builtins/TypedArray/TypedArray.BYTES_PER_ELEMENT.js new file mode 100644 index 0000000000..82c207e5dc --- /dev/null +++ b/Libraries/LibJS/Tests/builtins/TypedArray/TypedArray.BYTES_PER_ELEMENT.js @@ -0,0 +1,8 @@ +test("basic functionality", () => { + expect(Uint8Array.BYTES_PER_ELEMENT).toBe(1); + expect(Uint16Array.BYTES_PER_ELEMENT).toBe(2); + expect(Uint32Array.BYTES_PER_ELEMENT).toBe(4); + expect(Int8Array.BYTES_PER_ELEMENT).toBe(1); + expect(Int16Array.BYTES_PER_ELEMENT).toBe(2); + expect(Int32Array.BYTES_PER_ELEMENT).toBe(4); +});