@@ -217,6 +217,34 @@ namespace Js
217
217
};
218
218
219
219
template <typename TypeName, bool clamped = false , bool virtualAllocated = false >
220
+ class TypedArray ;
221
+
222
+ // These are referenced in the TypedArray implementation, so we need to forward-typedef these.
223
+
224
+ typedef TypedArray<int8> Int8Array;
225
+ typedef TypedArray<uint8,false > Uint8Array;
226
+ typedef TypedArray<uint8,true > Uint8ClampedArray;
227
+ typedef TypedArray<int16> Int16Array;
228
+ typedef TypedArray<uint16> Uint16Array;
229
+ typedef TypedArray<int32> Int32Array;
230
+ typedef TypedArray<uint32> Uint32Array;
231
+ typedef TypedArray<float > Float32Array;
232
+ typedef TypedArray<double > Float64Array;
233
+ typedef TypedArray<int64> Int64Array;
234
+ typedef TypedArray<uint64> Uint64Array;
235
+ typedef TypedArray<bool > BoolArray;
236
+ typedef TypedArray<int8, false , true > Int8VirtualArray;
237
+ typedef TypedArray<uint8, false , true > Uint8VirtualArray;
238
+ typedef TypedArray<uint8, true , true > Uint8ClampedVirtualArray;
239
+ typedef TypedArray<int16, false , true > Int16VirtualArray;
240
+ typedef TypedArray<uint16, false , true > Uint16VirtualArray;
241
+ typedef TypedArray<int32, false , true > Int32VirtualArray;
242
+ typedef TypedArray<uint32, false , true > Uint32VirtualArray;
243
+ typedef TypedArray<float , false , true > Float32VirtualArray;
244
+ typedef TypedArray<double , false , true > Float64VirtualArray;
245
+
246
+
247
+ template <typename TypeName, bool clamped /* = false*/ , bool virtualAllocated /* = false*/ >
220
248
class TypedArray : public TypedArrayBase
221
249
{
222
250
protected:
@@ -625,34 +653,34 @@ namespace Js
625
653
626
654
#if defined(__clang__)
627
655
// hack for clang message: "...add an explicit instantiation declaration to .."
628
- #define __EXPLICIT_INSTANTINATE_TA (x ) x; \
656
+ #define __EXPLICIT_INSTANTINATE_TA (x ) \
629
657
template <> FunctionInfo Js::x::EntryInfo::NewInstance;\
630
658
template <> FunctionInfo Js::x::EntryInfo::Set
631
659
#else // MSVC
632
- #define __EXPLICIT_INSTANTINATE_TA (x ) x
660
+ #define __EXPLICIT_INSTANTINATE_TA (x )
633
661
#endif
634
662
635
- typedef TypedArray<int8> __EXPLICIT_INSTANTINATE_TA (Int8Array);
636
- typedef TypedArray<uint8, false > __EXPLICIT_INSTANTINATE_TA (Uint8Array);
637
- typedef TypedArray<uint8, true > __EXPLICIT_INSTANTINATE_TA (Uint8ClampedArray);
638
- typedef TypedArray<int16> __EXPLICIT_INSTANTINATE_TA (Int16Array);
639
- typedef TypedArray<uint16> __EXPLICIT_INSTANTINATE_TA (Uint16Array);
640
- typedef TypedArray<int32> __EXPLICIT_INSTANTINATE_TA (Int32Array);
641
- typedef TypedArray<uint32> __EXPLICIT_INSTANTINATE_TA (Uint32Array);
642
- typedef TypedArray< float > __EXPLICIT_INSTANTINATE_TA (Float32Array);
643
- typedef TypedArray< double > __EXPLICIT_INSTANTINATE_TA (Float64Array);
644
- typedef TypedArray<int64> __EXPLICIT_INSTANTINATE_TA (Int64Array);
645
- typedef TypedArray<uint64> __EXPLICIT_INSTANTINATE_TA (Uint64Array);
646
- typedef TypedArray< bool > __EXPLICIT_INSTANTINATE_TA (BoolArray);
647
- typedef TypedArray<int8, false , true > __EXPLICIT_INSTANTINATE_TA (Int8VirtualArray);
648
- typedef TypedArray<uint8, false , true > __EXPLICIT_INSTANTINATE_TA (Uint8VirtualArray);
649
- typedef TypedArray<uint8, true , true > __EXPLICIT_INSTANTINATE_TA (Uint8ClampedVirtualArray);
650
- typedef TypedArray<int16, false , true > __EXPLICIT_INSTANTINATE_TA (Int16VirtualArray);
651
- typedef TypedArray<uint16, false , true > __EXPLICIT_INSTANTINATE_TA (Uint16VirtualArray);
652
- typedef TypedArray<int32, false , true > __EXPLICIT_INSTANTINATE_TA (Int32VirtualArray);
653
- typedef TypedArray<uint32, false , true > __EXPLICIT_INSTANTINATE_TA (Uint32VirtualArray);
654
- typedef TypedArray< float , false , true > __EXPLICIT_INSTANTINATE_TA (Float32VirtualArray);
655
- typedef TypedArray< double , false , true > __EXPLICIT_INSTANTINATE_TA (Float64VirtualArray);
663
+ __EXPLICIT_INSTANTINATE_TA (Int8Array);
664
+ __EXPLICIT_INSTANTINATE_TA (Uint8Array);
665
+ __EXPLICIT_INSTANTINATE_TA (Uint8ClampedArray);
666
+ __EXPLICIT_INSTANTINATE_TA (Int16Array);
667
+ __EXPLICIT_INSTANTINATE_TA (Uint16Array);
668
+ __EXPLICIT_INSTANTINATE_TA (Int32Array);
669
+ __EXPLICIT_INSTANTINATE_TA (Uint32Array);
670
+ __EXPLICIT_INSTANTINATE_TA (Float32Array);
671
+ __EXPLICIT_INSTANTINATE_TA (Float64Array);
672
+ __EXPLICIT_INSTANTINATE_TA (Int64Array);
673
+ __EXPLICIT_INSTANTINATE_TA (Uint64Array);
674
+ __EXPLICIT_INSTANTINATE_TA (BoolArray);
675
+ __EXPLICIT_INSTANTINATE_TA (Int8VirtualArray);
676
+ __EXPLICIT_INSTANTINATE_TA (Uint8VirtualArray);
677
+ __EXPLICIT_INSTANTINATE_TA (Uint8ClampedVirtualArray);
678
+ __EXPLICIT_INSTANTINATE_TA (Int16VirtualArray);
679
+ __EXPLICIT_INSTANTINATE_TA (Uint16VirtualArray);
680
+ __EXPLICIT_INSTANTINATE_TA (Int32VirtualArray);
681
+ __EXPLICIT_INSTANTINATE_TA (Uint32VirtualArray);
682
+ __EXPLICIT_INSTANTINATE_TA (Float32VirtualArray);
683
+ __EXPLICIT_INSTANTINATE_TA (Float64VirtualArray);
656
684
657
685
#undef __EXPLICIT_INSTANTINATE_TA
658
686
}
0 commit comments