OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 843 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
854 inline void set_##name(bool value); \ | 854 inline void set_##name(bool value); \ |
855 | 855 |
856 | 856 |
857 #define DECL_ACCESSORS(name, type) \ | 857 #define DECL_ACCESSORS(name, type) \ |
858 inline type* name(); \ | 858 inline type* name(); \ |
859 inline void set_##name(type* value, \ | 859 inline void set_##name(type* value, \ |
860 WriteBarrierMode mode = UPDATE_WRITE_BARRIER); \ | 860 WriteBarrierMode mode = UPDATE_WRITE_BARRIER); \ |
861 | 861 |
862 class AccessorPair; | 862 class AccessorPair; |
863 class AllocationSite; | 863 class AllocationSite; |
864 class AllocationSiteContext; | 864 class AllocationSiteCreationContext; |
| 865 class AllocationSiteUsageContext; |
865 class DictionaryElementsAccessor; | 866 class DictionaryElementsAccessor; |
866 class ElementsAccessor; | 867 class ElementsAccessor; |
867 class Failure; | 868 class Failure; |
868 class FixedArrayBase; | 869 class FixedArrayBase; |
869 class ObjectVisitor; | 870 class ObjectVisitor; |
870 class StringStream; | 871 class StringStream; |
871 class Type; | 872 class Type; |
872 | 873 |
873 | 874 |
874 // A template-ized version of the IsXXX functions. | 875 // A template-ized version of the IsXXX functions. |
(...skipping 1639 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2514 // Disalow further properties to be added to the object. | 2515 // Disalow further properties to be added to the object. |
2515 static Handle<Object> PreventExtensions(Handle<JSObject> object); | 2516 static Handle<Object> PreventExtensions(Handle<JSObject> object); |
2516 | 2517 |
2517 // ES5 Object.freeze | 2518 // ES5 Object.freeze |
2518 static Handle<Object> Freeze(Handle<JSObject> object); | 2519 static Handle<Object> Freeze(Handle<JSObject> object); |
2519 | 2520 |
2520 // Called the first time an object is observed with ES7 Object.observe. | 2521 // Called the first time an object is observed with ES7 Object.observe. |
2521 static void SetObserved(Handle<JSObject> object); | 2522 static void SetObserved(Handle<JSObject> object); |
2522 | 2523 |
2523 // Copy object. | 2524 // Copy object. |
2524 static Handle<JSObject> Copy(Handle<JSObject> object, | 2525 enum DeepCopyHints { |
2525 Handle<AllocationSite> site); | 2526 kNoHints = 0, |
| 2527 kObjectIsShallowArray = 1 |
| 2528 }; |
| 2529 |
2526 static Handle<JSObject> Copy(Handle<JSObject> object); | 2530 static Handle<JSObject> Copy(Handle<JSObject> object); |
2527 static Handle<JSObject> DeepCopy(Handle<JSObject> object, | 2531 static Handle<JSObject> DeepCopy(Handle<JSObject> object, |
2528 AllocationSiteContext* site_context); | 2532 AllocationSiteUsageContext* site_context, |
| 2533 DeepCopyHints hints = kNoHints); |
2529 static Handle<JSObject> DeepWalk(Handle<JSObject> object, | 2534 static Handle<JSObject> DeepWalk(Handle<JSObject> object, |
2530 AllocationSiteContext* site_context); | 2535 AllocationSiteCreationContext* site_context); |
2531 | 2536 |
2532 // Casting. | 2537 // Casting. |
2533 static inline JSObject* cast(Object* obj); | 2538 static inline JSObject* cast(Object* obj); |
2534 | 2539 |
2535 // Dispatched behavior. | 2540 // Dispatched behavior. |
2536 void JSObjectShortPrint(StringStream* accumulator); | 2541 void JSObjectShortPrint(StringStream* accumulator); |
2537 DECLARE_PRINTER(JSObject) | 2542 DECLARE_PRINTER(JSObject) |
2538 DECLARE_VERIFIER(JSObject) | 2543 DECLARE_VERIFIER(JSObject) |
2539 #ifdef OBJECT_PRINT | 2544 #ifdef OBJECT_PRINT |
2540 void PrintProperties(FILE* out = stdout); | 2545 void PrintProperties(FILE* out = stdout); |
(...skipping 8025 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10566 } else { | 10571 } else { |
10567 value &= ~(1 << bit_position); | 10572 value &= ~(1 << bit_position); |
10568 } | 10573 } |
10569 return value; | 10574 return value; |
10570 } | 10575 } |
10571 }; | 10576 }; |
10572 | 10577 |
10573 } } // namespace v8::internal | 10578 } } // namespace v8::internal |
10574 | 10579 |
10575 #endif // V8_OBJECTS_H_ | 10580 #endif // V8_OBJECTS_H_ |
OLD | NEW |