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

Side by Side Diff: include/v8.h

Issue 16153003: de-isolate remaining persistent calls (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 7 years, 6 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 | « no previous file | src/api.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 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 614 matching lines...) Expand 10 before | Expand all | Expand 10 after
625 #endif 625 #endif
626 626
627 V8_INLINE(void Dispose()); 627 V8_INLINE(void Dispose());
628 628
629 /** 629 /**
630 * Releases the storage cell referenced by this persistent handle. 630 * Releases the storage cell referenced by this persistent handle.
631 * Does not remove the reference to the cell from any handles. 631 * Does not remove the reference to the cell from any handles.
632 * This handle's reference, and any other references to the storage 632 * This handle's reference, and any other references to the storage
633 * cell remain and IsEmpty will still return false. 633 * cell remain and IsEmpty will still return false.
634 */ 634 */
635 // TODO(dcarney): remove before cutover 635 // TODO(dcarney): deprecate
636 V8_INLINE(void Dispose(Isolate* isolate)); 636 V8_INLINE(void Dispose(Isolate* isolate)) { Dispose(); }
637
638 template<typename S, typename P>
639 V8_INLINE(void MakeWeak(
640 Isolate* isolate,
641 P* parameters,
642 typename WeakReferenceCallbacks<S, P>::Revivable callback));
643
644 template<typename P>
645 V8_INLINE(void MakeWeak(
646 Isolate* isolate,
647 P* parameters,
648 typename WeakReferenceCallbacks<T, P>::Revivable callback));
649 637
650 /** 638 /**
651 * Make the reference to this object weak. When only weak handles 639 * Make the reference to this object weak. When only weak handles
652 * refer to the object, the garbage collector will perform a 640 * refer to the object, the garbage collector will perform a
653 * callback to the given V8::NearDeathCallback function, passing 641 * callback to the given V8::NearDeathCallback function, passing
654 * it the object reference and the given parameters. 642 * it the object reference and the given parameters.
655 */ 643 */
644 template<typename S, typename P>
645 V8_INLINE(void MakeWeak(
646 P* parameters,
647 typename WeakReferenceCallbacks<S, P>::Revivable callback));
648
649 template<typename P>
650 V8_INLINE(void MakeWeak(
651 P* parameters,
652 typename WeakReferenceCallbacks<T, P>::Revivable callback));
653
654 // TODO(dcarney): deprecate
655 template<typename S, typename P>
656 V8_INLINE(void MakeWeak(
657 Isolate* isolate,
658 P* parameters,
659 typename WeakReferenceCallbacks<S, P>::Revivable callback)) {
660 MakeWeak<S, P>(parameters, callback);
661 }
662
663 // TODO(dcarney): deprecate
664 template<typename P>
665 V8_INLINE(void MakeWeak(
666 Isolate* isolate,
667 P* parameters,
668 typename WeakReferenceCallbacks<T, P>::Revivable callback)) {
669 MakeWeak<P>(parameters, callback);
670 }
671
656 // TODO(dcarney): remove before cutover 672 // TODO(dcarney): remove before cutover
657 V8_INLINE(void MakeWeak(Isolate* isolate, 673 V8_INLINE(void MakeWeak(Isolate* isolate,
658 void* parameters, 674 void* parameters,
659 NearDeathCallback callback)); 675 NearDeathCallback callback));
660 676
661 V8_INLINE(void ClearWeak()); 677 V8_INLINE(void ClearWeak());
662 678
663 // TODO(dcarney): remove before cutover 679 // TODO(dcarney): deprecate
664 V8_INLINE(void ClearWeak(Isolate* isolate)); 680 V8_INLINE(void ClearWeak(Isolate* isolate)) { ClearWeak(); }
665
666 V8_INLINE(void MarkIndependent());
667 681
668 /** 682 /**
669 * Marks the reference to this object independent. Garbage collector is free 683 * Marks the reference to this object independent. Garbage collector is free
670 * to ignore any object groups containing this object. Weak callback for an 684 * to ignore any object groups containing this object. Weak callback for an
671 * independent handle should not assume that it will be preceded by a global 685 * independent handle should not assume that it will be preceded by a global
672 * GC prologue callback or followed by a global GC epilogue callback. 686 * GC prologue callback or followed by a global GC epilogue callback.
673 */ 687 */
674 // TODO(dcarney): remove before cutover 688 V8_INLINE(void MarkIndependent());
675 V8_INLINE(void MarkIndependent(Isolate* isolate));
676 689
677 V8_INLINE(void MarkPartiallyDependent()); 690 // TODO(dcarney): deprecate
691 V8_INLINE(void MarkIndependent(Isolate* isolate)) { MarkIndependent(); }
678 692
679 /** 693 /**
680 * Marks the reference to this object partially dependent. Partially dependent 694 * Marks the reference to this object partially dependent. Partially dependent
681 * handles only depend on other partially dependent handles and these 695 * handles only depend on other partially dependent handles and these
682 * dependencies are provided through object groups. It provides a way to build 696 * dependencies are provided through object groups. It provides a way to build
683 * smaller object groups for young objects that represent only a subset of all 697 * smaller object groups for young objects that represent only a subset of all
684 * external dependencies. This mark is automatically cleared after each 698 * external dependencies. This mark is automatically cleared after each
685 * garbage collection. 699 * garbage collection.
686 */ 700 */
687 // TODO(dcarney): remove before cutover 701 V8_INLINE(void MarkPartiallyDependent());
688 V8_INLINE(void MarkPartiallyDependent(Isolate* isolate)); 702
703 // TODO(dcarney): deprecate
704 V8_INLINE(void MarkPartiallyDependent(Isolate* isolate)) {
705 MarkPartiallyDependent();
706 }
689 707
690 V8_INLINE(bool IsIndependent() const); 708 V8_INLINE(bool IsIndependent() const);
691 709
692 // TODO(dcarney): remove before cutover 710 // TODO(dcarney): deprecate
693 V8_INLINE(bool IsIndependent(Isolate* isolate) const); 711 V8_INLINE(bool IsIndependent(Isolate* isolate) const) {
712 return IsIndependent();
713 }
694 714
715 /** Checks if the handle holds the only reference to an object. */
695 V8_INLINE(bool IsNearDeath() const); 716 V8_INLINE(bool IsNearDeath() const);
696 717
697 /** Checks if the handle holds the only reference to an object. */ 718 // TODO(dcarney): deprecate
698 // TODO(dcarney): remove before cutover 719 V8_INLINE(bool IsNearDeath(Isolate* isolate) const) { return IsNearDeath(); }
699 V8_INLINE(bool IsNearDeath(Isolate* isolate) const);
700 720
721 /** Returns true if the handle's reference is weak. */
701 V8_INLINE(bool IsWeak() const); 722 V8_INLINE(bool IsWeak() const);
702 723
703 /** Returns true if the handle's reference is weak. */ 724 // TODO(dcarney): deprecate
704 // TODO(dcarney): remove before cutover 725 V8_INLINE(bool IsWeak(Isolate* isolate) const) { return IsWeak(); }
705 V8_INLINE(bool IsWeak(Isolate* isolate) const);
706
707 V8_INLINE(void SetWrapperClassId(uint16_t class_id));
708 726
709 /** 727 /**
710 * Assigns a wrapper class ID to the handle. See RetainedObjectInfo interface 728 * Assigns a wrapper class ID to the handle. See RetainedObjectInfo interface
711 * description in v8-profiler.h for details. 729 * description in v8-profiler.h for details.
712 */ 730 */
713 // TODO(dcarney): remove before cutover 731 V8_INLINE(void SetWrapperClassId(uint16_t class_id));
714 V8_INLINE(void SetWrapperClassId(Isolate* isolate, uint16_t class_id));
715 732
716 V8_INLINE(uint16_t WrapperClassId() const); 733 // TODO(dcarney): deprecate
734 V8_INLINE(void SetWrapperClassId(Isolate* isolate, uint16_t class_id)) {
735 SetWrapperClassId(class_id);
736 }
717 737
718 /** 738 /**
719 * Returns the class ID previously assigned to this handle or 0 if no class ID 739 * Returns the class ID previously assigned to this handle or 0 if no class ID
720 * was previously assigned. 740 * was previously assigned.
721 */ 741 */
722 // TODO(dcarney): remove before cutover 742 V8_INLINE(uint16_t WrapperClassId() const);
723 V8_INLINE(uint16_t WrapperClassId(Isolate* isolate) const); 743
744 // TODO(dcarney): deprecate
745 V8_INLINE(uint16_t WrapperClassId(Isolate* isolate) const) {
746 return WrapperClassId();
747 }
724 748
725 /** 749 /**
726 * Disposes the current contents of the handle and replaces it. 750 * Disposes the current contents of the handle and replaces it.
727 */ 751 */
728 V8_INLINE(void Reset(Isolate* isolate, const Handle<T>& other)); 752 V8_INLINE(void Reset(Isolate* isolate, const Handle<T>& other));
729 753
730 /** 754 /**
731 * Returns the underlying raw pointer and clears the handle. The caller is 755 * Returns the underlying raw pointer and clears the handle. The caller is
732 * responsible of eventually destroying the underlying object (by creating a 756 * responsible of eventually destroying the underlying object (by creating a
733 * Persistent handle which points to it and Disposing it). In the future, 757 * Persistent handle which points to it and Disposing it). In the future,
(...skipping 3859 matching lines...) Expand 10 before | Expand all | Expand 10 after
4593 */ 4617 */
4594 static int ContextDisposedNotification(); 4618 static int ContextDisposedNotification();
4595 4619
4596 private: 4620 private:
4597 V8(); 4621 V8();
4598 4622
4599 static internal::Object** GlobalizeReference(internal::Isolate* isolate, 4623 static internal::Object** GlobalizeReference(internal::Isolate* isolate,
4600 internal::Object** handle); 4624 internal::Object** handle);
4601 static void DisposeGlobal(internal::Object** global_handle); 4625 static void DisposeGlobal(internal::Object** global_handle);
4602 typedef WeakReferenceCallbacks<Value, void>::Revivable RevivableCallback; 4626 typedef WeakReferenceCallbacks<Value, void>::Revivable RevivableCallback;
4603 static void MakeWeak(internal::Isolate* isolate, 4627 static void MakeWeak(internal::Object** global_handle,
4604 internal::Object** global_handle,
4605 void* data, 4628 void* data,
4606 RevivableCallback weak_reference_callback, 4629 RevivableCallback weak_reference_callback,
4607 NearDeathCallback near_death_callback); 4630 NearDeathCallback near_death_callback);
4608 static void ClearWeak(internal::Isolate* isolate, 4631 static void ClearWeak(internal::Object** global_handle);
4609 internal::Object** global_handle);
4610 4632
4611 template <class T> friend class Handle; 4633 template <class T> friend class Handle;
4612 template <class T> friend class Local; 4634 template <class T> friend class Local;
4613 template <class T> friend class Persistent; 4635 template <class T> friend class Persistent;
4614 friend class Context; 4636 friend class Context;
4615 }; 4637 };
4616 4638
4617 4639
4618 /** 4640 /**
4619 * An external exception handler. 4641 * An external exception handler.
(...skipping 868 matching lines...) Expand 10 before | Expand all | Expand 10 after
5488 if (that == NULL) return Persistent<T>(); 5510 if (that == NULL) return Persistent<T>();
5489 internal::Object** p = reinterpret_cast<internal::Object**>(that); 5511 internal::Object** p = reinterpret_cast<internal::Object**>(that);
5490 return Persistent<T>(reinterpret_cast<T*>( 5512 return Persistent<T>(reinterpret_cast<T*>(
5491 V8::GlobalizeReference(reinterpret_cast<internal::Isolate*>(isolate), 5513 V8::GlobalizeReference(reinterpret_cast<internal::Isolate*>(isolate),
5492 p))); 5514 p)));
5493 } 5515 }
5494 5516
5495 5517
5496 template <class T> 5518 template <class T>
5497 bool Persistent<T>::IsIndependent() const { 5519 bool Persistent<T>::IsIndependent() const {
5498 return IsIndependent(Isolate::GetCurrent());
5499 }
5500
5501
5502 template <class T>
5503 bool Persistent<T>::IsIndependent(Isolate* isolate) const {
5504 typedef internal::Internals I; 5520 typedef internal::Internals I;
5505 if (this->IsEmpty()) return false; 5521 if (this->IsEmpty()) return false;
5506 if (!I::IsInitialized(isolate)) return false;
5507 return I::GetNodeFlag(reinterpret_cast<internal::Object**>(this->val_), 5522 return I::GetNodeFlag(reinterpret_cast<internal::Object**>(this->val_),
5508 I::kNodeIsIndependentShift); 5523 I::kNodeIsIndependentShift);
5509 } 5524 }
5510 5525
5511 5526
5512 template <class T> 5527 template <class T>
5513 bool Persistent<T>::IsNearDeath() const { 5528 bool Persistent<T>::IsNearDeath() const {
5514 return IsNearDeath(Isolate::GetCurrent());
5515 }
5516
5517
5518 template <class T>
5519 bool Persistent<T>::IsNearDeath(Isolate* isolate) const {
5520 typedef internal::Internals I; 5529 typedef internal::Internals I;
5521 if (this->IsEmpty()) return false; 5530 if (this->IsEmpty()) return false;
5522 if (!I::IsInitialized(isolate)) return false;
5523 return I::GetNodeState(reinterpret_cast<internal::Object**>(this->val_)) == 5531 return I::GetNodeState(reinterpret_cast<internal::Object**>(this->val_)) ==
5524 I::kNodeStateIsNearDeathValue; 5532 I::kNodeStateIsNearDeathValue;
5525 } 5533 }
5526 5534
5527 5535
5528 template <class T> 5536 template <class T>
5529 bool Persistent<T>::IsWeak() const { 5537 bool Persistent<T>::IsWeak() const {
5530 return IsWeak(Isolate::GetCurrent());
5531 }
5532
5533
5534 template <class T>
5535 bool Persistent<T>::IsWeak(Isolate* isolate) const {
5536 typedef internal::Internals I; 5538 typedef internal::Internals I;
5537 if (this->IsEmpty()) return false; 5539 if (this->IsEmpty()) return false;
5538 if (!I::IsInitialized(isolate)) return false;
5539 return I::GetNodeState(reinterpret_cast<internal::Object**>(this->val_)) == 5540 return I::GetNodeState(reinterpret_cast<internal::Object**>(this->val_)) ==
5540 I::kNodeStateIsWeakValue; 5541 I::kNodeStateIsWeakValue;
5541 } 5542 }
5542 5543
5543 5544
5544 template <class T> 5545 template <class T>
5545 void Persistent<T>::Dispose() { 5546 void Persistent<T>::Dispose() {
5546 if (this->IsEmpty()) return; 5547 if (this->IsEmpty()) return;
5547 V8::DisposeGlobal(reinterpret_cast<internal::Object**>(this->val_)); 5548 V8::DisposeGlobal(reinterpret_cast<internal::Object**>(this->val_));
5548 #ifndef V8_USE_UNSAFE_HANDLES 5549 #ifndef V8_USE_UNSAFE_HANDLES
5549 val_ = 0; 5550 val_ = 0;
5550 #endif 5551 #endif
5551 } 5552 }
5552 5553
5553 5554
5554 template <class T> 5555 template <class T>
5555 void Persistent<T>::Dispose(Isolate* isolate) {
5556 Dispose();
5557 }
5558
5559
5560 template <class T>
5561 template <typename S, typename P> 5556 template <typename S, typename P>
5562 void Persistent<T>::MakeWeak( 5557 void Persistent<T>::MakeWeak(
5563 Isolate* isolate,
5564 P* parameters, 5558 P* parameters,
5565 typename WeakReferenceCallbacks<S, P>::Revivable callback) { 5559 typename WeakReferenceCallbacks<S, P>::Revivable callback) {
5566 TYPE_CHECK(S, T); 5560 TYPE_CHECK(S, T);
5567 typedef typename WeakReferenceCallbacks<Value, void>::Revivable Revivable; 5561 typedef typename WeakReferenceCallbacks<Value, void>::Revivable Revivable;
5568 V8::MakeWeak(reinterpret_cast<internal::Isolate*>(isolate), 5562 V8::MakeWeak(reinterpret_cast<internal::Object**>(this->val_),
5569 reinterpret_cast<internal::Object**>(this->val_),
5570 parameters, 5563 parameters,
5571 reinterpret_cast<Revivable>(callback), 5564 reinterpret_cast<Revivable>(callback),
5572 NULL); 5565 NULL);
5573 } 5566 }
5574 5567
5575 5568
5576 template <class T> 5569 template <class T>
5577 template <typename P> 5570 template <typename P>
5578 void Persistent<T>::MakeWeak( 5571 void Persistent<T>::MakeWeak(
5579 Isolate* isolate,
5580 P* parameters, 5572 P* parameters,
5581 typename WeakReferenceCallbacks<T, P>::Revivable callback) { 5573 typename WeakReferenceCallbacks<T, P>::Revivable callback) {
5582 MakeWeak<T, P>(isolate, parameters, callback); 5574 MakeWeak<T, P>(parameters, callback);
5583 } 5575 }
5584 5576
5585 5577
5586 template <class T> 5578 template <class T>
5587 void Persistent<T>::MakeWeak(Isolate* isolate, 5579 void Persistent<T>::MakeWeak(Isolate* isolate,
5588 void* parameters, 5580 void* parameters,
5589 NearDeathCallback callback) { 5581 NearDeathCallback callback) {
5590 V8::MakeWeak(reinterpret_cast<internal::Isolate*>(isolate), 5582 V8::MakeWeak(reinterpret_cast<internal::Object**>(this->val_),
5591 reinterpret_cast<internal::Object**>(this->val_),
5592 parameters, 5583 parameters,
5593 NULL, 5584 NULL,
5594 callback); 5585 callback);
5595 } 5586 }
5596 5587
5588
5597 template <class T> 5589 template <class T>
5598 void Persistent<T>::ClearWeak() { 5590 void Persistent<T>::ClearWeak() {
5599 ClearWeak(Isolate::GetCurrent()); 5591 V8::ClearWeak(reinterpret_cast<internal::Object**>(this->val_));
5600 } 5592 }
5601 5593
5602 template <class T>
5603 void Persistent<T>::ClearWeak(Isolate* isolate) {
5604 V8::ClearWeak(reinterpret_cast<internal::Isolate*>(isolate),
5605 reinterpret_cast<internal::Object**>(this->val_));
5606 }
5607 5594
5608 template <class T> 5595 template <class T>
5609 void Persistent<T>::MarkIndependent() { 5596 void Persistent<T>::MarkIndependent() {
5610 MarkIndependent(Isolate::GetCurrent());
5611 }
5612
5613 template <class T>
5614 void Persistent<T>::MarkIndependent(Isolate* isolate) {
5615 typedef internal::Internals I; 5597 typedef internal::Internals I;
5616 if (this->IsEmpty()) return; 5598 if (this->IsEmpty()) return;
5617 if (!I::IsInitialized(isolate)) return;
5618 I::UpdateNodeFlag(reinterpret_cast<internal::Object**>(this->val_), 5599 I::UpdateNodeFlag(reinterpret_cast<internal::Object**>(this->val_),
5619 true, 5600 true,
5620 I::kNodeIsIndependentShift); 5601 I::kNodeIsIndependentShift);
5621 } 5602 }
5622 5603
5604
5623 template <class T> 5605 template <class T>
5624 void Persistent<T>::MarkPartiallyDependent() { 5606 void Persistent<T>::MarkPartiallyDependent() {
5625 MarkPartiallyDependent(Isolate::GetCurrent());
5626 }
5627
5628 template <class T>
5629 void Persistent<T>::MarkPartiallyDependent(Isolate* isolate) {
5630 typedef internal::Internals I; 5607 typedef internal::Internals I;
5631 if (this->IsEmpty()) return; 5608 if (this->IsEmpty()) return;
5632 if (!I::IsInitialized(isolate)) return;
5633 I::UpdateNodeFlag(reinterpret_cast<internal::Object**>(this->val_), 5609 I::UpdateNodeFlag(reinterpret_cast<internal::Object**>(this->val_),
5634 true, 5610 true,
5635 I::kNodeIsPartiallyDependentShift); 5611 I::kNodeIsPartiallyDependentShift);
5636 } 5612 }
5637 5613
5638 template <class T>
5639 void Persistent<T>::SetWrapperClassId(uint16_t class_id) {
5640 SetWrapperClassId(Isolate::GetCurrent(), class_id);
5641 }
5642
5643 5614
5644 template <class T> 5615 template <class T>
5645 void Persistent<T>::Reset(Isolate* isolate, const Handle<T>& other) { 5616 void Persistent<T>::Reset(Isolate* isolate, const Handle<T>& other) {
5646 Dispose(isolate); 5617 Dispose(isolate);
5647 #ifdef V8_USE_UNSAFE_HANDLES 5618 #ifdef V8_USE_UNSAFE_HANDLES
5648 *this = *New(isolate, other); 5619 *this = *New(isolate, other);
5649 #else 5620 #else
5650 if (other.IsEmpty()) { 5621 if (other.IsEmpty()) {
5651 this->val_ = NULL; 5622 this->val_ = NULL;
5652 return; 5623 return;
(...skipping 13 matching lines...) Expand all
5666 *this = Persistent<T>(); 5637 *this = Persistent<T>();
5667 #else 5638 #else
5668 old = val_; 5639 old = val_;
5669 val_ = NULL; 5640 val_ = NULL;
5670 #endif 5641 #endif
5671 return old; 5642 return old;
5672 } 5643 }
5673 5644
5674 5645
5675 template <class T> 5646 template <class T>
5676 void Persistent<T>::SetWrapperClassId(Isolate* isolate, uint16_t class_id) { 5647 void Persistent<T>::SetWrapperClassId(uint16_t class_id) {
5677 typedef internal::Internals I; 5648 typedef internal::Internals I;
5678 if (this->IsEmpty()) return; 5649 if (this->IsEmpty()) return;
5679 if (!I::IsInitialized(isolate)) return;
5680 internal::Object** obj = reinterpret_cast<internal::Object**>(this->val_); 5650 internal::Object** obj = reinterpret_cast<internal::Object**>(this->val_);
5681 uint8_t* addr = reinterpret_cast<uint8_t*>(obj) + I::kNodeClassIdOffset; 5651 uint8_t* addr = reinterpret_cast<uint8_t*>(obj) + I::kNodeClassIdOffset;
5682 *reinterpret_cast<uint16_t*>(addr) = class_id; 5652 *reinterpret_cast<uint16_t*>(addr) = class_id;
5683 } 5653 }
5684 5654
5655
5685 template <class T> 5656 template <class T>
5686 uint16_t Persistent<T>::WrapperClassId() const { 5657 uint16_t Persistent<T>::WrapperClassId() const {
5687 return WrapperClassId(Isolate::GetCurrent());
5688 }
5689
5690 template <class T>
5691 uint16_t Persistent<T>::WrapperClassId(Isolate* isolate) const {
5692 typedef internal::Internals I; 5658 typedef internal::Internals I;
5693 if (this->IsEmpty()) return 0; 5659 if (this->IsEmpty()) return 0;
5694 if (!I::IsInitialized(isolate)) return 0;
5695 internal::Object** obj = reinterpret_cast<internal::Object**>(this->val_); 5660 internal::Object** obj = reinterpret_cast<internal::Object**>(this->val_);
5696 uint8_t* addr = reinterpret_cast<uint8_t*>(obj) + I::kNodeClassIdOffset; 5661 uint8_t* addr = reinterpret_cast<uint8_t*>(obj) + I::kNodeClassIdOffset;
5697 return *reinterpret_cast<uint16_t*>(addr); 5662 return *reinterpret_cast<uint16_t*>(addr);
5698 } 5663 }
5699 5664
5700 5665
5701 template<typename T> 5666 template<typename T>
5702 ReturnValue<T>::ReturnValue(internal::Object** slot) : value_(slot) {} 5667 ReturnValue<T>::ReturnValue(internal::Object** slot) : value_(slot) {}
5703 5668
5704 template<typename T> 5669 template<typename T>
(...skipping 638 matching lines...) Expand 10 before | Expand all | Expand 10 after
6343 6308
6344 6309
6345 } // namespace v8 6310 } // namespace v8
6346 6311
6347 6312
6348 #undef V8EXPORT 6313 #undef V8EXPORT
6349 #undef TYPE_CHECK 6314 #undef TYPE_CHECK
6350 6315
6351 6316
6352 #endif // V8_H_ 6317 #endif // V8_H_
OLDNEW
« no previous file with comments | « no previous file | src/api.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698