Chromium Code Reviews| Index: src/objects.h |
| diff --git a/src/objects.h b/src/objects.h |
| index bf0d240266fecda50c338350c15c5d72a820b959..e09c29de8dab25c3ef6e4b914963701f0b23655c 100644 |
| --- a/src/objects.h |
| +++ b/src/objects.h |
| @@ -1121,6 +1121,7 @@ class MaybeObject BASE_EMBEDDED { |
| "Expected property cell in register rbx") \ |
| V(kExpectingAlignmentForCopyBytes, \ |
| "Expecting alignment for CopyBytes") \ |
| + V(kExportDeclaration, "Export declaration") \ |
| V(kExternalStringExpectedButNotFound, \ |
| "external string expected, but not found") \ |
| V(kFailedBailedOutLastTime, "failed/bailed out last time") \ |
| @@ -1140,6 +1141,7 @@ class MaybeObject BASE_EMBEDDED { |
| V(kGlobalFunctionsMustHaveInitialMap, \ |
| "Global functions must have initial map") \ |
| V(kHeapNumberMapRegisterClobbered, "HeapNumberMap register clobbered") \ |
| + V(kImportDeclaration, "Import declaration") \ |
| V(kImproperObjectOnPrototypeChainForStore, \ |
| "improper object on prototype chain for store") \ |
| V(kIndexIsNegative, "Index is negative") \ |
| @@ -1196,6 +1198,12 @@ class MaybeObject BASE_EMBEDDED { |
| V(kLookupVariableInCountOperation, \ |
| "lookup variable in count operation") \ |
| V(kMapIsNoLongerInEax, "Map is no longer in eax") \ |
| + V(kModuleDeclaration, "Module declaration") \ |
| + V(kModuleLiteral, "Module literal") \ |
| + V(kModulePath, "Module path") \ |
| + V(kModuleStatement, "Module statement") \ |
| + V(kModuleVariable, "Module variable") \ |
| + V(kModuleUrl, "Module url") \ |
| V(kNoCasesLeft, "no cases left") \ |
| V(kNoEmptyArraysHereInEmitFastAsciiArrayJoin, \ |
| "No empty arrays here in EmitFastAsciiArrayJoin") \ |
| @@ -1237,7 +1245,7 @@ class MaybeObject BASE_EMBEDDED { |
| V(kRegisterDidNotMatchExpectedRoot, "Register did not match expected root") \ |
| V(kRegisterWasClobbered, "register was clobbered") \ |
| V(kScopedBlock, "ScopedBlock") \ |
| - V(kSharedFunctionInfoLiteral, "SharedFunctionInfoLiteral") \ |
| + V(kSharedFunctionInfoLiteral, "Shared function info literal") \ |
| V(kSmiAdditionOverflow, "Smi addition overflow") \ |
| V(kSmiSubtractionOverflow, "Smi subtraction overflow") \ |
| V(kStackFrameTypesMustMatch, "stack frame types must match") \ |
| @@ -1323,7 +1331,8 @@ class MaybeObject BASE_EMBEDDED { |
| "we should not have an empty lexical context") \ |
| V(kWithStatement, "WithStatement") \ |
| V(kWrongAddressOrValuePassedToRecordWrite, \ |
| - "Wrong address or value passed to RecordWrite") |
| + "Wrong address or value passed to RecordWrite") \ |
| + V(kYield, "Yeld") |
|
Benedikt Meurer
2013/09/05 07:42:11
Shouldn't that read "Yield"?
loislo
2013/09/05 07:47:58
Done.
|
| #define ERROR_MESSAGES_CONSTANTS(C, T) C, |
| @@ -6554,6 +6563,8 @@ class SharedFunctionInfo: public HeapObject { |
| // shared function info. |
| void DisableOptimization(BailoutReason reason); |
| + inline BailoutReason DisableOptimizationReason(); |
| + |
| // 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). |
| @@ -6583,6 +6594,21 @@ class SharedFunctionInfo: public HeapObject { |
| inline void set_counters(int value); |
| inline int counters(); |
| + // Stores opt_count and bailout_reason as bit-fields. |
| + inline void set_opt_count_and_bailout_reason(int value); |
| + inline int opt_count_and_bailout_reason(); |
| + |
| + void set_bailout_reason(BailoutReason reason) { |
| + set_opt_count_and_bailout_reason( |
| + DisabledOptimizationReasonBits::update(opt_count_and_bailout_reason(), |
| + reason)); |
| + } |
| + |
| + void set_dont_optimize_reason(BailoutReason reason) { |
| + set_bailout_reason(reason); |
| + set_dont_optimize(reason != kNoReason); |
| + } |
| + |
| // Source size of this function. |
| int SourceSize(); |
| @@ -6649,8 +6675,10 @@ class SharedFunctionInfo: public HeapObject { |
| kEndPositionOffset + kPointerSize; |
| static const int kCompilerHintsOffset = |
| kFunctionTokenPositionOffset + kPointerSize; |
| - static const int kOptCountOffset = kCompilerHintsOffset + kPointerSize; |
| - static const int kCountersOffset = kOptCountOffset + kPointerSize; |
| + static const int kOptCountAndBailoutReasonOffset = |
| + kCompilerHintsOffset + kPointerSize; |
| + static const int kCountersOffset = |
| + kOptCountAndBailoutReasonOffset + kPointerSize; |
| // Total size. |
| static const int kSize = kCountersOffset + kPointerSize; |
| @@ -6684,9 +6712,11 @@ class SharedFunctionInfo: public HeapObject { |
| static const int kCompilerHintsOffset = |
| kFunctionTokenPositionOffset + kIntSize; |
| - static const int kOptCountOffset = kCompilerHintsOffset + kIntSize; |
| + static const int kOptCountAndBailoutReasonOffset = |
| + kCompilerHintsOffset + kIntSize; |
| - static const int kCountersOffset = kOptCountOffset + kIntSize; |
| + static const int kCountersOffset = |
| + kOptCountAndBailoutReasonOffset + kIntSize; |
| // Total size. |
| static const int kSize = kCountersOffset + kIntSize; |
| @@ -6745,6 +6775,9 @@ class SharedFunctionInfo: public HeapObject { |
| class OptReenableTriesBits: public BitField<int, 4, 18> {}; |
| class ICAgeBits: public BitField<int, 22, 8> {}; |
| + class OptCountBits: public BitField<int, 0, 22> {}; |
| + class DisabledOptimizationReasonBits: public BitField<int, 22, 8> {}; |
| + |
| private: |
| #if V8_HOST_ARCH_32_BIT |
| // On 32 bit platforms, compiler hints is a smi. |