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

Side by Side Diff: Source/bindings/core/v8/V8Binding.h

Issue 534133002: [WIP] bindings: Introduce PropertyBag (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years, 3 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 | « Source/bindings/core/v8/PropertyBagTraits.h ('k') | Source/bindings/core/v8/V8Binding.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2009 Google Inc. All rights reserved. 2 * Copyright (C) 2009 Google Inc. All rights reserved.
3 * Copyright (C) 2012 Ericsson AB. All rights reserved. 3 * Copyright (C) 2012 Ericsson AB. All rights reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are 6 * modification, are permitted provided that the following conditions are
7 * met: 7 * met:
8 * 8 *
9 * * Redistributions of source code must retain the above copyright 9 * * Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
(...skipping 16 matching lines...) Expand all
27 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 */ 30 */
31 31
32 #ifndef V8Binding_h 32 #ifndef V8Binding_h
33 #define V8Binding_h 33 #define V8Binding_h
34 34
35 #include "bindings/core/v8/DOMWrapperWorld.h" 35 #include "bindings/core/v8/DOMWrapperWorld.h"
36 #include "bindings/core/v8/ExceptionMessages.h" 36 #include "bindings/core/v8/ExceptionMessages.h"
37 #include "bindings/core/v8/ExceptionState.h"
37 #include "bindings/core/v8/ScriptValue.h" 38 #include "bindings/core/v8/ScriptValue.h"
38 #include "bindings/core/v8/ScriptWrappable.h" 39 #include "bindings/core/v8/ScriptWrappable.h"
39 #include "bindings/core/v8/V8BindingMacros.h" 40 #include "bindings/core/v8/V8BindingMacros.h"
40 #include "bindings/core/v8/V8PerIsolateData.h" 41 #include "bindings/core/v8/V8PerIsolateData.h"
41 #include "bindings/core/v8/V8StringResource.h" 42 #include "bindings/core/v8/V8StringResource.h"
42 #include "bindings/core/v8/V8ThrowException.h" 43 #include "bindings/core/v8/V8ThrowException.h"
43 #include "bindings/core/v8/V8ValueCache.h" 44 #include "bindings/core/v8/V8ValueCache.h"
44 #include "platform/heap/Heap.h" 45 #include "platform/heap/Heap.h"
45 #include "wtf/GetPtr.h" 46 #include "wtf/GetPtr.h"
46 #include "wtf/MathExtras.h" 47 #include "wtf/MathExtras.h"
(...skipping 481 matching lines...) Expand 10 before | Expand all | Expand 10 after
528 529
529 // Convert a value to a single precision float, which might fail. 530 // Convert a value to a single precision float, which might fail.
530 float toFloat(v8::Handle<v8::Value>, ExceptionState&); 531 float toFloat(v8::Handle<v8::Value>, ExceptionState&);
531 532
532 // Convert a value to a single precision float assuming the conversion cannot fa il. 533 // Convert a value to a single precision float assuming the conversion cannot fa il.
533 inline float toFloat(v8::Local<v8::Value> value) 534 inline float toFloat(v8::Local<v8::Value> value)
534 { 535 {
535 return static_cast<float>(value->NumberValue()); 536 return static_cast<float>(value->NumberValue());
536 } 537 }
537 538
539 bool toBoolean(v8::Handle<v8::Value>, ExceptionState&);
540 double toDouble(v8::Handle<v8::Value>, ExceptionState&);
541
538 // Converts a value to a String, throwing if any code unit is outside 0-255. 542 // Converts a value to a String, throwing if any code unit is outside 0-255.
539 String toByteString(v8::Handle<v8::Value>, ExceptionState&); 543 String toByteString(v8::Handle<v8::Value>, ExceptionState&);
540 544
541 // Converts a value to a String, replacing unmatched UTF-16 surrogates with repl acement characters. 545 // Converts a value to a String, replacing unmatched UTF-16 surrogates with repl acement characters.
542 String toScalarValueString(v8::Handle<v8::Value>, ExceptionState&); 546 String toScalarValueString(v8::Handle<v8::Value>, ExceptionState&);
543 547
544 inline v8::Handle<v8::Boolean> v8Boolean(bool value, v8::Isolate* isolate) 548 inline v8::Handle<v8::Boolean> v8Boolean(bool value, v8::Isolate* isolate)
545 { 549 {
546 return value ? v8::True(isolate) : v8::False(isolate); 550 return value ? v8::True(isolate) : v8::False(isolate);
547 } 551 }
(...skipping 13 matching lines...) Expand all
561 return v8::Date::New(isolate, std::isfinite(value) ? value : std::numeric_li mits<double>::quiet_NaN()); 565 return v8::Date::New(isolate, std::isfinite(value) ? value : std::numeric_li mits<double>::quiet_NaN());
562 } 566 }
563 567
564 // FIXME: Remove the special casing for NodeFilter and XPathNSResolver. 568 // FIXME: Remove the special casing for NodeFilter and XPathNSResolver.
565 PassRefPtrWillBeRawPtr<NodeFilter> toNodeFilter(v8::Handle<v8::Value>, v8::Handl e<v8::Object>, ScriptState*); 569 PassRefPtrWillBeRawPtr<NodeFilter> toNodeFilter(v8::Handle<v8::Value>, v8::Handl e<v8::Object>, ScriptState*);
566 PassRefPtrWillBeRawPtr<XPathNSResolver> toXPathNSResolver(v8::Handle<v8::Value>, v8::Isolate*); 570 PassRefPtrWillBeRawPtr<XPathNSResolver> toXPathNSResolver(v8::Handle<v8::Value>, v8::Isolate*);
567 571
568 template<class T> struct NativeValueTraits; 572 template<class T> struct NativeValueTraits;
569 573
570 template<> 574 template<>
575 struct NativeValueTraits<bool> {
576 static inline bool nativeValueMayFail(v8::Isolate* isolate, const v8::Handle <v8::Value>& value, ExceptionState& exceptionState)
577 {
578 return toBoolean(value, exceptionState);
579 }
580 };
581
582 template<>
571 struct NativeValueTraits<String> { 583 struct NativeValueTraits<String> {
572 static inline String nativeValue(const v8::Handle<v8::Value>& value, v8::Iso late* isolate) 584 static inline String nativeValue(const v8::Handle<v8::Value>& value, v8::Iso late* isolate)
573 { 585 {
574 TOSTRING_DEFAULT(V8StringResource<>, stringValue, value, String()); 586 TOSTRING_DEFAULT(V8StringResource<>, stringValue, value, String());
575 return stringValue; 587 return stringValue;
576 } 588 }
589 static inline String nativeValueMayFail(v8::Isolate* isolate, const v8::Hand le<v8::Value>& value, ExceptionState& exceptionState)
590 {
591 // FIXME: handle failure
592 TOSTRING_DEFAULT(V8StringResource<>, stringValue, value, String());
593 return stringValue;
594 }
577 }; 595 };
578 596
579 template<> 597 template<>
598 struct NativeValueTraits<AtomicString> {
599 static inline AtomicString nativeValueMayFail(v8::Isolate* isolate, const v8 ::Handle<v8::Value>& value, ExceptionState& exceptionState)
600 {
601 TOSTRING_DEFAULT(V8StringResource<>, stringValue, value, AtomicString()) ;
602 return stringValue;
603 }
604 };
605
606 template<>
607 struct NativeValueTraits<int> {
608 static inline int nativeValue(const v8::Handle<v8::Value>& value, v8::Isolat e* isolate)
609 {
610 return toInt32(value);
611 }
612 static inline int nativeValueMayFail(v8::Isolate* isolate, const v8::Handle< v8::Value>& value, ExceptionState& exceptionState)
613 {
614 return toInt32(value, NormalConversion, exceptionState);
615 }
616 };
617
618 template<>
580 struct NativeValueTraits<unsigned> { 619 struct NativeValueTraits<unsigned> {
581 static inline unsigned nativeValue(const v8::Handle<v8::Value>& value, v8::I solate* isolate) 620 static inline unsigned nativeValue(const v8::Handle<v8::Value>& value, v8::I solate* isolate)
582 { 621 {
583 return toUInt32(value); 622 return toUInt32(value);
584 } 623 }
624 static inline unsigned nativeValueMayFail(v8::Isolate* isolate, const v8::Ha ndle<v8::Value>& value, ExceptionState& exceptionState)
625 {
626 return toUInt32(value, NormalConversion, exceptionState);
627 }
585 }; 628 };
586 629
587 template<> 630 template<>
631 struct NativeValueTraits<unsigned long> {
632 static inline unsigned long nativeValue(const v8::Handle<v8::Value>& value, v8::Isolate* isolate)
633 {
634 return toUInt32(value);
635 }
636 static inline unsigned long nativeValueMayFail(v8::Isolate* isolate, const v 8::Handle<v8::Value>& value, ExceptionState& exceptionState)
637 {
638 return toUInt32(value, NormalConversion, exceptionState);
639 }
640 };
641
642 template<>
643 struct NativeValueTraits<unsigned long long> {
644 static inline unsigned long long nativeValue(const v8::Handle<v8::Value>& va lue, v8::Isolate* isolate)
645 {
646 return toUInt64(value);
647 }
648 static inline unsigned long long nativeValueMayFail(v8::Isolate* isolate, co nst v8::Handle<v8::Value>& value, ExceptionState& exceptionState)
649 {
650 return toUInt64(value, NormalConversion, exceptionState);
651 }
652 };
653
654 template<>
655 struct NativeValueTraits<short> {
656 static inline short nativeValue(const v8::Handle<v8::Value>& value, v8::Isol ate* isolate)
657 {
658 return toInt16(value);
659 }
660 static inline short nativeValueMayFail(v8::Isolate* isolate, const v8::Handl e<v8::Value>& value, ExceptionState& exceptionState)
661 {
662 return toInt16(value, NormalConversion, exceptionState);
663 }
664 };
665
666 template<>
667 struct NativeValueTraits<unsigned short> {
668 static inline unsigned short nativeValue(const v8::Handle<v8::Value>& value, v8::Isolate* isolate)
669 {
670 return toUInt16(value);
671 }
672 static inline unsigned short nativeValueMayFail(v8::Isolate* isolate, const v8::Handle<v8::Value>& value, ExceptionState& exceptionState)
673 {
674 return toUInt16(value, NormalConversion, exceptionState);
675 }
676 };
677
678 template<>
588 struct NativeValueTraits<float> { 679 struct NativeValueTraits<float> {
589 static inline float nativeValue(const v8::Handle<v8::Value>& value, v8::Isol ate* isolate) 680 static inline float nativeValue(const v8::Handle<v8::Value>& value, v8::Isol ate* isolate)
590 { 681 {
591 return static_cast<float>(value->NumberValue()); 682 return static_cast<float>(value->NumberValue());
592 } 683 }
684 static inline float nativeValueMayFail(v8::Isolate* isolate, const v8::Handl e<v8::Value>& value, ExceptionState& exceptionState)
685 {
686 return toFloat(value, exceptionState);
687 }
593 }; 688 };
594 689
595 template<> 690 template<>
596 struct NativeValueTraits<double> { 691 struct NativeValueTraits<double> {
597 static inline double nativeValue(const v8::Handle<v8::Value>& value, v8::Iso late* isolate) 692 static inline double nativeValue(const v8::Handle<v8::Value>& value, v8::Iso late* isolate)
598 { 693 {
599 return static_cast<double>(value->NumberValue()); 694 return static_cast<double>(value->NumberValue());
600 } 695 }
696 static inline double nativeValueMayFail(v8::Isolate* isolate, const v8::Hand le<v8::Value>& value, ExceptionState& exceptionState)
697 {
698 return toDouble(value, exceptionState);
699 }
601 }; 700 };
602 701
603 template<> 702 template<>
604 struct NativeValueTraits<v8::Handle<v8::Value> > { 703 struct NativeValueTraits<v8::Handle<v8::Value> > {
605 static inline v8::Handle<v8::Value> nativeValue(const v8::Handle<v8::Value>& value, v8::Isolate* isolate) 704 static inline v8::Handle<v8::Value> nativeValue(const v8::Handle<v8::Value>& value, v8::Isolate* isolate)
606 { 705 {
607 return value; 706 return value;
608 } 707 }
609 }; 708 };
610 709
611 template<> 710 template<>
612 struct NativeValueTraits<ScriptValue> { 711 struct NativeValueTraits<ScriptValue> {
613 static inline ScriptValue nativeValue(const v8::Handle<v8::Value>& value, v8 ::Isolate* isolate) 712 static inline ScriptValue nativeValue(const v8::Handle<v8::Value>& value, v8 ::Isolate* isolate)
614 { 713 {
615 return ScriptValue(ScriptState::current(isolate), value); 714 return ScriptValue(ScriptState::current(isolate), value);
616 } 715 }
716 static inline ScriptValue nativeValueMayFail(v8::Isolate* isolate, const v8: :Handle<v8::Value>& value, ExceptionState& exceptionState)
717 {
718 return ScriptValue(ScriptState::current(isolate), value);
719 }
617 }; 720 };
618 721
619 v8::Handle<v8::Value> toV8Sequence(v8::Handle<v8::Value>, uint32_t& length, v8:: Isolate*); 722 v8::Handle<v8::Value> toV8Sequence(v8::Handle<v8::Value>, uint32_t& length, v8:: Isolate*);
620 723
621 // Converts a JavaScript value to an array as per the Web IDL specification: 724 // Converts a JavaScript value to an array as per the Web IDL specification:
622 // http://www.w3.org/TR/2012/CR-WebIDL-20120419/#es-array 725 // http://www.w3.org/TR/2012/CR-WebIDL-20120419/#es-array
623 template <class T, class V8T> 726 template <class T, class V8T>
624 Vector<RefPtr<T> > toRefPtrNativeArrayUnchecked(v8::Local<v8::Value> v8Value, ui nt32_t length, v8::Isolate* isolate, bool* success = 0) 727 Vector<RefPtr<T> > toRefPtrNativeArrayUnchecked(v8::Local<v8::Value> v8Value, ui nt32_t length, v8::Isolate* isolate, bool* success = 0)
625 { 728 {
626 Vector<RefPtr<T> > result; 729 Vector<RefPtr<T> > result;
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
669 if (value->IsArray()) { 772 if (value->IsArray()) {
670 length = v8::Local<v8::Array>::Cast(v8Value)->Length(); 773 length = v8::Local<v8::Array>::Cast(v8Value)->Length();
671 } else if (toV8Sequence(value, length, isolate).IsEmpty()) { 774 } else if (toV8Sequence(value, length, isolate).IsEmpty()) {
672 V8ThrowException::throwTypeError(ExceptionMessages::notASequenceTypeProp erty(propertyName), isolate); 775 V8ThrowException::throwTypeError(ExceptionMessages::notASequenceTypeProp erty(propertyName), isolate);
673 return Vector<RefPtr<T> >(); 776 return Vector<RefPtr<T> >();
674 } 777 }
675 return toRefPtrNativeArrayUnchecked<T, V8T>(v8Value, length, isolate, succes s); 778 return toRefPtrNativeArrayUnchecked<T, V8T>(v8Value, length, isolate, succes s);
676 } 779 }
677 780
678 template <class T, class V8T> 781 template <class T, class V8T>
679 WillBeHeapVector<RefPtrWillBeMember<T> > toRefPtrWillBeMemberNativeArray(v8::Han dle<v8::Value> value, int argumentIndex, v8::Isolate* isolate, bool* success = 0 ) 782 WillBeHeapVector<RefPtrWillBeMember<T> > toRefPtrWillBeMemberNativeArray(v8::Han dle<v8::Value> value, int argumentIndex, v8::Isolate* isolate, ExceptionState* e xceptionState = 0)
680 { 783 {
681 if (success)
682 *success = true;
683
684 v8::Local<v8::Value> v8Value(v8::Local<v8::Value>::New(isolate, value)); 784 v8::Local<v8::Value> v8Value(v8::Local<v8::Value>::New(isolate, value));
685 uint32_t length = 0; 785 uint32_t length = 0;
686 if (value->IsArray()) { 786 if (value->IsArray()) {
687 length = v8::Local<v8::Array>::Cast(v8Value)->Length(); 787 length = v8::Local<v8::Array>::Cast(v8Value)->Length();
688 } else if (toV8Sequence(value, length, isolate).IsEmpty()) { 788 } else if (toV8Sequence(value, length, isolate).IsEmpty()) {
689 V8ThrowException::throwTypeError(ExceptionMessages::notAnArrayTypeArgume ntOrValue(argumentIndex), isolate); 789 if (exceptionState)
790 exceptionState->throwTypeError(ExceptionMessages::notAnArrayTypeArgu mentOrValue(argumentIndex));
791 else
792 V8ThrowException::throwTypeError(ExceptionMessages::notAnArrayTypeAr gumentOrValue(argumentIndex), isolate);
690 return WillBeHeapVector<RefPtrWillBeMember<T> >(); 793 return WillBeHeapVector<RefPtrWillBeMember<T> >();
691 } 794 }
692 795
693 WillBeHeapVector<RefPtrWillBeMember<T> > result; 796 WillBeHeapVector<RefPtrWillBeMember<T> > result;
694 result.reserveInitialCapacity(length); 797 result.reserveInitialCapacity(length);
695 v8::Local<v8::Object> object = v8::Local<v8::Object>::Cast(v8Value); 798 v8::Local<v8::Object> object = v8::Local<v8::Object>::Cast(v8Value);
696 for (uint32_t i = 0; i < length; ++i) { 799 for (uint32_t i = 0; i < length; ++i) {
697 v8::Handle<v8::Value> element = object->Get(i); 800 v8::Handle<v8::Value> element = object->Get(i);
698 if (V8T::hasInstance(element, isolate)) { 801 if (V8T::hasInstance(element, isolate)) {
699 v8::Handle<v8::Object> elementObject = v8::Handle<v8::Object>::Cast( element); 802 v8::Handle<v8::Object> elementObject = v8::Handle<v8::Object>::Cast( element);
700 result.uncheckedAppend(V8T::toImpl(elementObject)); 803 result.uncheckedAppend(V8T::toImpl(elementObject));
701 } else { 804 } else {
702 if (success) 805 if (exceptionState)
703 *success = false; 806 exceptionState->throwTypeError("Invalid Array element type");
704 V8ThrowException::throwTypeError("Invalid Array element type", isola te); 807 else
808 V8ThrowException::throwTypeError("Invalid Array element type", i solate);
705 return WillBeHeapVector<RefPtrWillBeMember<T> >(); 809 return WillBeHeapVector<RefPtrWillBeMember<T> >();
706 } 810 }
707 } 811 }
708 return result; 812 return result;
709 } 813 }
710 814
711 template <class T, class V8T> 815 template <class T, class V8T>
712 WillBeHeapVector<RefPtrWillBeMember<T> > toRefPtrWillBeMemberNativeArray(v8::Han dle<v8::Value> value, const String& propertyName, v8::Isolate* isolate, bool* su ccess = 0) 816 WillBeHeapVector<RefPtrWillBeMember<T> > toRefPtrWillBeMemberNativeArray(v8::Han dle<v8::Value> value, const String& propertyName, v8::Isolate* isolate, Exceptio nState* exceptionState = 0)
713 { 817 {
714 if (success)
715 *success = true;
716
717 v8::Local<v8::Value> v8Value(v8::Local<v8::Value>::New(isolate, value)); 818 v8::Local<v8::Value> v8Value(v8::Local<v8::Value>::New(isolate, value));
718 uint32_t length = 0; 819 uint32_t length = 0;
719 if (value->IsArray()) { 820 if (value->IsArray()) {
720 length = v8::Local<v8::Array>::Cast(v8Value)->Length(); 821 length = v8::Local<v8::Array>::Cast(v8Value)->Length();
721 } else if (toV8Sequence(value, length, isolate).IsEmpty()) { 822 } else if (toV8Sequence(value, length, isolate).IsEmpty()) {
722 V8ThrowException::throwTypeError(ExceptionMessages::notASequenceTypeProp erty(propertyName), isolate); 823 if (exceptionState)
824 exceptionState->throwTypeError(ExceptionMessages::notASequenceTypePr operty(propertyName));
825 else
826 V8ThrowException::throwTypeError(ExceptionMessages::notASequenceType Property(propertyName), isolate);
723 return WillBeHeapVector<RefPtrWillBeMember<T> >(); 827 return WillBeHeapVector<RefPtrWillBeMember<T> >();
724 } 828 }
725 829
726 WillBeHeapVector<RefPtrWillBeMember<T> > result; 830 WillBeHeapVector<RefPtrWillBeMember<T> > result;
727 result.reserveInitialCapacity(length); 831 result.reserveInitialCapacity(length);
728 v8::Local<v8::Object> object = v8::Local<v8::Object>::Cast(v8Value); 832 v8::Local<v8::Object> object = v8::Local<v8::Object>::Cast(v8Value);
729 for (uint32_t i = 0; i < length; ++i) { 833 for (uint32_t i = 0; i < length; ++i) {
730 v8::Handle<v8::Value> element = object->Get(i); 834 v8::Handle<v8::Value> element = object->Get(i);
731 if (V8T::hasInstance(element, isolate)) { 835 if (V8T::hasInstance(element, isolate)) {
732 v8::Handle<v8::Object> elementObject = v8::Handle<v8::Object>::Cast( element); 836 v8::Handle<v8::Object> elementObject = v8::Handle<v8::Object>::Cast( element);
733 result.uncheckedAppend(V8T::toImpl(elementObject)); 837 result.uncheckedAppend(V8T::toImpl(elementObject));
734 } else { 838 } else {
735 if (success) 839 if (exceptionState)
736 *success = false; 840 exceptionState->throwTypeError("Invalid Array element type");
737 V8ThrowException::throwTypeError("Invalid Array element type", isola te); 841 else
842 V8ThrowException::throwTypeError("Invalid Array element type", i solate);
738 return WillBeHeapVector<RefPtrWillBeMember<T> >(); 843 return WillBeHeapVector<RefPtrWillBeMember<T> >();
739 } 844 }
740 } 845 }
741 return result; 846 return result;
742 } 847 }
743 848
744 template <class T, class V8T> 849 template <class T, class V8T>
745 HeapVector<Member<T> > toMemberNativeArray(v8::Handle<v8::Value> value, int argu mentIndex, v8::Isolate* isolate, bool* success = 0) 850 HeapVector<Member<T> > toMemberNativeArray(v8::Handle<v8::Value> value, int argu mentIndex, v8::Isolate* isolate, bool* success = 0)
746 { 851 {
747 if (success) 852 if (success)
(...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after
971 v8::Local<v8::Value> v8IteratorResult(v8::Isolate*, v8::Handle<v8::Value>); 1076 v8::Local<v8::Value> v8IteratorResult(v8::Isolate*, v8::Handle<v8::Value>);
972 template <typename T> 1077 template <typename T>
973 v8::Local<v8::Value> v8IteratorResult(ScriptState* scriptState, const T& value) 1078 v8::Local<v8::Value> v8IteratorResult(ScriptState* scriptState, const T& value)
974 { 1079 {
975 return v8IteratorResult(scriptState->isolate(), V8ValueTraits<T>::toV8Value( value, scriptState->context()->Global(), scriptState->isolate())); 1080 return v8IteratorResult(scriptState->isolate(), V8ValueTraits<T>::toV8Value( value, scriptState->context()->Global(), scriptState->isolate()));
976 } 1081 }
977 1082
978 } // namespace blink 1083 } // namespace blink
979 1084
980 #endif // V8Binding_h 1085 #endif // V8Binding_h
OLDNEW
« no previous file with comments | « Source/bindings/core/v8/PropertyBagTraits.h ('k') | Source/bindings/core/v8/V8Binding.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698