Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(165)

Side by Side Diff: src/objects.h

Issue 6794050: Revert "[Arguments] Merge (7442,7496] from bleeding_edge." (Closed) Base URL: https://v8.googlecode.com/svn/branches/experimental/arguments
Patch Set: Created 9 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/mips/frames-mips.h ('k') | src/objects.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 3496 matching lines...) Expand 10 before | Expand all | Expand 10 after
3507 #ifdef OBJECT_PRINT 3507 #ifdef OBJECT_PRINT
3508 inline void CodePrint() { 3508 inline void CodePrint() {
3509 CodePrint(stdout); 3509 CodePrint(stdout);
3510 } 3510 }
3511 void CodePrint(FILE* out); 3511 void CodePrint(FILE* out);
3512 #endif 3512 #endif
3513 #ifdef DEBUG 3513 #ifdef DEBUG
3514 void CodeVerify(); 3514 void CodeVerify();
3515 #endif 3515 #endif
3516 3516
3517 // Returns the isolate/heap this code object belongs to.
3518 inline Isolate* isolate();
3519 inline Heap* heap();
3520
3521 // Max loop nesting marker used to postpose OSR. We don't take loop 3517 // Max loop nesting marker used to postpose OSR. We don't take loop
3522 // nesting that is deeper than 5 levels into account. 3518 // nesting that is deeper than 5 levels into account.
3523 static const int kMaxLoopNestingMarker = 6; 3519 static const int kMaxLoopNestingMarker = 6;
3524 3520
3525 // Layout description. 3521 // Layout description.
3526 static const int kInstructionSizeOffset = HeapObject::kHeaderSize; 3522 static const int kInstructionSizeOffset = HeapObject::kHeaderSize;
3527 static const int kRelocationInfoOffset = kInstructionSizeOffset + kIntSize; 3523 static const int kRelocationInfoOffset = kInstructionSizeOffset + kIntSize;
3528 static const int kDeoptimizationDataOffset = 3524 static const int kDeoptimizationDataOffset =
3529 kRelocationInfoOffset + kPointerSize; 3525 kRelocationInfoOffset + kPointerSize;
3530 static const int kFlagsOffset = kDeoptimizationDataOffset + kPointerSize; 3526 static const int kFlagsOffset = kDeoptimizationDataOffset + kPointerSize;
(...skipping 746 matching lines...) Expand 10 before | Expand all | Expand 10 after
4277 bool has_only_simple_this_property_assignments, 4273 bool has_only_simple_this_property_assignments,
4278 FixedArray* this_property_assignments); 4274 FixedArray* this_property_assignments);
4279 4275
4280 // Clear information on assignments of the form this.x = ...; 4276 // Clear information on assignments of the form this.x = ...;
4281 void ClearThisPropertyAssignmentsInfo(); 4277 void ClearThisPropertyAssignmentsInfo();
4282 4278
4283 // Indicate that this function only consists of assignments of the form 4279 // Indicate that this function only consists of assignments of the form
4284 // this.x = y; where y is either a constant or refers to an argument. 4280 // this.x = y; where y is either a constant or refers to an argument.
4285 inline bool has_only_simple_this_property_assignments(); 4281 inline bool has_only_simple_this_property_assignments();
4286 4282
4283 DECL_BOOLEAN_ACCESSORS(try_full_codegen)
4284
4287 // Indicates if this function can be lazy compiled. 4285 // Indicates if this function can be lazy compiled.
4288 // This is used to determine if we can safely flush code from a function 4286 // This is used to determine if we can safely flush code from a function
4289 // when doing GC if we expect that the function will no longer be used. 4287 // when doing GC if we expect that the function will no longer be used.
4290 DECL_BOOLEAN_ACCESSORS(allows_lazy_compilation) 4288 DECL_BOOLEAN_ACCESSORS(allows_lazy_compilation)
4291 4289
4292 // Indicates how many full GCs this function has survived with assigned 4290 // Indicates how many full GCs this function has survived with assigned
4293 // code object. Used to determine when it is relatively safe to flush 4291 // code object. Used to determine when it is relatively safe to flush
4294 // this code object and replace it with lazy compilation stub. 4292 // this code object and replace it with lazy compilation stub.
4295 // Age is reset when GC notices that the code object is referenced 4293 // Age is reset when GC notices that the code object is referenced
4296 // from the stack or compilation cache. 4294 // from the stack or compilation cache.
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after
4476 // Bit positions in start_position_and_type. 4474 // Bit positions in start_position_and_type.
4477 // The source code start position is in the 30 most significant bits of 4475 // The source code start position is in the 30 most significant bits of
4478 // the start_position_and_type field. 4476 // the start_position_and_type field.
4479 static const int kIsExpressionBit = 0; 4477 static const int kIsExpressionBit = 0;
4480 static const int kIsTopLevelBit = 1; 4478 static const int kIsTopLevelBit = 1;
4481 static const int kStartPositionShift = 2; 4479 static const int kStartPositionShift = 2;
4482 static const int kStartPositionMask = ~((1 << kStartPositionShift) - 1); 4480 static const int kStartPositionMask = ~((1 << kStartPositionShift) - 1);
4483 4481
4484 // Bit positions in compiler_hints. 4482 // Bit positions in compiler_hints.
4485 static const int kHasOnlySimpleThisPropertyAssignments = 0; 4483 static const int kHasOnlySimpleThisPropertyAssignments = 0;
4486 static const int kAllowLazyCompilation = 1; 4484 static const int kTryFullCodegen = 1;
4487 static const int kLiveObjectsMayExist = 2; 4485 static const int kAllowLazyCompilation = 2;
4488 static const int kCodeAgeShift = 3; 4486 static const int kLiveObjectsMayExist = 3;
4487 static const int kCodeAgeShift = 4;
4489 static const int kCodeAgeMask = 0x7; 4488 static const int kCodeAgeMask = 0x7;
4490 static const int kOptimizationDisabled = 6; 4489 static const int kOptimizationDisabled = 7;
4491 static const int kStrictModeFunction = 7; 4490 static const int kStrictModeFunction = 8;
4491 static const int kUsesArguments = 9;
4492 4492
4493 private: 4493 private:
4494 #if V8_HOST_ARCH_32_BIT 4494 #if V8_HOST_ARCH_32_BIT
4495 // On 32 bit platforms, compiler hints is a smi. 4495 // On 32 bit platforms, compiler hints is a smi.
4496 static const int kCompilerHintsSmiTagSize = kSmiTagSize; 4496 static const int kCompilerHintsSmiTagSize = kSmiTagSize;
4497 static const int kCompilerHintsSize = kPointerSize; 4497 static const int kCompilerHintsSize = kPointerSize;
4498 #else 4498 #else
4499 // On 64 bit platforms, compiler hints is not a smi, see comment above. 4499 // On 64 bit platforms, compiler hints is not a smi, see comment above.
4500 static const int kCompilerHintsSmiTagSize = 0; 4500 static const int kCompilerHintsSmiTagSize = 0;
4501 static const int kCompilerHintsSize = kIntSize; 4501 static const int kCompilerHintsSize = kIntSize;
(...skipping 1525 matching lines...) Expand 10 before | Expand all | Expand 10 after
6027 #endif 6027 #endif
6028 6028
6029 // Layout description. 6029 // Layout description.
6030 static const int kValueOffset = HeapObject::kHeaderSize; 6030 static const int kValueOffset = HeapObject::kHeaderSize;
6031 static const int kSize = kValueOffset + kPointerSize; 6031 static const int kSize = kValueOffset + kPointerSize;
6032 6032
6033 typedef FixedBodyDescriptor<kValueOffset, 6033 typedef FixedBodyDescriptor<kValueOffset,
6034 kValueOffset + kPointerSize, 6034 kValueOffset + kPointerSize,
6035 kSize> BodyDescriptor; 6035 kSize> BodyDescriptor;
6036 6036
6037 // Returns the isolate/heap this cell object belongs to.
6038 inline Isolate* isolate();
6039 inline Heap* heap();
6040
6041 private: 6037 private:
6042 DISALLOW_IMPLICIT_CONSTRUCTORS(JSGlobalPropertyCell); 6038 DISALLOW_IMPLICIT_CONSTRUCTORS(JSGlobalPropertyCell);
6043 }; 6039 };
6044 6040
6045 6041
6046 6042
6047 // Proxy describes objects pointing from JavaScript to C structures. 6043 // Proxy describes objects pointing from JavaScript to C structures.
6048 // Since they cannot contain references to JS HeapObjects they can be 6044 // Since they cannot contain references to JS HeapObjects they can be
6049 // placed in old_data_space. 6045 // placed in old_data_space.
6050 class Proxy: public HeapObject { 6046 class Proxy: public HeapObject {
(...skipping 627 matching lines...) Expand 10 before | Expand all | Expand 10 after
6678 } else { 6674 } else {
6679 value &= ~(1 << bit_position); 6675 value &= ~(1 << bit_position);
6680 } 6676 }
6681 return value; 6677 return value;
6682 } 6678 }
6683 }; 6679 };
6684 6680
6685 } } // namespace v8::internal 6681 } } // namespace v8::internal
6686 6682
6687 #endif // V8_OBJECTS_H_ 6683 #endif // V8_OBJECTS_H_
OLDNEW
« no previous file with comments | « src/mips/frames-mips.h ('k') | src/objects.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698