Index: src/objects.h |
diff --git a/src/objects.h b/src/objects.h |
index 03445e8745568dbad527d35d262d390b8ba14e41..fc89b578b3f87596770a6bf97381049a29f709d3 100644 |
--- a/src/objects.h |
+++ b/src/objects.h |
@@ -523,6 +523,7 @@ enum InstanceType { |
EXTERNAL_INT_ARRAY_TYPE, |
EXTERNAL_UNSIGNED_INT_ARRAY_TYPE, |
EXTERNAL_FLOAT_ARRAY_TYPE, |
+ EXTERNAL_DOUBLE_ARRAY_TYPE, |
EXTERNAL_PIXEL_ARRAY_TYPE, // LAST_EXTERNAL_ARRAY_TYPE |
FILLER_TYPE, // LAST_DATA_TYPE |
@@ -691,6 +692,7 @@ class MaybeObject BASE_EMBEDDED { |
V(ExternalIntArray) \ |
V(ExternalUnsignedIntArray) \ |
V(ExternalFloatArray) \ |
+ V(ExternalDoubleArray) \ |
V(ExternalPixelArray) \ |
V(ByteArray) \ |
V(JSObject) \ |
@@ -1336,6 +1338,7 @@ class JSObject: public HeapObject { |
EXTERNAL_INT_ELEMENTS, |
EXTERNAL_UNSIGNED_INT_ELEMENTS, |
EXTERNAL_FLOAT_ELEMENTS, |
+ EXTERNAL_DOUBLE_ELEMENTS, |
EXTERNAL_PIXEL_ELEMENTS |
}; |
@@ -1377,6 +1380,7 @@ class JSObject: public HeapObject { |
inline bool HasExternalIntElements(); |
inline bool HasExternalUnsignedIntElements(); |
inline bool HasExternalFloatElements(); |
+ inline bool HasExternalDoubleElements(); |
inline bool AllowsSetElementsLength(); |
inline NumberDictionary* element_dictionary(); // Gets slow elements. |
// Requires: this->HasFastElements(). |
@@ -3093,6 +3097,34 @@ class ExternalFloatArray: public ExternalArray { |
}; |
+class ExternalDoubleArray: public ExternalArray { |
+ public: |
+ // Setter and getter. |
+ inline double get(int index); |
+ inline void set(int index, double value); |
+ |
+ // This accessor applies the correct conversion from Smi, HeapNumber |
+ // and undefined. |
+ MaybeObject* SetValue(uint32_t index, Object* value); |
+ |
+ // Casting. |
+ static inline ExternalDoubleArray* cast(Object* obj); |
+ |
+#ifdef OBJECT_PRINT |
+ inline void ExternalDoubleArrayPrint() { |
+ ExternalDoubleArrayPrint(stdout); |
+ } |
+ void ExternalDoubleArrayPrint(FILE* out); |
+#endif // OBJECT_PRINT |
+#ifdef DEBUG |
+ void ExternalDoubleArrayVerify(); |
+#endif // DEBUG |
+ |
+ private: |
+ DISALLOW_IMPLICIT_CONSTRUCTORS(ExternalDoubleArray); |
+}; |
+ |
+ |
// DeoptimizationInputData is a fixed array used to hold the deoptimization |
// data for code generated by the Hydrogen/Lithium compiler. It also |
// contains information about functions that were inlined. If N different |