diff options
Diffstat (limited to 'Source/JavaScriptCore/runtime/JSDataView.cpp')
-rw-r--r-- | Source/JavaScriptCore/runtime/JSDataView.cpp | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/Source/JavaScriptCore/runtime/JSDataView.cpp b/Source/JavaScriptCore/runtime/JSDataView.cpp index 513d4c6b3..77640cdaf 100644 --- a/Source/JavaScriptCore/runtime/JSDataView.cpp +++ b/Source/JavaScriptCore/runtime/JSDataView.cpp @@ -29,12 +29,12 @@ #include "ArrayBufferView.h" #include "DataView.h" #include "Error.h" -#include "JSCInlines.h" +#include "Operations.h" namespace JSC { const ClassInfo JSDataView::s_info = { - "DataView", &Base::s_info, 0, CREATE_METHOD_TABLE(JSDataView)}; + "DataView", &Base::s_info, 0, 0, CREATE_METHOD_TABLE(JSDataView)}; JSDataView::JSDataView(VM& vm, ConstructionContext& context, ArrayBuffer* buffer) : Base(vm, context) @@ -47,13 +47,10 @@ JSDataView* JSDataView::create( unsigned byteOffset, unsigned byteLength) { RefPtr<ArrayBuffer> buffer = passedBuffer; - if (!ArrayBufferView::verifySubRangeLength(buffer, byteOffset, byteLength, sizeof(uint8_t))) { - throwVMError(exec, createRangeError(exec, ASCIILiteral("Length out of range of buffer"))); - return nullptr; - } - if (!ArrayBufferView::verifyByteOffsetAlignment(byteOffset, sizeof(uint8_t))) { - exec->vm().throwException(exec, createRangeError(exec, ASCIILiteral("Byte offset is not aligned"))); - return nullptr; + if (!ArrayBufferView::verifySubRange<uint8_t>(buffer, byteOffset, byteLength)) { + throwVMError( + exec, createRangeError(exec, "Byte offset and length out of range of buffer")); + return 0; } VM& vm = exec->vm(); ConstructionContext context( @@ -116,7 +113,7 @@ Structure* JSDataView::createStructure( VM& vm, JSGlobalObject* globalObject, JSValue prototype) { return Structure::create( - vm, globalObject, prototype, TypeInfo(DataViewType, StructureFlags), info(), + vm, globalObject, prototype, TypeInfo(ObjectType, StructureFlags), info(), NonArray); } |