| OLD | NEW |
| 1 // Copyright 2006-2009 the V8 project authors. All rights reserved. | 1 // Copyright 2006-2009 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 3155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3166 // on objects. | 3166 // on objects. |
| 3167 DECL_ACCESSORS(function_data, Object) | 3167 DECL_ACCESSORS(function_data, Object) |
| 3168 | 3168 |
| 3169 inline bool IsApiFunction(); | 3169 inline bool IsApiFunction(); |
| 3170 inline FunctionTemplateInfo* get_api_func_data(); | 3170 inline FunctionTemplateInfo* get_api_func_data(); |
| 3171 inline bool HasCustomCallGenerator(); | 3171 inline bool HasCustomCallGenerator(); |
| 3172 | 3172 |
| 3173 // [script info]: Script from which the function originates. | 3173 // [script info]: Script from which the function originates. |
| 3174 DECL_ACCESSORS(script, Object) | 3174 DECL_ACCESSORS(script, Object) |
| 3175 | 3175 |
| 3176 // [num_literals]: Number of literals used by this function. |
| 3177 inline int num_literals(); |
| 3178 inline void set_num_literals(int value); |
| 3179 |
| 3176 // [start_position_and_type]: Field used to store both the source code | 3180 // [start_position_and_type]: Field used to store both the source code |
| 3177 // position, whether or not the function is a function expression, | 3181 // position, whether or not the function is a function expression, |
| 3178 // and whether or not the function is a toplevel function. The two | 3182 // and whether or not the function is a toplevel function. The two |
| 3179 // least significants bit indicates whether the function is an | 3183 // least significants bit indicates whether the function is an |
| 3180 // expression and the rest contains the source code position. | 3184 // expression and the rest contains the source code position. |
| 3181 inline int start_position_and_type(); | 3185 inline int start_position_and_type(); |
| 3182 inline void set_start_position_and_type(int value); | 3186 inline void set_start_position_and_type(int value); |
| 3183 | 3187 |
| 3184 // [debug info]: Debug information. | 3188 // [debug info]: Debug information. |
| 3185 DECL_ACCESSORS(debug_info, Object) | 3189 DECL_ACCESSORS(debug_info, Object) |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3283 static const int kDebugInfoOffset = kScriptOffset + kPointerSize; | 3287 static const int kDebugInfoOffset = kScriptOffset + kPointerSize; |
| 3284 static const int kInferredNameOffset = kDebugInfoOffset + kPointerSize; | 3288 static const int kInferredNameOffset = kDebugInfoOffset + kPointerSize; |
| 3285 static const int kThisPropertyAssignmentsOffset = | 3289 static const int kThisPropertyAssignmentsOffset = |
| 3286 kInferredNameOffset + kPointerSize; | 3290 kInferredNameOffset + kPointerSize; |
| 3287 // Integer fields. | 3291 // Integer fields. |
| 3288 static const int kLengthOffset = | 3292 static const int kLengthOffset = |
| 3289 kThisPropertyAssignmentsOffset + kPointerSize; | 3293 kThisPropertyAssignmentsOffset + kPointerSize; |
| 3290 static const int kFormalParameterCountOffset = kLengthOffset + kIntSize; | 3294 static const int kFormalParameterCountOffset = kLengthOffset + kIntSize; |
| 3291 static const int kExpectedNofPropertiesOffset = | 3295 static const int kExpectedNofPropertiesOffset = |
| 3292 kFormalParameterCountOffset + kIntSize; | 3296 kFormalParameterCountOffset + kIntSize; |
| 3297 static const int kNumLiteralsOffset = kExpectedNofPropertiesOffset + kIntSize; |
| 3293 static const int kStartPositionAndTypeOffset = | 3298 static const int kStartPositionAndTypeOffset = |
| 3294 kExpectedNofPropertiesOffset + kIntSize; | 3299 kNumLiteralsOffset + kIntSize; |
| 3295 static const int kEndPositionOffset = kStartPositionAndTypeOffset + kIntSize; | 3300 static const int kEndPositionOffset = kStartPositionAndTypeOffset + kIntSize; |
| 3296 static const int kFunctionTokenPositionOffset = kEndPositionOffset + kIntSize; | 3301 static const int kFunctionTokenPositionOffset = kEndPositionOffset + kIntSize; |
| 3297 static const int kCompilerHintsOffset = | 3302 static const int kCompilerHintsOffset = |
| 3298 kFunctionTokenPositionOffset + kIntSize; | 3303 kFunctionTokenPositionOffset + kIntSize; |
| 3299 static const int kThisPropertyAssignmentsCountOffset = | 3304 static const int kThisPropertyAssignmentsCountOffset = |
| 3300 kCompilerHintsOffset + kIntSize; | 3305 kCompilerHintsOffset + kIntSize; |
| 3301 // Total size. | 3306 // Total size. |
| 3302 static const int kSize = kThisPropertyAssignmentsCountOffset + kIntSize; | 3307 static const int kSize = kThisPropertyAssignmentsCountOffset + kIntSize; |
| 3308 static const int kAlignedSize = POINTER_SIZE_ALIGN(kSize); |
| 3303 | 3309 |
| 3304 private: | 3310 private: |
| 3305 // Bit positions in start_position_and_type. | 3311 // Bit positions in start_position_and_type. |
| 3306 // The source code start position is in the 30 most significant bits of | 3312 // The source code start position is in the 30 most significant bits of |
| 3307 // the start_position_and_type field. | 3313 // the start_position_and_type field. |
| 3308 static const int kIsExpressionBit = 0; | 3314 static const int kIsExpressionBit = 0; |
| 3309 static const int kIsTopLevelBit = 1; | 3315 static const int kIsTopLevelBit = 1; |
| 3310 static const int kStartPositionShift = 2; | 3316 static const int kStartPositionShift = 2; |
| 3311 static const int kStartPositionMask = ~((1 << kStartPositionShift) - 1); | 3317 static const int kStartPositionMask = ~((1 << kStartPositionShift) - 1); |
| 3312 | 3318 |
| (...skipping 1748 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5061 } else { | 5067 } else { |
| 5062 value &= ~(1 << bit_position); | 5068 value &= ~(1 << bit_position); |
| 5063 } | 5069 } |
| 5064 return value; | 5070 return value; |
| 5065 } | 5071 } |
| 5066 }; | 5072 }; |
| 5067 | 5073 |
| 5068 } } // namespace v8::internal | 5074 } } // namespace v8::internal |
| 5069 | 5075 |
| 5070 #endif // V8_OBJECTS_H_ | 5076 #endif // V8_OBJECTS_H_ |
| OLD | NEW |