| Index: src/elements.cc
|
| diff --git a/src/elements.cc b/src/elements.cc
|
| index 5bce3b99bd961fe0f3aa1e20b71fc2965cb3ef2d..2e4667d4a06b81b5c9c3f78c108defc41e260bca 100644
|
| --- a/src/elements.cc
|
| +++ b/src/elements.cc
|
| @@ -48,25 +48,25 @@
|
| // - FastDoubleElementsAccessor
|
| // - FastPackedDoubleElementsAccessor
|
| // - FastHoleyDoubleElementsAccessor
|
| -// - TypedElementsAccessor (abstract)
|
| -// - ExternalByteElementsAccessor
|
| -// - ExternalUnsignedByteElementsAccessor
|
| -// - ExternalShortElementsAccessor
|
| -// - ExternalUnsignedShortElementsAccessor
|
| -// - ExternalIntElementsAccessor
|
| -// - ExternalUnsignedIntElementsAccessor
|
| -// - ExternalFloatElementsAccessor
|
| -// - ExternalDoubleElementsAccessor
|
| -// - PixelElementsAccessor
|
| -// - FixedUint8ArrayAccessor
|
| -// - FixedInt8ArrayAccessor
|
| -// - FixedUint16ArrayAccessor
|
| -// - FixedInt16ArrayAccessor
|
| -// - FixedUint32ArrayAccessor
|
| -// - FixedInt32ArrayAccessor
|
| -// - FixedFloat32ArrayAccessor
|
| -// - FixedFloat64ArrayAccessor
|
| -// - FixedUint8ClampedArrayAccessor
|
| +// - TypedElementsAccessor: template, with instantiations:
|
| +// - ExternalInt8ElementsAccessor
|
| +// - ExternalUint8ElementsAccessor
|
| +// - ExternalInt16ElementsAccessor
|
| +// - ExternalUint16ElementsAccessor
|
| +// - ExternalInt32ElementsAccessor
|
| +// - ExternalUint32ElementsAccessor
|
| +// - ExternalFloat32ElementsAccessor
|
| +// - ExternalFloat64ElementsAccessor
|
| +// - ExternalUint8ClampedElementsAccessor
|
| +// - FixedUint8ElementsAccessor
|
| +// - FixedInt8ElementsAccessor
|
| +// - FixedUint16ElementsAccessor
|
| +// - FixedInt16ElementsAccessor
|
| +// - FixedUint32ElementsAccessor
|
| +// - FixedInt32ElementsAccessor
|
| +// - FixedFloat32ElementsAccessor
|
| +// - FixedFloat64ElementsAccessor
|
| +// - FixedUint8ClampedElementsAccessor
|
| // - DictionaryElementsAccessor
|
| // - NonStrictArgumentsElementsAccessor
|
|
|
| @@ -97,32 +97,34 @@ static const int kPackedSizeNotKnown = -1;
|
| SeededNumberDictionary) \
|
| V(NonStrictArgumentsElementsAccessor, NON_STRICT_ARGUMENTS_ELEMENTS, \
|
| FixedArray) \
|
| - V(ExternalByteElementsAccessor, EXTERNAL_BYTE_ELEMENTS, \
|
| - ExternalByteArray) \
|
| - V(ExternalUnsignedByteElementsAccessor, \
|
| - EXTERNAL_UNSIGNED_BYTE_ELEMENTS, ExternalUnsignedByteArray) \
|
| - V(ExternalShortElementsAccessor, EXTERNAL_SHORT_ELEMENTS, \
|
| - ExternalShortArray) \
|
| - V(ExternalUnsignedShortElementsAccessor, \
|
| - EXTERNAL_UNSIGNED_SHORT_ELEMENTS, ExternalUnsignedShortArray) \
|
| - V(ExternalIntElementsAccessor, EXTERNAL_INT_ELEMENTS, \
|
| - ExternalIntArray) \
|
| - V(ExternalUnsignedIntElementsAccessor, \
|
| - EXTERNAL_UNSIGNED_INT_ELEMENTS, ExternalUnsignedIntArray) \
|
| - V(ExternalFloatElementsAccessor, \
|
| - EXTERNAL_FLOAT_ELEMENTS, ExternalFloatArray) \
|
| - V(ExternalDoubleElementsAccessor, \
|
| - EXTERNAL_DOUBLE_ELEMENTS, ExternalDoubleArray) \
|
| - V(PixelElementsAccessor, EXTERNAL_PIXEL_ELEMENTS, ExternalPixelArray) \
|
| - V(FixedUint8ArrayAccessor, UINT8_ELEMENTS, FixedUint8Array) \
|
| - V(FixedInt8ArrayAccessor, INT8_ELEMENTS, FixedInt8Array) \
|
| - V(FixedUint16ArrayAccessor, UINT16_ELEMENTS, FixedUint16Array) \
|
| - V(FixedInt16ArrayAccessor, INT16_ELEMENTS, FixedInt16Array) \
|
| - V(FixedUint32ArrayAccessor, UINT32_ELEMENTS, FixedUint32Array) \
|
| - V(FixedInt32ArrayAccessor, INT32_ELEMENTS, FixedInt32Array) \
|
| - V(FixedFloat32ArrayAccessor, FLOAT32_ELEMENTS, FixedFloat32Array) \
|
| - V(FixedFloat64ArrayAccessor, FLOAT64_ELEMENTS, FixedFloat64Array) \
|
| - V(FixedUint8ClampedArrayAccessor, UINT8_CLAMPED_ELEMENTS, \
|
| + V(ExternalInt8ElementsAccessor, EXTERNAL_INT8_ELEMENTS, \
|
| + ExternalInt8Array) \
|
| + V(ExternalUint8ElementsAccessor, \
|
| + EXTERNAL_UINT8_ELEMENTS, ExternalUint8Array) \
|
| + V(ExternalInt16ElementsAccessor, EXTERNAL_INT16_ELEMENTS, \
|
| + ExternalInt16Array) \
|
| + V(ExternalUint16ElementsAccessor, \
|
| + EXTERNAL_UINT16_ELEMENTS, ExternalUint16Array) \
|
| + V(ExternalInt32ElementsAccessor, EXTERNAL_INT32_ELEMENTS, \
|
| + ExternalInt32Array) \
|
| + V(ExternalUint32ElementsAccessor, \
|
| + EXTERNAL_UINT32_ELEMENTS, ExternalUint32Array) \
|
| + V(ExternalFloat32ElementsAccessor, \
|
| + EXTERNAL_FLOAT32_ELEMENTS, ExternalFloat32Array) \
|
| + V(ExternalFloat64ElementsAccessor, \
|
| + EXTERNAL_FLOAT64_ELEMENTS, ExternalFloat64Array) \
|
| + V(ExternalUint8ClampedElementsAccessor, \
|
| + EXTERNAL_UINT8_CLAMPED_ELEMENTS, \
|
| + ExternalUint8ClampedArray) \
|
| + V(FixedUint8ElementsAccessor, UINT8_ELEMENTS, FixedUint8Array) \
|
| + V(FixedInt8ElementsAccessor, INT8_ELEMENTS, FixedInt8Array) \
|
| + V(FixedUint16ElementsAccessor, UINT16_ELEMENTS, FixedUint16Array) \
|
| + V(FixedInt16ElementsAccessor, INT16_ELEMENTS, FixedInt16Array) \
|
| + V(FixedUint32ElementsAccessor, UINT32_ELEMENTS, FixedUint32Array) \
|
| + V(FixedInt32ElementsAccessor, INT32_ELEMENTS, FixedInt32Array) \
|
| + V(FixedFloat32ElementsAccessor, FLOAT32_ELEMENTS, FixedFloat32Array) \
|
| + V(FixedFloat64ElementsAccessor, FLOAT64_ELEMENTS, FixedFloat64Array) \
|
| + V(FixedUint8ClampedElementsAccessor, UINT8_CLAMPED_ELEMENTS, \
|
| FixedUint8ClampedArray)
|
|
|
|
|
| @@ -1097,43 +1099,15 @@ static inline ElementsKind ElementsKindForArray(FixedArrayBase* array) {
|
| }
|
| case FIXED_DOUBLE_ARRAY_TYPE:
|
| return FAST_HOLEY_DOUBLE_ELEMENTS;
|
| - case EXTERNAL_BYTE_ARRAY_TYPE:
|
| - return EXTERNAL_BYTE_ELEMENTS;
|
| - case EXTERNAL_UNSIGNED_BYTE_ARRAY_TYPE:
|
| - return EXTERNAL_UNSIGNED_BYTE_ELEMENTS;
|
| - case EXTERNAL_SHORT_ARRAY_TYPE:
|
| - return EXTERNAL_SHORT_ELEMENTS;
|
| - case EXTERNAL_UNSIGNED_SHORT_ARRAY_TYPE:
|
| - return EXTERNAL_UNSIGNED_SHORT_ELEMENTS;
|
| - case EXTERNAL_INT_ARRAY_TYPE:
|
| - return EXTERNAL_INT_ELEMENTS;
|
| - case EXTERNAL_UNSIGNED_INT_ARRAY_TYPE:
|
| - return EXTERNAL_UNSIGNED_INT_ELEMENTS;
|
| - case EXTERNAL_FLOAT_ARRAY_TYPE:
|
| - return EXTERNAL_FLOAT_ELEMENTS;
|
| - case EXTERNAL_DOUBLE_ARRAY_TYPE:
|
| - return EXTERNAL_DOUBLE_ELEMENTS;
|
| - case EXTERNAL_PIXEL_ARRAY_TYPE:
|
| - return EXTERNAL_PIXEL_ELEMENTS;
|
| -
|
| - case FIXED_UINT8_ARRAY_TYPE:
|
| - return UINT8_ELEMENTS;
|
| - case FIXED_INT8_ARRAY_TYPE:
|
| - return INT8_ELEMENTS;
|
| - case FIXED_UINT16_ARRAY_TYPE:
|
| - return UINT16_ELEMENTS;
|
| - case FIXED_INT16_ARRAY_TYPE:
|
| - return INT16_ELEMENTS;
|
| - case FIXED_UINT32_ARRAY_TYPE:
|
| - return UINT32_ELEMENTS;
|
| - case FIXED_INT32_ARRAY_TYPE:
|
| - return INT32_ELEMENTS;
|
| - case FIXED_FLOAT32_ARRAY_TYPE:
|
| - return FLOAT32_ELEMENTS;
|
| - case FIXED_FLOAT64_ARRAY_TYPE:
|
| - return FLOAT64_ELEMENTS;
|
| - case FIXED_UINT8_CLAMPED_ARRAY_TYPE:
|
| - return UINT8_CLAMPED_ELEMENTS;
|
| +
|
| +#define TYPED_ARRAY_CASE(Type, type, TYPE, ctype, size) \
|
| + case EXTERNAL_##TYPE##_ARRAY_TYPE: \
|
| + return EXTERNAL_##TYPE##_ELEMENTS; \
|
| + case FIXED_##TYPE##_ARRAY_TYPE: \
|
| + return TYPE##_ELEMENTS;
|
| +
|
| + TYPED_ARRAYS(TYPED_ARRAY_CASE)
|
| +#undef TYPED_ARRAY_CASE
|
|
|
| default:
|
| UNREACHABLE();
|
| @@ -1188,25 +1162,12 @@ class FastSmiOrObjectElementsAccessor
|
| return CopyElementsImpl(arguments, from_start, to, from_kind,
|
| to_start, packed_size, copy_size);
|
| }
|
| - case EXTERNAL_BYTE_ELEMENTS:
|
| - case EXTERNAL_UNSIGNED_BYTE_ELEMENTS:
|
| - case EXTERNAL_SHORT_ELEMENTS:
|
| - case EXTERNAL_UNSIGNED_SHORT_ELEMENTS:
|
| - case EXTERNAL_INT_ELEMENTS:
|
| - case EXTERNAL_UNSIGNED_INT_ELEMENTS:
|
| - case EXTERNAL_FLOAT_ELEMENTS:
|
| - case EXTERNAL_DOUBLE_ELEMENTS:
|
| - case EXTERNAL_PIXEL_ELEMENTS:
|
| - case UINT8_ELEMENTS:
|
| - case INT8_ELEMENTS:
|
| - case UINT16_ELEMENTS:
|
| - case INT16_ELEMENTS:
|
| - case UINT32_ELEMENTS:
|
| - case INT32_ELEMENTS:
|
| - case FLOAT32_ELEMENTS:
|
| - case FLOAT64_ELEMENTS:
|
| - case UINT8_CLAMPED_ELEMENTS:
|
| +#define TYPED_ARRAY_CASE(Type, type, TYPE, ctype, size) \
|
| + case EXTERNAL_##TYPE##_ELEMENTS: \
|
| + case TYPE##_ELEMENTS: \
|
| UNREACHABLE();
|
| + TYPED_ARRAYS(TYPED_ARRAY_CASE)
|
| +#undef TYPED_ARRAY_CASE
|
| }
|
| return NULL;
|
| }
|
| @@ -1322,25 +1283,14 @@ class FastDoubleElementsAccessor
|
| from, from_start, to, to_start, copy_size);
|
| break;
|
| case NON_STRICT_ARGUMENTS_ELEMENTS:
|
| - case EXTERNAL_BYTE_ELEMENTS:
|
| - case EXTERNAL_UNSIGNED_BYTE_ELEMENTS:
|
| - case EXTERNAL_SHORT_ELEMENTS:
|
| - case EXTERNAL_UNSIGNED_SHORT_ELEMENTS:
|
| - case EXTERNAL_INT_ELEMENTS:
|
| - case EXTERNAL_UNSIGNED_INT_ELEMENTS:
|
| - case EXTERNAL_FLOAT_ELEMENTS:
|
| - case EXTERNAL_DOUBLE_ELEMENTS:
|
| - case EXTERNAL_PIXEL_ELEMENTS:
|
| - case UINT8_ELEMENTS:
|
| - case INT8_ELEMENTS:
|
| - case UINT16_ELEMENTS:
|
| - case INT16_ELEMENTS:
|
| - case UINT32_ELEMENTS:
|
| - case INT32_ELEMENTS:
|
| - case FLOAT32_ELEMENTS:
|
| - case FLOAT64_ELEMENTS:
|
| - case UINT8_CLAMPED_ELEMENTS:
|
| UNREACHABLE();
|
| +
|
| +#define TYPED_ARRAY_CASE(Type, type, TYPE, ctype, size) \
|
| + case EXTERNAL_##TYPE##_ELEMENTS: \
|
| + case TYPE##_ELEMENTS: \
|
| + UNREACHABLE();
|
| + TYPED_ARRAYS(TYPED_ARRAY_CASE)
|
| +#undef TYPED_ARRAY_CASE
|
| }
|
| return to->GetHeap()->undefined_value();
|
| }
|
| @@ -1377,20 +1327,20 @@ class FastHoleyDoubleElementsAccessor
|
|
|
|
|
| // Super class for all external element arrays.
|
| -template<typename AccessorSubclass,
|
| - ElementsKind Kind>
|
| +template<ElementsKind Kind>
|
| class TypedElementsAccessor
|
| - : public ElementsAccessorBase<AccessorSubclass,
|
| + : public ElementsAccessorBase<TypedElementsAccessor<Kind>,
|
| ElementsKindTraits<Kind> > {
|
| public:
|
| explicit TypedElementsAccessor(const char* name)
|
| - : ElementsAccessorBase<AccessorSubclass,
|
| + : ElementsAccessorBase<AccessorClass,
|
| ElementsKindTraits<Kind> >(name) {}
|
|
|
| protected:
|
| typedef typename ElementsKindTraits<Kind>::BackingStore BackingStore;
|
| + typedef TypedElementsAccessor<Kind> AccessorClass;
|
|
|
| - friend class ElementsAccessorBase<AccessorSubclass,
|
| + friend class ElementsAccessorBase<AccessorClass,
|
| ElementsKindTraits<Kind> >;
|
|
|
| MUST_USE_RESULT static MaybeObject* GetImpl(Object* receiver,
|
| @@ -1398,7 +1348,7 @@ class TypedElementsAccessor
|
| uint32_t key,
|
| FixedArrayBase* backing_store) {
|
| return
|
| - key < AccessorSubclass::GetCapacityImpl(backing_store)
|
| + key < AccessorClass::GetCapacityImpl(backing_store)
|
| ? BackingStore::cast(backing_store)->get(key)
|
| : backing_store->GetHeap()->undefined_value();
|
| }
|
| @@ -1409,7 +1359,7 @@ class TypedElementsAccessor
|
| uint32_t key,
|
| FixedArrayBase* backing_store) {
|
| return
|
| - key < AccessorSubclass::GetCapacityImpl(backing_store)
|
| + key < AccessorClass::GetCapacityImpl(backing_store)
|
| ? NONE : ABSENT;
|
| }
|
|
|
| @@ -1419,7 +1369,7 @@ class TypedElementsAccessor
|
| uint32_t key,
|
| FixedArrayBase* backing_store) {
|
| return
|
| - key < AccessorSubclass::GetCapacityImpl(backing_store)
|
| + key < AccessorClass::GetCapacityImpl(backing_store)
|
| ? FIELD : NONEXISTENT;
|
| }
|
|
|
| @@ -1444,175 +1394,28 @@ class TypedElementsAccessor
|
| uint32_t key,
|
| FixedArrayBase* backing_store) {
|
| uint32_t capacity =
|
| - AccessorSubclass::GetCapacityImpl(backing_store);
|
| + AccessorClass::GetCapacityImpl(backing_store);
|
| return key < capacity;
|
| }
|
| };
|
|
|
|
|
| -class ExternalByteElementsAccessor
|
| - : public TypedElementsAccessor<ExternalByteElementsAccessor,
|
| - EXTERNAL_BYTE_ELEMENTS> {
|
| - public:
|
| - explicit ExternalByteElementsAccessor(const char* name)
|
| - : TypedElementsAccessor<ExternalByteElementsAccessor,
|
| - EXTERNAL_BYTE_ELEMENTS>(name) {}
|
| -};
|
| -
|
| -
|
| -class ExternalUnsignedByteElementsAccessor
|
| - : public TypedElementsAccessor<ExternalUnsignedByteElementsAccessor,
|
| - EXTERNAL_UNSIGNED_BYTE_ELEMENTS> {
|
| - public:
|
| - explicit ExternalUnsignedByteElementsAccessor(const char* name)
|
| - : TypedElementsAccessor<ExternalUnsignedByteElementsAccessor,
|
| - EXTERNAL_UNSIGNED_BYTE_ELEMENTS>(name) {}
|
| -};
|
|
|
| +#define EXTERNAL_ELEMENTS_ACCESSOR(Type, type, TYPE, ctype, size) \
|
| + typedef TypedElementsAccessor<EXTERNAL_##TYPE##_ELEMENTS> \
|
| + External##Type##ElementsAccessor;
|
|
|
| -class ExternalShortElementsAccessor
|
| - : public TypedElementsAccessor<ExternalShortElementsAccessor,
|
| - EXTERNAL_SHORT_ELEMENTS> {
|
| - public:
|
| - explicit ExternalShortElementsAccessor(const char* name)
|
| - : TypedElementsAccessor<ExternalShortElementsAccessor,
|
| - EXTERNAL_SHORT_ELEMENTS>(name) {}
|
| -};
|
| +TYPED_ARRAYS(EXTERNAL_ELEMENTS_ACCESSOR)
|
| +#undef EXTERNAL_ELEMENTS_ACCESSOR
|
|
|
| +#define FIXED_ELEMENTS_ACCESSOR(Type, type, TYPE, ctype, size) \
|
| + typedef TypedElementsAccessor<TYPE##_ELEMENTS > \
|
| + Fixed##Type##ElementsAccessor;
|
|
|
| -class ExternalUnsignedShortElementsAccessor
|
| - : public TypedElementsAccessor<ExternalUnsignedShortElementsAccessor,
|
| - EXTERNAL_UNSIGNED_SHORT_ELEMENTS> {
|
| - public:
|
| - explicit ExternalUnsignedShortElementsAccessor(const char* name)
|
| - : TypedElementsAccessor<ExternalUnsignedShortElementsAccessor,
|
| - EXTERNAL_UNSIGNED_SHORT_ELEMENTS>(name) {}
|
| -};
|
| +TYPED_ARRAYS(FIXED_ELEMENTS_ACCESSOR)
|
| +#undef FIXED_ELEMENTS_ACCESSOR
|
|
|
|
|
| -class ExternalIntElementsAccessor
|
| - : public TypedElementsAccessor<ExternalIntElementsAccessor,
|
| - EXTERNAL_INT_ELEMENTS> {
|
| - public:
|
| - explicit ExternalIntElementsAccessor(const char* name)
|
| - : TypedElementsAccessor<ExternalIntElementsAccessor,
|
| - EXTERNAL_INT_ELEMENTS>(name) {}
|
| -};
|
| -
|
| -
|
| -class ExternalUnsignedIntElementsAccessor
|
| - : public TypedElementsAccessor<ExternalUnsignedIntElementsAccessor,
|
| - EXTERNAL_UNSIGNED_INT_ELEMENTS> {
|
| - public:
|
| - explicit ExternalUnsignedIntElementsAccessor(const char* name)
|
| - : TypedElementsAccessor<ExternalUnsignedIntElementsAccessor,
|
| - EXTERNAL_UNSIGNED_INT_ELEMENTS>(name) {}
|
| -};
|
| -
|
| -
|
| -class ExternalFloatElementsAccessor
|
| - : public TypedElementsAccessor<ExternalFloatElementsAccessor,
|
| - EXTERNAL_FLOAT_ELEMENTS> {
|
| - public:
|
| - explicit ExternalFloatElementsAccessor(const char* name)
|
| - : TypedElementsAccessor<ExternalFloatElementsAccessor,
|
| - EXTERNAL_FLOAT_ELEMENTS>(name) {}
|
| -};
|
| -
|
| -
|
| -class ExternalDoubleElementsAccessor
|
| - : public TypedElementsAccessor<ExternalDoubleElementsAccessor,
|
| - EXTERNAL_DOUBLE_ELEMENTS> {
|
| - public:
|
| - explicit ExternalDoubleElementsAccessor(const char* name)
|
| - : TypedElementsAccessor<ExternalDoubleElementsAccessor,
|
| - EXTERNAL_DOUBLE_ELEMENTS>(name) {}
|
| -};
|
| -
|
| -
|
| -class PixelElementsAccessor
|
| - : public TypedElementsAccessor<PixelElementsAccessor,
|
| - EXTERNAL_PIXEL_ELEMENTS> {
|
| - public:
|
| - explicit PixelElementsAccessor(const char* name)
|
| - : TypedElementsAccessor<PixelElementsAccessor,
|
| - EXTERNAL_PIXEL_ELEMENTS>(name) {}
|
| -};
|
| -
|
| -
|
| -class FixedUint8ArrayAccessor
|
| - : public TypedElementsAccessor<FixedUint8ArrayAccessor,
|
| - UINT8_ELEMENTS> {
|
| - public:
|
| - explicit FixedUint8ArrayAccessor(const char* name)
|
| - : TypedElementsAccessor<FixedUint8ArrayAccessor,
|
| - UINT8_ELEMENTS>(name) {}
|
| -};
|
| -class FixedUint8ClampedArrayAccessor
|
| - : public TypedElementsAccessor<FixedUint8ClampedArrayAccessor,
|
| - UINT8_CLAMPED_ELEMENTS> {
|
| - public:
|
| - explicit FixedUint8ClampedArrayAccessor(const char* name)
|
| - : TypedElementsAccessor<FixedUint8ClampedArrayAccessor,
|
| - UINT8_CLAMPED_ELEMENTS>(name) {}
|
| -};
|
| -class FixedInt8ArrayAccessor
|
| - : public TypedElementsAccessor<FixedInt8ArrayAccessor,
|
| - INT8_ELEMENTS> {
|
| - public:
|
| - explicit FixedInt8ArrayAccessor(const char* name)
|
| - : TypedElementsAccessor<FixedInt8ArrayAccessor,
|
| - INT8_ELEMENTS>(name) {}
|
| -};
|
| -class FixedUint16ArrayAccessor
|
| - : public TypedElementsAccessor<FixedUint16ArrayAccessor,
|
| - UINT16_ELEMENTS> {
|
| - public:
|
| - explicit FixedUint16ArrayAccessor(const char* name)
|
| - : TypedElementsAccessor<FixedUint16ArrayAccessor,
|
| - UINT16_ELEMENTS>(name) {}
|
| -};
|
| -class FixedInt16ArrayAccessor
|
| - : public TypedElementsAccessor<FixedInt16ArrayAccessor,
|
| - INT16_ELEMENTS> {
|
| - public:
|
| - explicit FixedInt16ArrayAccessor(const char* name)
|
| - : TypedElementsAccessor<FixedInt16ArrayAccessor,
|
| - INT16_ELEMENTS>(name) {}
|
| -};
|
| -class FixedUint32ArrayAccessor
|
| - : public TypedElementsAccessor<FixedUint32ArrayAccessor,
|
| - UINT32_ELEMENTS> {
|
| - public:
|
| - explicit FixedUint32ArrayAccessor(const char* name)
|
| - : TypedElementsAccessor<FixedUint32ArrayAccessor,
|
| - UINT32_ELEMENTS>(name) {}
|
| -};
|
| -class FixedInt32ArrayAccessor
|
| - : public TypedElementsAccessor<FixedInt32ArrayAccessor,
|
| - INT32_ELEMENTS> {
|
| - public:
|
| - explicit FixedInt32ArrayAccessor(const char* name)
|
| - : TypedElementsAccessor<FixedInt32ArrayAccessor,
|
| - INT32_ELEMENTS>(name) {}
|
| -};
|
| -
|
| -class FixedFloat32ArrayAccessor
|
| - : public TypedElementsAccessor<FixedFloat32ArrayAccessor,
|
| - FLOAT32_ELEMENTS> {
|
| - public:
|
| - explicit FixedFloat32ArrayAccessor(const char* name)
|
| - : TypedElementsAccessor<FixedFloat32ArrayAccessor,
|
| - FLOAT32_ELEMENTS>(name) {}
|
| -};
|
| -class FixedFloat64ArrayAccessor
|
| - : public TypedElementsAccessor<FixedFloat64ArrayAccessor,
|
| - FLOAT64_ELEMENTS> {
|
| - public:
|
| - explicit FixedFloat64ArrayAccessor(const char* name)
|
| - : TypedElementsAccessor<FixedFloat64ArrayAccessor,
|
| - FLOAT64_ELEMENTS>(name) {}
|
| -};
|
|
|
| class DictionaryElementsAccessor
|
| : public ElementsAccessorBase<DictionaryElementsAccessor,
|
|
|