Просмотр исходного кода

LibJS: Add TypedArray.BYTES_PER_ELEMENT

Linus Groh 4 лет назад
Родитель
Сommit
ddaab598a7

+ 1 - 0
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)                                     \

+ 1 - 0
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()                                                                                        \
     {                                                                                                                    \

+ 8 - 0
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);
+});