| Index: src/objects.h
|
| diff --git a/src/objects.h b/src/objects.h
|
| index ef3f31df4793aefb3cdfbc7012a9c889589b8fb7..3aa26e15413e63d89d26944e5e3e07ca1595f4d7 100644
|
| --- a/src/objects.h
|
| +++ b/src/objects.h
|
| @@ -20,6 +20,7 @@
|
| #include "src/list.h"
|
| #include "src/messages.h"
|
| #include "src/property-details.h"
|
| +#include "src/source-position.h"
|
| #include "src/unicode-decoder.h"
|
| #include "src/unicode.h"
|
| #include "src/zone/zone.h"
|
| @@ -4955,6 +4956,25 @@ class ByteArray: public FixedArrayBase {
|
| DISALLOW_IMPLICIT_CONSTRUCTORS(ByteArray);
|
| };
|
|
|
| +template <class T>
|
| +class PodArray : public ByteArray {
|
| + public:
|
| + STATIC_ASSERT(std::is_pod<T>::value);
|
| + T get(int index) {
|
| + T result;
|
| + copy_out(index * sizeof(T), reinterpret_cast<byte*>(&result), sizeof(T));
|
| + return result;
|
| + }
|
| + void set(int index, const T& value) {
|
| + copy_in(index * sizeof(T), reinterpret_cast<const byte*>(&value),
|
| + sizeof(T));
|
| + }
|
| + int length() { return ByteArray::length() / sizeof(T); }
|
| + DECLARE_CAST(PodArray<T>);
|
| +
|
| + private:
|
| + DISALLOW_IMPLICIT_CONSTRUCTORS(PodArray<T>);
|
| +};
|
|
|
| // BytecodeArray represents a sequence of interpreter bytecodes.
|
| class BytecodeArray : public FixedArrayBase {
|
| @@ -5187,7 +5207,6 @@ TYPED_ARRAYS(FIXED_TYPED_ARRAY_TRAITS)
|
|
|
| #undef FIXED_TYPED_ARRAY_TRAITS
|
|
|
| -
|
| // 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
|
| @@ -5206,7 +5225,8 @@ class DeoptimizationInputData: public FixedArray {
|
| static const int kOptimizationIdIndex = 5;
|
| static const int kSharedFunctionInfoIndex = 6;
|
| static const int kWeakCellCacheIndex = 7;
|
| - static const int kFirstDeoptEntryIndex = 8;
|
| + static const int kInliningPositionsIndex = 8;
|
| + static const int kFirstDeoptEntryIndex = 9;
|
|
|
| // Offsets of deopt entry elements relative to the start of the entry.
|
| static const int kAstIdRawOffset = 0;
|
| @@ -5228,6 +5248,7 @@ class DeoptimizationInputData: public FixedArray {
|
| DECLARE_ELEMENT_ACCESSORS(OptimizationId, Smi)
|
| DECLARE_ELEMENT_ACCESSORS(SharedFunctionInfo, Object)
|
| DECLARE_ELEMENT_ACCESSORS(WeakCellCache, Object)
|
| + DECLARE_ELEMENT_ACCESSORS(InliningPositions, PodArray<InliningPosition>)
|
|
|
| #undef DECLARE_ELEMENT_ACCESSORS
|
|
|
| @@ -5269,7 +5290,6 @@ class DeoptimizationInputData: public FixedArray {
|
| static int LengthFor(int entry_count) { return IndexForEntry(entry_count); }
|
| };
|
|
|
| -
|
| // DeoptimizationOutputData is a fixed array used to hold the deoptimization
|
| // data for code generated by the full compiler.
|
| // The format of the these objects is
|
|
|