| Index: src/elements.cc
|
| diff --git a/src/elements.cc b/src/elements.cc
|
| index 7ef13b30dedc38511410ef9a5bfb91cdd0297f4b..d1ddc8dc481a6778c878e05229344bef86bd22b5 100644
|
| --- a/src/elements.cc
|
| +++ b/src/elements.cc
|
| @@ -27,6 +27,15 @@
|
| // - FastPackedDoubleElementsAccessor
|
| // - FastHoleyDoubleElementsAccessor
|
| // - TypedElementsAccessor: template, with instantiations:
|
| +// - ExternalInt8ElementsAccessor
|
| +// - ExternalUint8ElementsAccessor
|
| +// - ExternalInt16ElementsAccessor
|
| +// - ExternalUint16ElementsAccessor
|
| +// - ExternalInt32ElementsAccessor
|
| +// - ExternalUint32ElementsAccessor
|
| +// - ExternalFloat32ElementsAccessor
|
| +// - ExternalFloat64ElementsAccessor
|
| +// - ExternalUint8ClampedElementsAccessor
|
| // - FixedUint8ElementsAccessor
|
| // - FixedInt8ElementsAccessor
|
| // - FixedUint16ElementsAccessor
|
| @@ -70,6 +79,23 @@
|
| FixedArray) \
|
| V(SlowSloppyArgumentsElementsAccessor, SLOW_SLOPPY_ARGUMENTS_ELEMENTS, \
|
| FixedArray) \
|
| + 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) \
|
| @@ -1192,6 +1218,7 @@
|
| case SLOW_SLOPPY_ARGUMENTS_ELEMENTS:
|
| UNREACHABLE();
|
| #define TYPED_ARRAY_CASE(Type, type, TYPE, ctype, size) \
|
| + case EXTERNAL_##TYPE##_ELEMENTS: \
|
| case TYPE##_ELEMENTS: \
|
| UNREACHABLE();
|
| TYPED_ARRAYS(TYPED_ARRAY_CASE)
|
| @@ -1288,6 +1315,7 @@
|
| UNREACHABLE();
|
|
|
| #define TYPED_ARRAY_CASE(Type, type, TYPE, ctype, size) \
|
| + case EXTERNAL_##TYPE##_ELEMENTS: \
|
| case TYPE##_ELEMENTS: \
|
| UNREACHABLE();
|
| TYPED_ARRAYS(TYPED_ARRAY_CASE)
|
| @@ -1377,6 +1405,13 @@
|
| };
|
|
|
|
|
| +
|
| +#define EXTERNAL_ELEMENTS_ACCESSOR(Type, type, TYPE, ctype, size) \
|
| + typedef TypedElementsAccessor<EXTERNAL_##TYPE##_ELEMENTS> \
|
| + External##Type##ElementsAccessor;
|
| +
|
| +TYPED_ARRAYS(EXTERNAL_ELEMENTS_ACCESSOR)
|
| +#undef EXTERNAL_ELEMENTS_ACCESSOR
|
|
|
| #define FIXED_ELEMENTS_ACCESSOR(Type, type, TYPE, ctype, size) \
|
| typedef TypedElementsAccessor<TYPE##_ELEMENTS > \
|
|
|