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

Side by Side Diff: src/objects.h

Issue 6606006: [Isolates] Merge 6500:6700 from bleeding_edge to isolates. (Closed) Base URL: http://v8.googlecode.com/svn/branches/experimental/isolates/
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
« no previous file with comments | « src/mirror-debugger.js ('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 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 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
47 // - Smi (immediate small integer) 47 // - Smi (immediate small integer)
48 // - HeapObject (superclass for everything allocated in the heap) 48 // - HeapObject (superclass for everything allocated in the heap)
49 // - JSObject 49 // - JSObject
50 // - JSArray 50 // - JSArray
51 // - JSRegExp 51 // - JSRegExp
52 // - JSFunction 52 // - JSFunction
53 // - GlobalObject 53 // - GlobalObject
54 // - JSGlobalObject 54 // - JSGlobalObject
55 // - JSBuiltinsObject 55 // - JSBuiltinsObject
56 // - JSGlobalProxy 56 // - JSGlobalProxy
57 // - JSValue 57 // - JSValue
58 // - JSMessageObject
58 // - ByteArray 59 // - ByteArray
59 // - PixelArray 60 // - PixelArray
60 // - ExternalArray 61 // - ExternalArray
61 // - ExternalByteArray 62 // - ExternalByteArray
62 // - ExternalUnsignedByteArray 63 // - ExternalUnsignedByteArray
63 // - ExternalShortArray 64 // - ExternalShortArray
64 // - ExternalUnsignedShortArray 65 // - ExternalUnsignedShortArray
65 // - ExternalIntArray 66 // - ExternalIntArray
66 // - ExternalUnsignedIntArray 67 // - ExternalUnsignedIntArray
67 // - ExternalFloatArray 68 // - ExternalFloatArray
(...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after
281 V(FUNCTION_TEMPLATE_INFO_TYPE) \ 282 V(FUNCTION_TEMPLATE_INFO_TYPE) \
282 V(OBJECT_TEMPLATE_INFO_TYPE) \ 283 V(OBJECT_TEMPLATE_INFO_TYPE) \
283 V(SIGNATURE_INFO_TYPE) \ 284 V(SIGNATURE_INFO_TYPE) \
284 V(TYPE_SWITCH_INFO_TYPE) \ 285 V(TYPE_SWITCH_INFO_TYPE) \
285 V(SCRIPT_TYPE) \ 286 V(SCRIPT_TYPE) \
286 V(CODE_CACHE_TYPE) \ 287 V(CODE_CACHE_TYPE) \
287 \ 288 \
288 V(FIXED_ARRAY_TYPE) \ 289 V(FIXED_ARRAY_TYPE) \
289 V(SHARED_FUNCTION_INFO_TYPE) \ 290 V(SHARED_FUNCTION_INFO_TYPE) \
290 \ 291 \
292 V(JS_MESSAGE_OBJECT_TYPE) \
293 \
291 V(JS_VALUE_TYPE) \ 294 V(JS_VALUE_TYPE) \
292 V(JS_OBJECT_TYPE) \ 295 V(JS_OBJECT_TYPE) \
293 V(JS_CONTEXT_EXTENSION_OBJECT_TYPE) \ 296 V(JS_CONTEXT_EXTENSION_OBJECT_TYPE) \
294 V(JS_GLOBAL_OBJECT_TYPE) \ 297 V(JS_GLOBAL_OBJECT_TYPE) \
295 V(JS_BUILTINS_OBJECT_TYPE) \ 298 V(JS_BUILTINS_OBJECT_TYPE) \
296 V(JS_GLOBAL_PROXY_TYPE) \ 299 V(JS_GLOBAL_PROXY_TYPE) \
297 V(JS_ARRAY_TYPE) \ 300 V(JS_ARRAY_TYPE) \
298 V(JS_REGEXP_TYPE) \ 301 V(JS_REGEXP_TYPE) \
299 \ 302 \
300 V(JS_FUNCTION_TYPE) \ 303 V(JS_FUNCTION_TYPE) \
(...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after
511 // The following two instance types are only used when ENABLE_DEBUGGER_SUPPORT 514 // The following two instance types are only used when ENABLE_DEBUGGER_SUPPORT
512 // is defined. However as include/v8.h contain some of the instance type 515 // is defined. However as include/v8.h contain some of the instance type
513 // constants always having them avoids them getting different numbers 516 // constants always having them avoids them getting different numbers
514 // depending on whether ENABLE_DEBUGGER_SUPPORT is defined or not. 517 // depending on whether ENABLE_DEBUGGER_SUPPORT is defined or not.
515 DEBUG_INFO_TYPE, 518 DEBUG_INFO_TYPE,
516 BREAK_POINT_INFO_TYPE, 519 BREAK_POINT_INFO_TYPE,
517 520
518 FIXED_ARRAY_TYPE, 521 FIXED_ARRAY_TYPE,
519 SHARED_FUNCTION_INFO_TYPE, 522 SHARED_FUNCTION_INFO_TYPE,
520 523
524 JS_MESSAGE_OBJECT_TYPE,
525
521 JS_VALUE_TYPE, // FIRST_JS_OBJECT_TYPE 526 JS_VALUE_TYPE, // FIRST_JS_OBJECT_TYPE
522 JS_OBJECT_TYPE, 527 JS_OBJECT_TYPE,
523 JS_CONTEXT_EXTENSION_OBJECT_TYPE, 528 JS_CONTEXT_EXTENSION_OBJECT_TYPE,
524 JS_GLOBAL_OBJECT_TYPE, 529 JS_GLOBAL_OBJECT_TYPE,
525 JS_BUILTINS_OBJECT_TYPE, 530 JS_BUILTINS_OBJECT_TYPE,
526 JS_GLOBAL_PROXY_TYPE, 531 JS_GLOBAL_PROXY_TYPE,
527 JS_ARRAY_TYPE, 532 JS_ARRAY_TYPE,
528 533
529 JS_REGEXP_TYPE, // LAST_JS_OBJECT_TYPE, FIRST_FUNCTION_CLASS_TYPE 534 JS_REGEXP_TYPE, // LAST_JS_OBJECT_TYPE, FIRST_FUNCTION_CLASS_TYPE
530 535
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
668 V(DeoptimizationOutputData) \ 673 V(DeoptimizationOutputData) \
669 V(FixedArray) \ 674 V(FixedArray) \
670 V(Context) \ 675 V(Context) \
671 V(CatchContext) \ 676 V(CatchContext) \
672 V(GlobalContext) \ 677 V(GlobalContext) \
673 V(JSFunction) \ 678 V(JSFunction) \
674 V(Code) \ 679 V(Code) \
675 V(Oddball) \ 680 V(Oddball) \
676 V(SharedFunctionInfo) \ 681 V(SharedFunctionInfo) \
677 V(JSValue) \ 682 V(JSValue) \
683 V(JSMessageObject) \
678 V(StringWrapper) \ 684 V(StringWrapper) \
679 V(Proxy) \ 685 V(Proxy) \
680 V(Boolean) \ 686 V(Boolean) \
681 V(JSArray) \ 687 V(JSArray) \
682 V(JSRegExp) \ 688 V(JSRegExp) \
683 V(HashTable) \ 689 V(HashTable) \
684 V(Dictionary) \ 690 V(Dictionary) \
685 V(SymbolTable) \ 691 V(SymbolTable) \
686 V(JSFunctionResultCache) \ 692 V(JSFunctionResultCache) \
687 V(NormalizedMapCache) \ 693 V(NormalizedMapCache) \
(...skipping 887 matching lines...) Expand 10 before | Expand all | Expand 10 after
1575 // Lookup a property. If found, the result is valid and has 1581 // Lookup a property. If found, the result is valid and has
1576 // detailed information. 1582 // detailed information.
1577 void LocalLookup(String* name, LookupResult* result); 1583 void LocalLookup(String* name, LookupResult* result);
1578 void Lookup(String* name, LookupResult* result); 1584 void Lookup(String* name, LookupResult* result);
1579 1585
1580 // The following lookup functions skip interceptors. 1586 // The following lookup functions skip interceptors.
1581 void LocalLookupRealNamedProperty(String* name, LookupResult* result); 1587 void LocalLookupRealNamedProperty(String* name, LookupResult* result);
1582 void LookupRealNamedProperty(String* name, LookupResult* result); 1588 void LookupRealNamedProperty(String* name, LookupResult* result);
1583 void LookupRealNamedPropertyInPrototypes(String* name, LookupResult* result); 1589 void LookupRealNamedPropertyInPrototypes(String* name, LookupResult* result);
1584 void LookupCallbackSetterInPrototypes(String* name, LookupResult* result); 1590 void LookupCallbackSetterInPrototypes(String* name, LookupResult* result);
1585 bool SetElementWithCallbackSetterInPrototypes(uint32_t index, Object* value); 1591 MUST_USE_RESULT MaybeObject* SetElementWithCallbackSetterInPrototypes(
1592 uint32_t index, Object* value, bool* found);
1586 void LookupCallback(String* name, LookupResult* result); 1593 void LookupCallback(String* name, LookupResult* result);
1587 1594
1588 // Returns the number of properties on this object filtering out properties 1595 // Returns the number of properties on this object filtering out properties
1589 // with the specified attributes (ignoring interceptors). 1596 // with the specified attributes (ignoring interceptors).
1590 int NumberOfLocalProperties(PropertyAttributes filter); 1597 int NumberOfLocalProperties(PropertyAttributes filter);
1591 // Returns the number of enumerable properties (ignoring interceptors). 1598 // Returns the number of enumerable properties (ignoring interceptors).
1592 int NumberOfEnumProperties(); 1599 int NumberOfEnumProperties();
1593 // Fill in details for properties into storage starting at the specified 1600 // Fill in details for properties into storage starting at the specified
1594 // index. 1601 // index.
1595 void GetLocalPropertyNames(FixedArray* storage, int index); 1602 void GetLocalPropertyNames(FixedArray* storage, int index);
(...skipping 1683 matching lines...) Expand 10 before | Expand all | Expand 10 after
3279 inline void set_allow_osr_at_loop_nesting_level(int level); 3286 inline void set_allow_osr_at_loop_nesting_level(int level);
3280 inline int allow_osr_at_loop_nesting_level(); 3287 inline int allow_osr_at_loop_nesting_level();
3281 3288
3282 // [stack_slots]: For kind OPTIMIZED_FUNCTION, the number of stack slots 3289 // [stack_slots]: For kind OPTIMIZED_FUNCTION, the number of stack slots
3283 // reserved in the code prologue. 3290 // reserved in the code prologue.
3284 inline unsigned stack_slots(); 3291 inline unsigned stack_slots();
3285 inline void set_stack_slots(unsigned slots); 3292 inline void set_stack_slots(unsigned slots);
3286 3293
3287 // [safepoint_table_start]: For kind OPTIMIZED_CODE, the offset in 3294 // [safepoint_table_start]: For kind OPTIMIZED_CODE, the offset in
3288 // the instruction stream where the safepoint table starts. 3295 // the instruction stream where the safepoint table starts.
3289 inline unsigned safepoint_table_start(); 3296 inline unsigned safepoint_table_offset();
3290 inline void set_safepoint_table_start(unsigned offset); 3297 inline void set_safepoint_table_offset(unsigned offset);
3291 3298
3292 // [stack_check_table_start]: For kind FUNCTION, the offset in the 3299 // [stack_check_table_start]: For kind FUNCTION, the offset in the
3293 // instruction stream where the stack check table starts. 3300 // instruction stream where the stack check table starts.
3294 inline unsigned stack_check_table_start(); 3301 inline unsigned stack_check_table_offset();
3295 inline void set_stack_check_table_start(unsigned offset); 3302 inline void set_stack_check_table_offset(unsigned offset);
3296 3303
3297 // [check type]: For kind CALL_IC, tells how to check if the 3304 // [check type]: For kind CALL_IC, tells how to check if the
3298 // receiver is valid for the given call. 3305 // receiver is valid for the given call.
3299 inline CheckType check_type(); 3306 inline CheckType check_type();
3300 inline void set_check_type(CheckType value); 3307 inline void set_check_type(CheckType value);
3301 3308
3302 // [binary op type]: For all BINARY_OP_IC. 3309 // [binary op type]: For all BINARY_OP_IC.
3303 inline byte binary_op_type(); 3310 inline byte binary_op_type();
3304 inline void set_binary_op_type(byte value); 3311 inline void set_binary_op_type(byte value);
3305 3312
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
3449 static const int kCheckTypeOffset = kKindSpecificFlagsOffset; 3456 static const int kCheckTypeOffset = kKindSpecificFlagsOffset;
3450 3457
3451 static const int kCompareStateOffset = kStubMajorKeyOffset + 1; 3458 static const int kCompareStateOffset = kStubMajorKeyOffset + 1;
3452 static const int kBinaryOpTypeOffset = kStubMajorKeyOffset + 1; 3459 static const int kBinaryOpTypeOffset = kStubMajorKeyOffset + 1;
3453 static const int kHasDeoptimizationSupportOffset = kOptimizableOffset + 1; 3460 static const int kHasDeoptimizationSupportOffset = kOptimizableOffset + 1;
3454 3461
3455 static const int kBinaryOpReturnTypeOffset = kBinaryOpTypeOffset + 1; 3462 static const int kBinaryOpReturnTypeOffset = kBinaryOpTypeOffset + 1;
3456 static const int kAllowOSRAtLoopNestingLevelOffset = 3463 static const int kAllowOSRAtLoopNestingLevelOffset =
3457 kHasDeoptimizationSupportOffset + 1; 3464 kHasDeoptimizationSupportOffset + 1;
3458 3465
3459 static const int kSafepointTableStartOffset = kStackSlotsOffset + kIntSize; 3466 static const int kSafepointTableOffsetOffset = kStackSlotsOffset + kIntSize;
3460 static const int kStackCheckTableStartOffset = kStackSlotsOffset + kIntSize; 3467 static const int kStackCheckTableOffsetOffset = kStackSlotsOffset + kIntSize;
3461 3468
3462 // Flags layout. 3469 // Flags layout.
3463 static const int kFlagsICStateShift = 0; 3470 static const int kFlagsICStateShift = 0;
3464 static const int kFlagsICInLoopShift = 3; 3471 static const int kFlagsICInLoopShift = 3;
3465 static const int kFlagsTypeShift = 4; 3472 static const int kFlagsTypeShift = 4;
3466 static const int kFlagsKindShift = 7; 3473 static const int kFlagsKindShift = 7;
3467 static const int kFlagsICHolderShift = 11; 3474 static const int kFlagsICHolderShift = 11;
3468 static const int kFlagsExtraICStateShift = 12; 3475 static const int kFlagsExtraICStateShift = 12;
3469 static const int kFlagsArgumentsCountShift = 14; 3476 static const int kFlagsArgumentsCountShift = 14;
3470 3477
(...skipping 712 matching lines...) Expand 10 before | Expand all | Expand 10 after
4183 inline int code_age(); 4190 inline int code_age();
4184 inline void set_code_age(int age); 4191 inline void set_code_age(int age);
4185 4192
4186 // Indicates whether optimizations have been disabled for this 4193 // Indicates whether optimizations have been disabled for this
4187 // shared function info. If a function is repeatedly optimized or if 4194 // shared function info. If a function is repeatedly optimized or if
4188 // we cannot optimize the function we disable optimization to avoid 4195 // we cannot optimize the function we disable optimization to avoid
4189 // spending time attempting to optimize it again. 4196 // spending time attempting to optimize it again.
4190 inline bool optimization_disabled(); 4197 inline bool optimization_disabled();
4191 inline void set_optimization_disabled(bool value); 4198 inline void set_optimization_disabled(bool value);
4192 4199
4200 // Indicates whether the function is a strict mode function.
4201 inline bool strict_mode();
4202 inline void set_strict_mode(bool value);
4203
4193 // Indicates whether or not the code in the shared function support 4204 // Indicates whether or not the code in the shared function support
4194 // deoptimization. 4205 // deoptimization.
4195 inline bool has_deoptimization_support(); 4206 inline bool has_deoptimization_support();
4196 4207
4197 // Enable deoptimization support through recompiled code. 4208 // Enable deoptimization support through recompiled code.
4198 void EnableDeoptimizationSupport(Code* recompiled); 4209 void EnableDeoptimizationSupport(Code* recompiled);
4199 4210
4200 // Lookup the bailout ID and ASSERT that it exists in the non-optimized 4211 // Lookup the bailout ID and ASSERT that it exists in the non-optimized
4201 // code, returns whether it asserted (i.e., always true if assertions are 4212 // code, returns whether it asserted (i.e., always true if assertions are
4202 // disabled). 4213 // disabled).
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after
4364 static const int kStartPositionMask = ~((1 << kStartPositionShift) - 1); 4375 static const int kStartPositionMask = ~((1 << kStartPositionShift) - 1);
4365 4376
4366 // Bit positions in compiler_hints. 4377 // Bit positions in compiler_hints.
4367 static const int kHasOnlySimpleThisPropertyAssignments = 0; 4378 static const int kHasOnlySimpleThisPropertyAssignments = 0;
4368 static const int kTryFullCodegen = 1; 4379 static const int kTryFullCodegen = 1;
4369 static const int kAllowLazyCompilation = 2; 4380 static const int kAllowLazyCompilation = 2;
4370 static const int kLiveObjectsMayExist = 3; 4381 static const int kLiveObjectsMayExist = 3;
4371 static const int kCodeAgeShift = 4; 4382 static const int kCodeAgeShift = 4;
4372 static const int kCodeAgeMask = 0x7; 4383 static const int kCodeAgeMask = 0x7;
4373 static const int kOptimizationDisabled = 7; 4384 static const int kOptimizationDisabled = 7;
4385 static const int kStrictModeFunction = 8;
4374 4386
4375 DISALLOW_IMPLICIT_CONSTRUCTORS(SharedFunctionInfo); 4387 DISALLOW_IMPLICIT_CONSTRUCTORS(SharedFunctionInfo);
4376 }; 4388 };
4377 4389
4378 4390
4379 // JSFunction describes JavaScript functions. 4391 // JSFunction describes JavaScript functions.
4380 class JSFunction: public JSObject { 4392 class JSFunction: public JSObject {
4381 public: 4393 public:
4382 // [prototype_or_initial_map]: 4394 // [prototype_or_initial_map]:
4383 DECL_ACCESSORS(prototype_or_initial_map, Object) 4395 DECL_ACCESSORS(prototype_or_initial_map, Object)
(...skipping 325 matching lines...) Expand 10 before | Expand all | Expand 10 after
4709 #endif 4721 #endif
4710 4722
4711 // Layout description. 4723 // Layout description.
4712 static const int kValueOffset = JSObject::kHeaderSize; 4724 static const int kValueOffset = JSObject::kHeaderSize;
4713 static const int kSize = kValueOffset + kPointerSize; 4725 static const int kSize = kValueOffset + kPointerSize;
4714 4726
4715 private: 4727 private:
4716 DISALLOW_IMPLICIT_CONSTRUCTORS(JSValue); 4728 DISALLOW_IMPLICIT_CONSTRUCTORS(JSValue);
4717 }; 4729 };
4718 4730
4731
4732 // Representation of message objects used for error reporting through
4733 // the API. The messages are formatted in JavaScript so this object is
4734 // a real JavaScript object. The information used for formatting the
4735 // error messages are not directly accessible from JavaScript to
4736 // prevent leaking information to user code called during error
4737 // formatting.
4738 class JSMessageObject: public JSObject {
4739 public:
4740 // [type]: the type of error message.
4741 DECL_ACCESSORS(type, String)
4742
4743 // [arguments]: the arguments for formatting the error message.
4744 DECL_ACCESSORS(arguments, JSArray)
4745
4746 // [script]: the script from which the error message originated.
4747 DECL_ACCESSORS(script, Object)
4748
4749 // [stack_trace]: the stack trace for this error message.
4750 DECL_ACCESSORS(stack_trace, Object)
4751
4752 // [stack_frames]: an array of stack frames for this error object.
4753 DECL_ACCESSORS(stack_frames, Object)
4754
4755 // [start_position]: the start position in the script for the error message.
4756 inline int start_position();
4757 inline void set_start_position(int value);
4758
4759 // [end_position]: the end position in the script for the error message.
4760 inline int end_position();
4761 inline void set_end_position(int value);
4762
4763 // Casting.
4764 static inline JSMessageObject* cast(Object* obj);
4765
4766 // Dispatched behavior.
4767 #ifdef OBJECT_PRINT
4768 inline void JSMessageObjectPrint() {
4769 JSMessageObjectPrint(stdout);
4770 }
4771 void JSMessageObjectPrint(FILE* out);
4772 #endif
4773 #ifdef DEBUG
4774 void JSMessageObjectVerify();
4775 #endif
4776
4777 // Layout description.
4778 static const int kTypeOffset = JSObject::kHeaderSize;
4779 static const int kArgumentsOffset = kTypeOffset + kPointerSize;
4780 static const int kScriptOffset = kArgumentsOffset + kPointerSize;
4781 static const int kStackTraceOffset = kScriptOffset + kPointerSize;
4782 static const int kStackFramesOffset = kStackTraceOffset + kPointerSize;
4783 static const int kStartPositionOffset = kStackFramesOffset + kPointerSize;
4784 static const int kEndPositionOffset = kStartPositionOffset + kPointerSize;
4785 static const int kSize = kEndPositionOffset + kPointerSize;
4786
4787 typedef FixedBodyDescriptor<HeapObject::kMapOffset,
4788 kStackFramesOffset + kPointerSize,
4789 kSize> BodyDescriptor;
4790 };
4791
4792
4719 // Regular expressions 4793 // Regular expressions
4720 // The regular expression holds a single reference to a FixedArray in 4794 // The regular expression holds a single reference to a FixedArray in
4721 // the kDataOffset field. 4795 // the kDataOffset field.
4722 // The FixedArray contains the following data: 4796 // The FixedArray contains the following data:
4723 // - tag : type of regexp implementation (not compiled yet, atom or irregexp) 4797 // - tag : type of regexp implementation (not compiled yet, atom or irregexp)
4724 // - reference to the original source string 4798 // - reference to the original source string
4725 // - reference to the original flag string 4799 // - reference to the original flag string
4726 // If it is an atom regexp 4800 // If it is an atom regexp
4727 // - a reference to a literal string to search for 4801 // - a reference to a literal string to search for
4728 // If it is an irregexp regexp: 4802 // If it is an irregexp regexp:
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
4847 static const int kPrefixSize = 0; 4921 static const int kPrefixSize = 0;
4848 static const int kEntrySize = 2; 4922 static const int kEntrySize = 2;
4849 }; 4923 };
4850 4924
4851 4925
4852 class CompilationCacheTable: public HashTable<CompilationCacheShape, 4926 class CompilationCacheTable: public HashTable<CompilationCacheShape,
4853 HashTableKey*> { 4927 HashTableKey*> {
4854 public: 4928 public:
4855 // Find cached value for a string key, otherwise return null. 4929 // Find cached value for a string key, otherwise return null.
4856 Object* Lookup(String* src); 4930 Object* Lookup(String* src);
4857 Object* LookupEval(String* src, Context* context); 4931 Object* LookupEval(String* src, Context* context, StrictModeFlag strict_mode);
4858 Object* LookupRegExp(String* source, JSRegExp::Flags flags); 4932 Object* LookupRegExp(String* source, JSRegExp::Flags flags);
4859 MaybeObject* Put(String* src, Object* value); 4933 MaybeObject* Put(String* src, Object* value);
4860 MaybeObject* PutEval(String* src, Context* context, Object* value); 4934 MaybeObject* PutEval(String* src,
4935 Context* context,
4936 SharedFunctionInfo* value);
4861 MaybeObject* PutRegExp(String* src, JSRegExp::Flags flags, FixedArray* value); 4937 MaybeObject* PutRegExp(String* src, JSRegExp::Flags flags, FixedArray* value);
4862 4938
4863 // Remove given value from cache. 4939 // Remove given value from cache.
4864 void Remove(Object* value); 4940 void Remove(Object* value);
4865 4941
4866 static inline CompilationCacheTable* cast(Object* obj); 4942 static inline CompilationCacheTable* cast(Object* obj);
4867 4943
4868 private: 4944 private:
4869 DISALLOW_IMPLICIT_CONSTRUCTORS(CompilationCacheTable); 4945 DISALLOW_IMPLICIT_CONSTRUCTORS(CompilationCacheTable);
4870 }; 4946 };
(...skipping 1584 matching lines...) Expand 10 before | Expand all | Expand 10 after
6455 } else { 6531 } else {
6456 value &= ~(1 << bit_position); 6532 value &= ~(1 << bit_position);
6457 } 6533 }
6458 return value; 6534 return value;
6459 } 6535 }
6460 }; 6536 };
6461 6537
6462 } } // namespace v8::internal 6538 } } // namespace v8::internal
6463 6539
6464 #endif // V8_OBJECTS_H_ 6540 #endif // V8_OBJECTS_H_
OLDNEW
« no previous file with comments | « src/mirror-debugger.js ('k') | src/objects.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698