History

Initial V8 support, not working yet

ksuprynowicz committed 4 years ago

Commit 7e9ad391 parent df507a740 files · +4040 −3087Browse files

Showing the changes to libraries/script-engine/src/v8/ArrayBufferViewClass.cpp (1 of 40 files). Show all

Unified · Split

libraries/script-engine/src/v8/ArrayBufferViewClass.cpp+55−0
@@ -0,0 +1,55 @@
1+//
2+// ArrayBufferViewClass.cpp
3+//
4+//
5+// Created by Clement on 7/8/14.
6+// Copyright 2014 High Fidelity, Inc.
7+//
8+// Distributed under the Apache License, Version 2.0.
9+// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
10+//
11+
12+#include "ArrayBufferViewClass.h"
13+#include "ScriptEngineV8.h"
14+
15+Q_DECLARE_METATYPE(QByteArray*)
16+
17+// V8TODO
18+/*ArrayBufferViewClass::ArrayBufferViewClass(ScriptEngineV8* scriptEngine) :
19+ QObject(scriptEngine),
20+ QScriptClass(scriptEngine),
21+ _scriptEngine(scriptEngine)
22+{
23+ // Save string handles for quick lookup
24+ _bufferName = engine()->toStringHandle(BUFFER_PROPERTY_NAME.toLatin1());
25+ _byteOffsetName = engine()->toStringHandle(BYTE_OFFSET_PROPERTY_NAME.toLatin1());
26+ _byteLengthName = engine()->toStringHandle(BYTE_LENGTH_PROPERTY_NAME.toLatin1());
27+}
28+
29+QScriptClass::QueryFlags ArrayBufferViewClass::queryProperty(const V8ScriptValue& object,
30+ const V8ScriptString& name,
31+ QueryFlags flags, uint* id) {
32+ if (name == _bufferName || name == _byteOffsetName || name == _byteLengthName) {
33+ return flags &= HandlesReadAccess; // Only keep read access flags
34+ }
35+ return QScriptClass::QueryFlags(); // No access
36+}
37+
38+V8ScriptValue ArrayBufferViewClass::property(const V8ScriptValue& object,
39+ const V8ScriptString& name, uint id) {
40+ if (name == _bufferName) {
41+ return object.data().property(_bufferName);
42+ }
43+ if (name == _byteOffsetName) {
44+ return object.data().property(_byteOffsetName);
45+ }
46+ if (name == _byteLengthName) {
47+ return object.data().property(_byteLengthName);
48+ }
49+ return V8ScriptValue();
50+}
51+
52+V8ScriptValue::PropertyFlags ArrayBufferViewClass::propertyFlags(const V8ScriptValue& object,
53+ const V8ScriptString& name, uint id) {
54+ return V8ScriptValue::Undeletable;
55+}*/