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

Side by Side Diff: src/objects.h

Issue 1642223003: [api] Make ObjectTemplate::SetNativeDataProperty() work even if the ObjectTemplate does not have a … (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Removed asserts preventing JSReceiver properties in ObjectTemplate Created 4 years, 10 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
« no previous file with comments | « src/mips64/builtins-mips64.cc ('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 2015 the V8 project authors. All rights reserved. 1 // Copyright 2015 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef V8_OBJECTS_H_ 5 #ifndef V8_OBJECTS_H_
6 #define V8_OBJECTS_H_ 6 #define V8_OBJECTS_H_
7 7
8 #include <iosfwd> 8 #include <iosfwd>
9 9
10 #include "src/allocation.h" 10 #include "src/allocation.h"
(...skipping 2371 matching lines...) Expand 10 before | Expand all | Expand 10 after
2382 // Called the first time an object is observed with ES7 Object.observe. 2382 // Called the first time an object is observed with ES7 Object.observe.
2383 static void SetObserved(Handle<JSObject> object); 2383 static void SetObserved(Handle<JSObject> object);
2384 2384
2385 // Copy object. 2385 // Copy object.
2386 enum DeepCopyHints { kNoHints = 0, kObjectIsShallow = 1 }; 2386 enum DeepCopyHints { kNoHints = 0, kObjectIsShallow = 1 };
2387 2387
2388 MUST_USE_RESULT static MaybeHandle<JSObject> DeepCopy( 2388 MUST_USE_RESULT static MaybeHandle<JSObject> DeepCopy(
2389 Handle<JSObject> object, 2389 Handle<JSObject> object,
2390 AllocationSiteUsageContext* site_context, 2390 AllocationSiteUsageContext* site_context,
2391 DeepCopyHints hints = kNoHints); 2391 DeepCopyHints hints = kNoHints);
2392 // Deep copies given object with special handling for JSFunctions which
2393 // 1) must be Api functions and 2) are not copied but left as is.
2394 MUST_USE_RESULT static MaybeHandle<JSObject> DeepCopyApiBoilerplate(
2395 Handle<JSObject> object);
2392 MUST_USE_RESULT static MaybeHandle<JSObject> DeepWalk( 2396 MUST_USE_RESULT static MaybeHandle<JSObject> DeepWalk(
2393 Handle<JSObject> object, 2397 Handle<JSObject> object,
2394 AllocationSiteCreationContext* site_context); 2398 AllocationSiteCreationContext* site_context);
2395 2399
2396 DECLARE_CAST(JSObject) 2400 DECLARE_CAST(JSObject)
2397 2401
2398 // Dispatched behavior. 2402 // Dispatched behavior.
2399 void JSObjectShortPrint(StringStream* accumulator); 2403 void JSObjectShortPrint(StringStream* accumulator);
2400 DECLARE_PRINTER(JSObject) 2404 DECLARE_PRINTER(JSObject)
2401 DECLARE_VERIFIER(JSObject) 2405 DECLARE_VERIFIER(JSObject)
(...skipping 8058 matching lines...) Expand 10 before | Expand all | Expand 10 after
10460 static const int kSize = kFastHandlerOffset + kPointerSize; 10464 static const int kSize = kFastHandlerOffset + kPointerSize;
10461 10465
10462 private: 10466 private:
10463 DISALLOW_IMPLICIT_CONSTRUCTORS(CallHandlerInfo); 10467 DISALLOW_IMPLICIT_CONSTRUCTORS(CallHandlerInfo);
10464 }; 10468 };
10465 10469
10466 10470
10467 class TemplateInfo: public Struct { 10471 class TemplateInfo: public Struct {
10468 public: 10472 public:
10469 DECL_ACCESSORS(tag, Object) 10473 DECL_ACCESSORS(tag, Object)
10470 inline int number_of_properties() const; 10474 DECL_ACCESSORS(serial_number, Object)
10471 inline void set_number_of_properties(int value); 10475 DECL_INT_ACCESSORS(number_of_properties)
10472 DECL_ACCESSORS(property_list, Object) 10476 DECL_ACCESSORS(property_list, Object)
10473 DECL_ACCESSORS(property_accessors, Object) 10477 DECL_ACCESSORS(property_accessors, Object)
10474 10478
10475 DECLARE_VERIFIER(TemplateInfo) 10479 DECLARE_VERIFIER(TemplateInfo)
10476 10480
10477 static const int kTagOffset = HeapObject::kHeaderSize; 10481 static const int kTagOffset = HeapObject::kHeaderSize;
10478 static const int kNumberOfProperties = kTagOffset + kPointerSize; 10482 static const int kSerialNumberOffset = kTagOffset + kPointerSize;
10483 static const int kNumberOfProperties = kSerialNumberOffset + kPointerSize;
10479 static const int kPropertyListOffset = kNumberOfProperties + kPointerSize; 10484 static const int kPropertyListOffset = kNumberOfProperties + kPointerSize;
10480 static const int kPropertyAccessorsOffset = 10485 static const int kPropertyAccessorsOffset =
10481 kPropertyListOffset + kPointerSize; 10486 kPropertyListOffset + kPointerSize;
10482 static const int kPropertyIntrinsicsOffset = 10487 static const int kPropertyIntrinsicsOffset =
10483 kPropertyAccessorsOffset + kPointerSize; 10488 kPropertyAccessorsOffset + kPointerSize;
10484 static const int kHeaderSize = kPropertyIntrinsicsOffset + kPointerSize; 10489 static const int kHeaderSize = kPropertyIntrinsicsOffset + kPointerSize;
10485 10490
10486 private: 10491 private:
10487 DISALLOW_IMPLICIT_CONSTRUCTORS(TemplateInfo); 10492 DISALLOW_IMPLICIT_CONSTRUCTORS(TemplateInfo);
10488 }; 10493 };
10489 10494
10490 10495
10491 class FunctionTemplateInfo: public TemplateInfo { 10496 class FunctionTemplateInfo: public TemplateInfo {
10492 public: 10497 public:
10493 DECL_ACCESSORS(serial_number, Object)
10494 DECL_ACCESSORS(call_code, Object) 10498 DECL_ACCESSORS(call_code, Object)
10495 DECL_ACCESSORS(prototype_template, Object) 10499 DECL_ACCESSORS(prototype_template, Object)
10496 DECL_ACCESSORS(parent_template, Object) 10500 DECL_ACCESSORS(parent_template, Object)
10497 DECL_ACCESSORS(named_property_handler, Object) 10501 DECL_ACCESSORS(named_property_handler, Object)
10498 DECL_ACCESSORS(indexed_property_handler, Object) 10502 DECL_ACCESSORS(indexed_property_handler, Object)
10499 DECL_ACCESSORS(instance_template, Object) 10503 DECL_ACCESSORS(instance_template, Object)
10500 DECL_ACCESSORS(class_name, Object) 10504 DECL_ACCESSORS(class_name, Object)
10501 DECL_ACCESSORS(signature, Object) 10505 DECL_ACCESSORS(signature, Object)
10502 DECL_ACCESSORS(instance_call_handler, Object) 10506 DECL_ACCESSORS(instance_call_handler, Object)
10503 DECL_ACCESSORS(access_check_info, Object) 10507 DECL_ACCESSORS(access_check_info, Object)
(...skipping 13 matching lines...) Expand all
10517 DECL_BOOLEAN_ACCESSORS(do_not_cache) 10521 DECL_BOOLEAN_ACCESSORS(do_not_cache)
10518 DECL_BOOLEAN_ACCESSORS(instantiated) 10522 DECL_BOOLEAN_ACCESSORS(instantiated)
10519 DECL_BOOLEAN_ACCESSORS(accept_any_receiver) 10523 DECL_BOOLEAN_ACCESSORS(accept_any_receiver)
10520 10524
10521 DECLARE_CAST(FunctionTemplateInfo) 10525 DECLARE_CAST(FunctionTemplateInfo)
10522 10526
10523 // Dispatched behavior. 10527 // Dispatched behavior.
10524 DECLARE_PRINTER(FunctionTemplateInfo) 10528 DECLARE_PRINTER(FunctionTemplateInfo)
10525 DECLARE_VERIFIER(FunctionTemplateInfo) 10529 DECLARE_VERIFIER(FunctionTemplateInfo)
10526 10530
10527 static const int kSerialNumberOffset = TemplateInfo::kHeaderSize; 10531 static const int kCallCodeOffset = TemplateInfo::kHeaderSize;
10528 static const int kCallCodeOffset = kSerialNumberOffset + kPointerSize;
10529 static const int kPrototypeTemplateOffset = 10532 static const int kPrototypeTemplateOffset =
10530 kCallCodeOffset + kPointerSize; 10533 kCallCodeOffset + kPointerSize;
10531 static const int kParentTemplateOffset = 10534 static const int kParentTemplateOffset =
10532 kPrototypeTemplateOffset + kPointerSize; 10535 kPrototypeTemplateOffset + kPointerSize;
10533 static const int kNamedPropertyHandlerOffset = 10536 static const int kNamedPropertyHandlerOffset =
10534 kParentTemplateOffset + kPointerSize; 10537 kParentTemplateOffset + kPointerSize;
10535 static const int kIndexedPropertyHandlerOffset = 10538 static const int kIndexedPropertyHandlerOffset =
10536 kNamedPropertyHandlerOffset + kPointerSize; 10539 kNamedPropertyHandlerOffset + kPointerSize;
10537 static const int kInstanceTemplateOffset = 10540 static const int kInstanceTemplateOffset =
10538 kIndexedPropertyHandlerOffset + kPointerSize; 10541 kIndexedPropertyHandlerOffset + kPointerSize;
(...skipping 264 matching lines...) Expand 10 before | Expand all | Expand 10 after
10803 } 10806 }
10804 return value; 10807 return value;
10805 } 10808 }
10806 }; 10809 };
10807 10810
10808 10811
10809 } // NOLINT, false-positive due to second-order macros. 10812 } // NOLINT, false-positive due to second-order macros.
10810 } // NOLINT, false-positive due to second-order macros. 10813 } // NOLINT, false-positive due to second-order macros.
10811 10814
10812 #endif // V8_OBJECTS_H_ 10815 #endif // V8_OBJECTS_H_
OLDNEW
« no previous file with comments | « src/mips64/builtins-mips64.cc ('k') | src/objects.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698