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

Side by Side Diff: src/objects.h

Issue 6685119: [Arguments] Remove the arguments shadow symbol. (Closed) Base URL: https://v8.googlecode.com/svn/branches/experimental/arguments
Patch Set: Created 9 years, 9 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
OLDNEW
1 // Copyright 2010 the V8 project authors. All rights reserved. 1 // Copyright 2010 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 4093 matching lines...) Expand 10 before | Expand all | Expand 10 after
4104 // is weak. IsInobjectSlackTrackingInProgress is false after this call. 4104 // is weak. IsInobjectSlackTrackingInProgress is false after this call.
4105 void DetachInitialMap(); 4105 void DetachInitialMap();
4106 4106
4107 // Restores the link to the initial map after the GC marking phase. 4107 // Restores the link to the initial map after the GC marking phase.
4108 // IsInobjectSlackTrackingInProgress is true after this call. 4108 // IsInobjectSlackTrackingInProgress is true after this call.
4109 void AttachInitialMap(Map* map); 4109 void AttachInitialMap(Map* map);
4110 4110
4111 // False if there are definitely no live objects created from this function. 4111 // False if there are definitely no live objects created from this function.
4112 // True if live objects _may_ exist (existence not guaranteed). 4112 // True if live objects _may_ exist (existence not guaranteed).
4113 // May go back from true to false after GC. 4113 // May go back from true to false after GC.
4114 inline bool live_objects_may_exist(); 4114 DECL_BOOLEAN_ACCESSORS(live_objects_may_exist)
4115
4116 inline void set_live_objects_may_exist(bool value);
4117 4115
4118 // [instance class name]: class name for instances. 4116 // [instance class name]: class name for instances.
4119 DECL_ACCESSORS(instance_class_name, Object) 4117 DECL_ACCESSORS(instance_class_name, Object)
4120 4118
4121 // [function data]: This field holds some additional data for function. 4119 // [function data]: This field holds some additional data for function.
4122 // Currently it either has FunctionTemplateInfo to make benefit the API 4120 // Currently it either has FunctionTemplateInfo to make benefit the API
4123 // or Smi identifying a builtin function. 4121 // or Smi identifying a builtin function.
4124 // In the long run we don't want all functions to have this field but 4122 // In the long run we don't want all functions to have this field but
4125 // we can fix that when we have a better model for storing hidden data 4123 // we can fix that when we have a better model for storing hidden data
4126 // on objects. 4124 // on objects.
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
4194 bool has_only_simple_this_property_assignments, 4192 bool has_only_simple_this_property_assignments,
4195 FixedArray* this_property_assignments); 4193 FixedArray* this_property_assignments);
4196 4194
4197 // Clear information on assignments of the form this.x = ...; 4195 // Clear information on assignments of the form this.x = ...;
4198 void ClearThisPropertyAssignmentsInfo(); 4196 void ClearThisPropertyAssignmentsInfo();
4199 4197
4200 // Indicate that this function only consists of assignments of the form 4198 // Indicate that this function only consists of assignments of the form
4201 // this.x = y; where y is either a constant or refers to an argument. 4199 // this.x = y; where y is either a constant or refers to an argument.
4202 inline bool has_only_simple_this_property_assignments(); 4200 inline bool has_only_simple_this_property_assignments();
4203 4201
4204 inline bool try_full_codegen(); 4202 DECL_BOOLEAN_ACCESSORS(try_full_codegen)
4205 inline void set_try_full_codegen(bool flag);
4206 4203
4207 // Indicates if this function can be lazy compiled. 4204 // Indicates if this function can be lazy compiled.
4208 // This is used to determine if we can safely flush code from a function 4205 // This is used to determine if we can safely flush code from a function
4209 // when doing GC if we expect that the function will no longer be used. 4206 // when doing GC if we expect that the function will no longer be used.
4210 inline bool allows_lazy_compilation(); 4207 DECL_BOOLEAN_ACCESSORS(allows_lazy_compilation)
4211 inline void set_allows_lazy_compilation(bool flag);
4212 4208
4213 // Indicates how many full GCs this function has survived with assigned 4209 // Indicates how many full GCs this function has survived with assigned
4214 // code object. Used to determine when it is relatively safe to flush 4210 // code object. Used to determine when it is relatively safe to flush
4215 // this code object and replace it with lazy compilation stub. 4211 // this code object and replace it with lazy compilation stub.
4216 // Age is reset when GC notices that the code object is referenced 4212 // Age is reset when GC notices that the code object is referenced
4217 // from the stack or compilation cache. 4213 // from the stack or compilation cache.
4218 inline int code_age(); 4214 inline int code_age();
4219 inline void set_code_age(int age); 4215 inline void set_code_age(int age);
4220 4216
4221 // Indicates whether optimizations have been disabled for this 4217 // Indicates whether optimizations have been disabled for this
4222 // shared function info. If a function is repeatedly optimized or if 4218 // shared function info. If a function is repeatedly optimized or if
4223 // we cannot optimize the function we disable optimization to avoid 4219 // we cannot optimize the function we disable optimization to avoid
4224 // spending time attempting to optimize it again. 4220 // spending time attempting to optimize it again.
4225 inline bool optimization_disabled(); 4221 DECL_BOOLEAN_ACCESSORS(optimization_disabled)
4226 inline void set_optimization_disabled(bool value);
4227 4222
4228 // Indicates whether the function is a strict mode function. 4223 // Indicates whether the function is a strict mode function.
4229 inline bool strict_mode(); 4224 DECL_BOOLEAN_ACCESSORS(strict_mode)
4230 inline void set_strict_mode(bool value); 4225
4226 // False if the function definitely does not allocate an arguments object.
4227 DECL_BOOLEAN_ACCESSORS(uses_arguments)
4231 4228
4232 // Indicates whether or not the code in the shared function support 4229 // Indicates whether or not the code in the shared function support
4233 // deoptimization. 4230 // deoptimization.
4234 inline bool has_deoptimization_support(); 4231 inline bool has_deoptimization_support();
4235 4232
4236 // Enable deoptimization support through recompiled code. 4233 // Enable deoptimization support through recompiled code.
4237 void EnableDeoptimizationSupport(Code* recompiled); 4234 void EnableDeoptimizationSupport(Code* recompiled);
4238 4235
4239 // Lookup the bailout ID and ASSERT that it exists in the non-optimized 4236 // Lookup the bailout ID and ASSERT that it exists in the non-optimized
4240 // code, returns whether it asserted (i.e., always true if assertions are 4237 // code, returns whether it asserted (i.e., always true if assertions are
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after
4403 4400
4404 // Bit positions in compiler_hints. 4401 // Bit positions in compiler_hints.
4405 static const int kHasOnlySimpleThisPropertyAssignments = 0; 4402 static const int kHasOnlySimpleThisPropertyAssignments = 0;
4406 static const int kTryFullCodegen = 1; 4403 static const int kTryFullCodegen = 1;
4407 static const int kAllowLazyCompilation = 2; 4404 static const int kAllowLazyCompilation = 2;
4408 static const int kLiveObjectsMayExist = 3; 4405 static const int kLiveObjectsMayExist = 3;
4409 static const int kCodeAgeShift = 4; 4406 static const int kCodeAgeShift = 4;
4410 static const int kCodeAgeMask = 0x7; 4407 static const int kCodeAgeMask = 0x7;
4411 static const int kOptimizationDisabled = 7; 4408 static const int kOptimizationDisabled = 7;
4412 static const int kStrictModeFunction = 8; 4409 static const int kStrictModeFunction = 8;
4410 static const int kUsesArguments = 9;
4413 4411
4414 private: 4412 private:
4415 #if V8_HOST_ARCH_32_BIT 4413 #if V8_HOST_ARCH_32_BIT
4416 // On 32 bit platforms, compiler hints is a smi. 4414 // On 32 bit platforms, compiler hints is a smi.
4417 static const int kCompilerHintsSmiTagSize = kSmiTagSize; 4415 static const int kCompilerHintsSmiTagSize = kSmiTagSize;
4418 static const int kCompilerHintsSize = kPointerSize; 4416 static const int kCompilerHintsSize = kPointerSize;
4419 #else 4417 #else
4420 // On 64 bit platforms, compiler hints is not a smi, see comment above. 4418 // On 64 bit platforms, compiler hints is not a smi, see comment above.
4421 static const int kCompilerHintsSmiTagSize = 0; 4419 static const int kCompilerHintsSmiTagSize = 0;
4422 static const int kCompilerHintsSize = kIntSize; 4420 static const int kCompilerHintsSize = kIntSize;
(...skipping 2161 matching lines...) Expand 10 before | Expand all | Expand 10 after
6584 } else { 6582 } else {
6585 value &= ~(1 << bit_position); 6583 value &= ~(1 << bit_position);
6586 } 6584 }
6587 return value; 6585 return value;
6588 } 6586 }
6589 }; 6587 };
6590 6588
6591 } } // namespace v8::internal 6589 } } // namespace v8::internal
6592 6590
6593 #endif // V8_OBJECTS_H_ 6591 #endif // V8_OBJECTS_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698