| Index: src/objects.h
|
| diff --git a/src/objects.h b/src/objects.h
|
| index df6d801a712df6aa2c11883bd0b826202d89513d..4f852341af4f7a781709f1b2a1e6f7152fcdf97d 100644
|
| --- a/src/objects.h
|
| +++ b/src/objects.h
|
| @@ -4020,7 +4020,7 @@ class DeoptimizationInputData: public FixedArray {
|
| static const int kFirstDeoptEntryIndex = 5;
|
|
|
| // Offsets of deopt entry elements relative to the start of the entry.
|
| - static const int kAstIdOffset = 0;
|
| + static const int kAstIdRawOffset = 0;
|
| static const int kTranslationIndexOffset = 1;
|
| static const int kArgumentsStackHeightOffset = 2;
|
| static const int kPcOffset = 3;
|
| @@ -4052,13 +4052,21 @@ class DeoptimizationInputData: public FixedArray {
|
| set(IndexForEntry(i) + k##name##Offset, value); \
|
| }
|
|
|
| - DEFINE_ENTRY_ACCESSORS(AstId, Smi)
|
| + DEFINE_ENTRY_ACCESSORS(AstIdRaw, Smi)
|
| DEFINE_ENTRY_ACCESSORS(TranslationIndex, Smi)
|
| DEFINE_ENTRY_ACCESSORS(ArgumentsStackHeight, Smi)
|
| DEFINE_ENTRY_ACCESSORS(Pc, Smi)
|
|
|
| #undef DEFINE_ENTRY_ACCESSORS
|
|
|
| + BailoutId AstId(int i) {
|
| + return BailoutId(AstIdRaw(i)->value());
|
| + }
|
| +
|
| + void SetAstId(int i, BailoutId value) {
|
| + SetAstIdRaw(i, Smi::FromInt(value.ToInt()));
|
| + }
|
| +
|
| int DeoptCount() {
|
| return (length() - kFirstDeoptEntryIndex) / kDeoptEntrySize;
|
| }
|
| @@ -4093,8 +4101,15 @@ class DeoptimizationInputData: public FixedArray {
|
| class DeoptimizationOutputData: public FixedArray {
|
| public:
|
| int DeoptPoints() { return length() / 2; }
|
| - Smi* AstId(int index) { return Smi::cast(get(index * 2)); }
|
| - void SetAstId(int index, Smi* id) { set(index * 2, id); }
|
| +
|
| + BailoutId AstId(int index) {
|
| + return BailoutId(Smi::cast(get(index * 2))->value());
|
| + }
|
| +
|
| + void SetAstId(int index, BailoutId id) {
|
| + set(index * 2, Smi::FromInt(id.ToInt()));
|
| + }
|
| +
|
| Smi* PcAndState(int index) { return Smi::cast(get(1 + index * 2)); }
|
| void SetPcAndState(int index, Smi* offset) { set(1 + index * 2, offset); }
|
|
|
| @@ -4129,8 +4144,8 @@ class TypeFeedbackCells: public FixedArray {
|
| static int LengthOfFixedArray(int cell_count) { return cell_count * 2; }
|
|
|
| // Accessors for AST ids associated with cache values.
|
| - inline Smi* AstId(int index);
|
| - inline void SetAstId(int index, Smi* id);
|
| + inline TypeFeedbackId AstId(int index);
|
| + inline void SetAstId(int index, TypeFeedbackId id);
|
|
|
| // Accessors for global property cells holding the cache values.
|
| inline JSGlobalPropertyCell* Cell(int index);
|
| @@ -5669,7 +5684,7 @@ class SharedFunctionInfo: public HeapObject {
|
| // Lookup the bailout ID and ASSERT that it exists in the non-optimized
|
| // code, returns whether it asserted (i.e., always true if assertions are
|
| // disabled).
|
| - bool VerifyBailoutId(int id);
|
| + bool VerifyBailoutId(BailoutId id);
|
|
|
| // Check whether a inlined constructor can be generated with the given
|
| // prototype.
|
| @@ -6032,7 +6047,7 @@ class JSFunction: public JSObject {
|
| static bool CompileLazy(Handle<JSFunction> function,
|
| ClearExceptionFlag flag);
|
| static bool CompileOptimized(Handle<JSFunction> function,
|
| - int osr_ast_id,
|
| + BailoutId osr_ast_id,
|
| ClearExceptionFlag flag);
|
|
|
| // Tells whether or not the function is already marked for lazy
|
|
|