| OLD | NEW | 
|---|
| 1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 the V8 project authors. All rights reserved. | 
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without | 
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are | 
| 4 // met: | 4 // met: | 
| 5 // | 5 // | 
| 6 //     * Redistributions of source code must retain the above copyright | 6 //     * Redistributions of source code must retain the above copyright | 
| 7 //       notice, this list of conditions and the following disclaimer. | 7 //       notice, this list of conditions and the following disclaimer. | 
| 8 //     * Redistributions in binary form must reproduce the above | 8 //     * Redistributions in binary form must reproduce the above | 
| 9 //       copyright notice, this list of conditions and the following | 9 //       copyright notice, this list of conditions and the following | 
| 10 //       disclaimer in the documentation and/or other materials provided | 10 //       disclaimer in the documentation and/or other materials provided | 
| (...skipping 4712 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 4723   // True if the function has any duplicated parameter names. | 4723   // True if the function has any duplicated parameter names. | 
| 4724   DECL_BOOLEAN_ACCESSORS(has_duplicate_parameters) | 4724   DECL_BOOLEAN_ACCESSORS(has_duplicate_parameters) | 
| 4725 | 4725 | 
| 4726   // Indicates whether the function is a native function. | 4726   // Indicates whether the function is a native function. | 
| 4727   // These needs special threatment in .call and .apply since | 4727   // These needs special threatment in .call and .apply since | 
| 4728   // null passed as the receiver should not be translated to the | 4728   // null passed as the receiver should not be translated to the | 
| 4729   // global object. | 4729   // global object. | 
| 4730   inline bool native(); | 4730   inline bool native(); | 
| 4731   inline void set_native(bool value); | 4731   inline void set_native(bool value); | 
| 4732 | 4732 | 
| 4733   // Indicates that the function was created by the Function function. |  | 
| 4734   // Though it's anonymous, toString should treat it as if it had the name |  | 
| 4735   // "anonymous".  We don't set the name itself so that the system does not |  | 
| 4736   // see a binding for it. |  | 
| 4737   inline bool name_should_print_as_anonymous(); |  | 
| 4738   inline void set_name_should_print_as_anonymous(bool flag); |  | 
| 4739 |  | 
| 4740   // Indicates whether the function is a bound function created using | 4733   // Indicates whether the function is a bound function created using | 
| 4741   // the bind function. | 4734   // the bind function. | 
| 4742   inline bool bound(); | 4735   inline bool bound(); | 
| 4743   inline void set_bound(bool value); | 4736   inline void set_bound(bool value); | 
| 4744 | 4737 | 
| 4745   // Indicates whether or not the code in the shared function support | 4738   // Indicates whether or not the code in the shared function support | 
| 4746   // deoptimization. | 4739   // deoptimization. | 
| 4747   inline bool has_deoptimization_support(); | 4740   inline bool has_deoptimization_support(); | 
| 4748 | 4741 | 
| 4749   // Enable deoptimization support through recompiled code. | 4742   // Enable deoptimization support through recompiled code. | 
| (...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 4915   // The source code start position is in the 30 most significant bits of | 4908   // The source code start position is in the 30 most significant bits of | 
| 4916   // the start_position_and_type field. | 4909   // the start_position_and_type field. | 
| 4917   static const int kIsExpressionBit = 0; | 4910   static const int kIsExpressionBit = 0; | 
| 4918   static const int kIsTopLevelBit   = 1; | 4911   static const int kIsTopLevelBit   = 1; | 
| 4919   static const int kStartPositionShift = 2; | 4912   static const int kStartPositionShift = 2; | 
| 4920   static const int kStartPositionMask = ~((1 << kStartPositionShift) - 1); | 4913   static const int kStartPositionMask = ~((1 << kStartPositionShift) - 1); | 
| 4921 | 4914 | 
| 4922   // Bit positions in compiler_hints. | 4915   // Bit positions in compiler_hints. | 
| 4923   static const int kCodeAgeSize = 3; | 4916   static const int kCodeAgeSize = 3; | 
| 4924   static const int kCodeAgeMask = (1 << kCodeAgeSize) - 1; | 4917   static const int kCodeAgeMask = (1 << kCodeAgeSize) - 1; | 
|  | 4918   static const int kBoundFunction = 9; | 
| 4925 | 4919 | 
| 4926   enum CompilerHints { | 4920   enum CompilerHints { | 
| 4927     kHasOnlySimpleThisPropertyAssignments, | 4921     kHasOnlySimpleThisPropertyAssignments, | 
| 4928     kAllowLazyCompilation, | 4922     kAllowLazyCompilation, | 
| 4929     kLiveObjectsMayExist, | 4923     kLiveObjectsMayExist, | 
| 4930     kCodeAgeShift, | 4924     kCodeAgeShift, | 
| 4931     kOptimizationDisabled = kCodeAgeShift + kCodeAgeSize, | 4925     kOptimizationDisabled = kCodeAgeShift + kCodeAgeSize, | 
| 4932     kStrictModeFunction, | 4926     kStrictModeFunction, | 
| 4933     kUsesArguments, | 4927     kUsesArguments, | 
| 4934     kHasDuplicateParameters, | 4928     kHasDuplicateParameters, | 
| 4935     kNative, | 4929     kNative | 
| 4936     kBoundFunction, |  | 
| 4937     kNameShouldPrintAsAnonymous, |  | 
| 4938     kCompilerHintsCount  // Pseudo entry |  | 
| 4939   }; | 4930   }; | 
| 4940 | 4931 | 
| 4941  private: | 4932  private: | 
| 4942 #if V8_HOST_ARCH_32_BIT | 4933 #if V8_HOST_ARCH_32_BIT | 
| 4943   // On 32 bit platforms, compiler hints is a smi. | 4934   // On 32 bit platforms, compiler hints is a smi. | 
| 4944   static const int kCompilerHintsSmiTagSize = kSmiTagSize; | 4935   static const int kCompilerHintsSmiTagSize = kSmiTagSize; | 
| 4945   static const int kCompilerHintsSize = kPointerSize; | 4936   static const int kCompilerHintsSize = kPointerSize; | 
| 4946 #else | 4937 #else | 
| 4947   // On 64 bit platforms, compiler hints is not a smi, see comment above. | 4938   // On 64 bit platforms, compiler hints is not a smi, see comment above. | 
| 4948   static const int kCompilerHintsSmiTagSize = 0; | 4939   static const int kCompilerHintsSmiTagSize = 0; | 
| 4949   static const int kCompilerHintsSize = kIntSize; | 4940   static const int kCompilerHintsSize = kIntSize; | 
| 4950 #endif | 4941 #endif | 
| 4951 | 4942 | 
| 4952   STATIC_ASSERT(SharedFunctionInfo::kCompilerHintsCount <= |  | 
| 4953                 SharedFunctionInfo::kCompilerHintsSize * kBitsPerByte); |  | 
| 4954 |  | 
| 4955  public: | 4943  public: | 
| 4956   // Constants for optimizing codegen for strict mode function and | 4944   // Constants for optimizing codegen for strict mode function and | 
| 4957   // native tests. | 4945   // native tests. | 
| 4958   // Allows to use byte-widgh instructions. | 4946   // Allows to use byte-widgh instructions. | 
| 4959   static const int kStrictModeBitWithinByte = | 4947   static const int kStrictModeBitWithinByte = | 
| 4960       (kStrictModeFunction + kCompilerHintsSmiTagSize) % kBitsPerByte; | 4948       (kStrictModeFunction + kCompilerHintsSmiTagSize) % kBitsPerByte; | 
| 4961 | 4949 | 
| 4962   static const int kNativeBitWithinByte = | 4950   static const int kNativeBitWithinByte = | 
| 4963       (kNative + kCompilerHintsSmiTagSize) % kBitsPerByte; | 4951       (kNative + kCompilerHintsSmiTagSize) % kBitsPerByte; | 
| 4964 | 4952 | 
| (...skipping 2359 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 7324     } else { | 7312     } else { | 
| 7325       value &= ~(1 << bit_position); | 7313       value &= ~(1 << bit_position); | 
| 7326     } | 7314     } | 
| 7327     return value; | 7315     return value; | 
| 7328   } | 7316   } | 
| 7329 }; | 7317 }; | 
| 7330 | 7318 | 
| 7331 } }  // namespace v8::internal | 7319 } }  // namespace v8::internal | 
| 7332 | 7320 | 
| 7333 #endif  // V8_OBJECTS_H_ | 7321 #endif  // V8_OBJECTS_H_ | 
| OLD | NEW | 
|---|