Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qv4typedarray_p.h
Go to the documentation of this file.
1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3#ifndef QV4TYPEDARRAY_H
4#define QV4TYPEDARRAY_H
5
6//
7// W A R N I N G
8// -------------
9//
10// This file is not part of the Qt API. It exists purely as an
11// implementation detail. This header file may change from version to
12// version without notice, or even be removed.
13//
14// We mean it.
15//
16
17#include "qv4object_p.h"
18#include "qv4functionobject_p.h"
19#include "qv4arraybuffer_p.h"
20
22
23namespace QV4 {
24
25struct ArrayBuffer;
26
39
49
72
73namespace Heap {
74
75#define TypedArrayMembers(class, Member) \
76 Member(class, Pointer, ArrayBuffer *, buffer) \
77 Member(class, NoMark, const TypedArrayOperations *, type) \
78 Member(class, NoMark, uint, byteLength) \
79 Member(class, NoMark, uint, byteOffset) \
80 Member(class, NoMark, uint, arrayType)
81
88
91
97
100
105
106
107}
108
109struct Q_QML_EXPORT TypedArray : Object
110{
112
113 static Heap::TypedArray *create(QV4::ExecutionEngine *e, Heap::TypedArray::Type t);
114
115 uint byteOffset() const noexcept { return d()->byteOffset; }
116 uint byteLength() const noexcept { return d()->byteLength; }
117 int bytesPerElement() const noexcept { return d()->type->bytesPerElement; }
118 uint length() const noexcept { return d()->byteLength / d()->type->bytesPerElement; }
119
120 char *arrayData() noexcept { return d()->buffer->arrayData(); }
121 const char *constArrayData() const noexcept { return d()->buffer->constArrayData(); }
122 bool hasDetachedArrayData() const noexcept { return d()->buffer->hasDetachedArrayData(); }
123 uint arrayDataLength() const noexcept { return d()->buffer->arrayDataLength(); }
124
125 Heap::TypedArray::Type arrayType() const noexcept
126 {
127 return static_cast<Heap::TypedArray::Type>(d()->arrayType);
128 }
129 using Object::get;
130
131 static ReturnedValue virtualGet(const Managed *m, PropertyKey id, const Value *receiver, bool *hasProperty);
132 static bool virtualHasProperty(const Managed *m, PropertyKey id);
133 static PropertyAttributes virtualGetOwnProperty(const Managed *m, PropertyKey id, Property *p);
134 static bool virtualPut(Managed *m, PropertyKey id, const Value &value, Value *receiver);
135 static bool virtualDefineOwnProperty(Managed *m, PropertyKey id, const Property *p, PropertyAttributes attrs);
136 static OwnPropertyKeyIterator *virtualOwnPropertyKeys(const Object *m, Value *target);
137
138};
139
141{
143
144 static ReturnedValue method_of(const FunctionObject *, const Value *thisObject, const Value *argv, int argc);
145 static ReturnedValue method_from(const FunctionObject *, const Value *thisObject, const Value *argv, int argc);
146};
147
149{
151
152 static ReturnedValue virtualCallAsConstructor(const FunctionObject *f, const Value *argv, int argc, const Value *);
153 static ReturnedValue virtualCall(const FunctionObject *f, const Value *thisObject, const Value *argv, int argc);
154};
155
157{
159 V4_PROTOTYPE(objectPrototype)
160
162
163 static ReturnedValue method_get_buffer(const FunctionObject *, const Value *thisObject, const Value *argv, int argc);
164 static ReturnedValue method_get_byteLength(const FunctionObject *, const Value *thisObject, const Value *argv, int argc);
165 static ReturnedValue method_get_byteOffset(const FunctionObject *, const Value *thisObject, const Value *argv, int argc);
166 static ReturnedValue method_get_length(const FunctionObject *, const Value *thisObject, const Value *argv, int argc);
167
168 static ReturnedValue method_copyWithin(const FunctionObject *, const Value *thisObject, const Value *argv, int argc);
169 static ReturnedValue method_entries(const FunctionObject *, const Value *thisObject, const Value *argv, int argc);
170 static ReturnedValue method_every(const FunctionObject *, const Value *thisObject, const Value *argv, int argc);
171 static ReturnedValue method_fill(const FunctionObject *, const Value *thisObject, const Value *argv, int argc);
172 static ReturnedValue method_filter(const FunctionObject *, const Value *thisObject, const Value *argv, int argc);
173 static ReturnedValue method_find(const FunctionObject *, const Value *thisObject, const Value *argv, int argc);
174 static ReturnedValue method_findIndex(const FunctionObject *, const Value *thisObject, const Value *argv, int argc);
175 static ReturnedValue method_forEach(const FunctionObject *, const Value *thisObject, const Value *argv, int argc);
176 static ReturnedValue method_includes(const FunctionObject *, const Value *thisObject, const Value *argv, int argc);
177 static ReturnedValue method_indexOf(const FunctionObject *, const Value *thisObject, const Value *argv, int argc);
178 static ReturnedValue method_join(const FunctionObject *, const Value *thisObject, const Value *argv, int argc);
179 static ReturnedValue method_keys(const FunctionObject *, const Value *thisObject, const Value *argv, int argc);
180 static ReturnedValue method_lastIndexOf(const FunctionObject *, const Value *thisObject, const Value *argv, int argc);
181 static ReturnedValue method_map(const FunctionObject *, const Value *thisObject, const Value *argv, int argc);
182 static ReturnedValue method_reduce(const FunctionObject *, const Value *thisObject, const Value *argv, int argc);
183 static ReturnedValue method_reduceRight(const FunctionObject *, const Value *thisObject, const Value *argv, int argc);
184 static ReturnedValue method_reverse(const FunctionObject *, const Value *thisObject, const Value *argv, int argc);
185 static ReturnedValue method_some(const FunctionObject *, const Value *thisObject, const Value *argv, int argc);
186 static ReturnedValue method_values(const FunctionObject *, const Value *thisObject, const Value *argv, int argc);
187 static ReturnedValue method_set(const FunctionObject *, const Value *thisObject, const Value *argv, int argc);
188 static ReturnedValue method_slice(const FunctionObject *, const Value *thisObject, const Value *argv, int argc);
189 static ReturnedValue method_subarray(const FunctionObject *, const Value *thisObject, const Value *argv, int argc);
190 static ReturnedValue method_toLocaleString(const FunctionObject *, const Value *thisObject, const Value *argv, int argc);
191
192 static ReturnedValue method_get_toStringTag(const FunctionObject *, const Value *thisObject, const Value *argv, int argc);
193
194};
195
197{
199 V4_PROTOTYPE(objectPrototype)
200
202};
203
204inline void
206{
207 Object::init();
208 type = t;
209}
210
211} // namespace QV4
212
214
215#endif
Definition lalr.h:268
QJSValue expected
Definition qjsengine.cpp:12
Combined button and popup list for selecting options.
@ NTypedArrayTypes
@ Float64Array
@ Float32Array
@ UInt16Array
@ UInt8ClampedArray
@ UInt32Array
@ AtomicExchange
@ NAtomicModifyOps
quint64 ReturnedValue
DBusConnection const char DBusError DBusBusType DBusError return DBusConnection DBusHandleMessageFunction void DBusFreeFunction return DBusConnection return DBusConnection return const char DBusError return DBusConnection DBusMessage dbus_uint32_t return DBusConnection dbus_bool_t DBusConnection DBusAddWatchFunction DBusRemoveWatchFunction DBusWatchToggledFunction void DBusFreeFunction return DBusConnection DBusDispatchStatusFunction void DBusFreeFunction DBusTimeout return DBusTimeout return DBusWatch return DBusWatch unsigned int return DBusError const DBusError return const DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessageIter int const void return DBusMessageIter DBusMessageIter return DBusMessageIter void DBusMessageIter void int return DBusMessage DBusMessageIter return DBusMessageIter return DBusMessageIter DBusMessageIter const char const char const char const char return DBusMessage return DBusMessage const char return DBusMessage dbus_bool_t return DBusMessage dbus_uint32_t return DBusMessage void
static struct AttrInfo attrs[]
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
GLsizei const GLfloat * v
[13]
const GLfloat * m
GLint GLsizei GLsizei GLenum GLenum GLsizei void * data
GLfloat GLfloat f
GLenum type
GLenum target
GLuint name
GLdouble GLdouble t
Definition qopenglext.h:243
GLfloat GLfloat p
[1]
static QT_BEGIN_NAMESPACE void init(QTextBoundaryFinder::BoundaryType type, QStringView str, QCharAttributes *attributes)
unsigned int uint
Definition qtypes.h:34
#define DECLARE_HEAP_OBJECT(name, base)
#define DECLARE_MARKOBJECTS(class)
#define V4_PROTOTYPE(p)
#define V4_OBJECT2(DataClass, superClass)
view create()
void init(ExecutionEngine *engine, TypedArray::Type t)
void init(TypedArray::Type t)
static ReturnedValue method_of(const FunctionObject *, const Value *thisObject, const Value *argv, int argc)
static ReturnedValue method_from(const FunctionObject *, const Value *thisObject, const Value *argv, int argc)
static ReturnedValue method_entries(const FunctionObject *, const Value *thisObject, const Value *argv, int argc)
static ReturnedValue method_find(const FunctionObject *, const Value *thisObject, const Value *argv, int argc)
static ReturnedValue method_filter(const FunctionObject *, const Value *thisObject, const Value *argv, int argc)
static ReturnedValue method_lastIndexOf(const FunctionObject *, const Value *thisObject, const Value *argv, int argc)
static ReturnedValue method_get_buffer(const FunctionObject *, const Value *thisObject, const Value *argv, int argc)
static ReturnedValue method_get_length(const FunctionObject *, const Value *thisObject, const Value *argv, int argc)
static ReturnedValue method_keys(const FunctionObject *, const Value *thisObject, const Value *argv, int argc)
static ReturnedValue method_reverse(const FunctionObject *, const Value *thisObject, const Value *argv, int argc)
static ReturnedValue method_reduce(const FunctionObject *, const Value *thisObject, const Value *argv, int argc)
static ReturnedValue method_includes(const FunctionObject *, const Value *thisObject, const Value *argv, int argc)
static ReturnedValue method_map(const FunctionObject *, const Value *thisObject, const Value *argv, int argc)
static ReturnedValue method_set(const FunctionObject *, const Value *thisObject, const Value *argv, int argc)
static ReturnedValue method_slice(const FunctionObject *, const Value *thisObject, const Value *argv, int argc)
static ReturnedValue method_reduceRight(const FunctionObject *, const Value *thisObject, const Value *argv, int argc)
static ReturnedValue method_findIndex(const FunctionObject *, const Value *thisObject, const Value *argv, int argc)
static ReturnedValue method_indexOf(const FunctionObject *, const Value *thisObject, const Value *argv, int argc)
static ReturnedValue method_join(const FunctionObject *, const Value *thisObject, const Value *argv, int argc)
static ReturnedValue method_some(const FunctionObject *, const Value *thisObject, const Value *argv, int argc)
static ReturnedValue method_get_byteLength(const FunctionObject *, const Value *thisObject, const Value *argv, int argc)
static ReturnedValue method_get_byteOffset(const FunctionObject *, const Value *thisObject, const Value *argv, int argc)
static ReturnedValue method_get_toStringTag(const FunctionObject *, const Value *thisObject, const Value *argv, int argc)
static ReturnedValue method_subarray(const FunctionObject *, const Value *thisObject, const Value *argv, int argc)
static ReturnedValue method_toLocaleString(const FunctionObject *, const Value *thisObject, const Value *argv, int argc)
static ReturnedValue method_forEach(const FunctionObject *, const Value *thisObject, const Value *argv, int argc)
static ReturnedValue method_copyWithin(const FunctionObject *, const Value *thisObject, const Value *argv, int argc)
static ReturnedValue method_values(const FunctionObject *, const Value *thisObject, const Value *argv, int argc)
static ReturnedValue method_every(const FunctionObject *, const Value *thisObject, const Value *argv, int argc)
static ReturnedValue method_fill(const FunctionObject *, const Value *thisObject, const Value *argv, int argc)
void init(ExecutionEngine *engine, IntrinsicTypedArrayCtor *ctor)
ExecutionEngine * engine() const
ReturnedValue(* AtomicStore)(char *data, Value value)
void(* Write)(char *data, Value value)
AtomicModify atomicModifyOps[AtomicModifyOps::NAtomicModifyOps]
static constexpr TypedArrayOperations createWithAtomics(const char *name)
AtomicCompareExchange atomicCompareExchange
ReturnedValue(* AtomicModify)(char *data, Value value)
ReturnedValue(* AtomicCompareExchange)(char *data, Value expected, Value v)
ReturnedValue(* AtomicLoad)(char *data)
void init(ExecutionEngine *engine, TypedArrayCtor *ctor)
uint arrayDataLength() const noexcept
char * arrayData() noexcept
uint length() const noexcept
uint byteOffset() const noexcept
bool hasDetachedArrayData() const noexcept
uint byteLength() const noexcept
int bytesPerElement() const noexcept
Heap::TypedArray::Type arrayType() const noexcept
const char * constArrayData() const noexcept
static constexpr VTable::CallAsConstructor virtualCallAsConstructor
static constexpr VTable::Call virtualCall
Definition moc.h:23