OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 546 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
557 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); | 557 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); |
558 } | 558 } |
559 | 559 |
560 static void implementsMethod2Method(const v8::FunctionCallbackInfo<v8::Value>& i
nfo) | 560 static void implementsMethod2Method(const v8::FunctionCallbackInfo<v8::Value>& i
nfo) |
561 { | 561 { |
562 if (UNLIKELY(info.Length() < 2)) { | 562 if (UNLIKELY(info.Length() < 2)) { |
563 throwTypeError(ExceptionMessages::failedToExecute("implementsMethod2", "
TestInterface", ExceptionMessages::notEnoughArguments(2, info.Length())), info.G
etIsolate()); | 563 throwTypeError(ExceptionMessages::failedToExecute("implementsMethod2", "
TestInterface", ExceptionMessages::notEnoughArguments(2, info.Length())), info.G
etIsolate()); |
564 return; | 564 return; |
565 } | 565 } |
566 TestInterface* imp = V8TestInterface::toNative(info.Holder()); | 566 TestInterface* imp = V8TestInterface::toNative(info.Holder()); |
567 ExceptionState es(info.GetIsolate()); | 567 ExceptionState es(info.Holder(), info.GetIsolate()); |
568 V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<>, strArg, info[0]); | 568 V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<>, strArg, info[0]); |
569 V8TRYCATCH_VOID(TestObj*, objArg, V8TestObject::HasInstance(info[1], info.Ge
tIsolate(), worldType(info.GetIsolate())) ? V8TestObject::toNative(v8::Handle<v8
::Object>::Cast(info[1])) : 0); | 569 V8TRYCATCH_VOID(TestObj*, objArg, V8TestObject::HasInstance(info[1], info.Ge
tIsolate(), worldType(info.GetIsolate())) ? V8TestObject::toNative(v8::Handle<v8
::Object>::Cast(info[1])) : 0); |
570 ExecutionContext* scriptContext = getExecutionContext(); | 570 ExecutionContext* scriptContext = getExecutionContext(); |
571 RefPtr<TestObj> result = TestImplements::implementsMethod2(scriptContext, im
p, strArg, objArg, es); | 571 RefPtr<TestObj> result = TestImplements::implementsMethod2(scriptContext, im
p, strArg, objArg, es); |
572 if (es.throwIfNeeded()) | 572 if (es.throwIfNeeded()) |
573 return; | 573 return; |
574 v8SetReturnValue(info, result.release()); | 574 v8SetReturnValue(info, result.release()); |
575 } | 575 } |
576 | 576 |
577 static void implementsMethod2MethodCallback(const v8::FunctionCallbackInfo<v8::V
alue>& info) | 577 static void implementsMethod2MethodCallback(const v8::FunctionCallbackInfo<v8::V
alue>& info) |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
618 #endif // ENABLE(Condition11) || ENABLE(Condition12) | 618 #endif // ENABLE(Condition11) || ENABLE(Condition12) |
619 | 619 |
620 #if ENABLE(Condition11) || ENABLE(Condition12) | 620 #if ENABLE(Condition11) || ENABLE(Condition12) |
621 static void supplementalMethod2Method(const v8::FunctionCallbackInfo<v8::Value>&
info) | 621 static void supplementalMethod2Method(const v8::FunctionCallbackInfo<v8::Value>&
info) |
622 { | 622 { |
623 if (UNLIKELY(info.Length() < 2)) { | 623 if (UNLIKELY(info.Length() < 2)) { |
624 throwTypeError(ExceptionMessages::failedToExecute("supplementalMethod2",
"TestInterface", ExceptionMessages::notEnoughArguments(2, info.Length())), info
.GetIsolate()); | 624 throwTypeError(ExceptionMessages::failedToExecute("supplementalMethod2",
"TestInterface", ExceptionMessages::notEnoughArguments(2, info.Length())), info
.GetIsolate()); |
625 return; | 625 return; |
626 } | 626 } |
627 TestInterface* imp = V8TestInterface::toNative(info.Holder()); | 627 TestInterface* imp = V8TestInterface::toNative(info.Holder()); |
628 ExceptionState es(info.GetIsolate()); | 628 ExceptionState es(info.Holder(), info.GetIsolate()); |
629 V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<>, strArg, info[0]); | 629 V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<>, strArg, info[0]); |
630 V8TRYCATCH_VOID(TestObj*, objArg, V8TestObject::HasInstance(info[1], info.Ge
tIsolate(), worldType(info.GetIsolate())) ? V8TestObject::toNative(v8::Handle<v8
::Object>::Cast(info[1])) : 0); | 630 V8TRYCATCH_VOID(TestObj*, objArg, V8TestObject::HasInstance(info[1], info.Ge
tIsolate(), worldType(info.GetIsolate())) ? V8TestObject::toNative(v8::Handle<v8
::Object>::Cast(info[1])) : 0); |
631 ExecutionContext* scriptContext = getExecutionContext(); | 631 ExecutionContext* scriptContext = getExecutionContext(); |
632 RefPtr<TestObj> result = TestPartialInterface::supplementalMethod2(scriptCon
text, imp, strArg, objArg, es); | 632 RefPtr<TestObj> result = TestPartialInterface::supplementalMethod2(scriptCon
text, imp, strArg, objArg, es); |
633 if (es.throwIfNeeded()) | 633 if (es.throwIfNeeded()) |
634 return; | 634 return; |
635 v8SetReturnValue(info, result.release()); | 635 v8SetReturnValue(info, result.release()); |
636 } | 636 } |
637 #endif // ENABLE(Condition11) || ENABLE(Condition12) | 637 #endif // ENABLE(Condition11) || ENABLE(Condition12) |
638 | 638 |
(...skipping 30 matching lines...) Expand all Loading... |
669 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); | 669 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); |
670 } | 670 } |
671 #endif // ENABLE(Condition11) || ENABLE(Condition12) | 671 #endif // ENABLE(Condition11) || ENABLE(Condition12) |
672 | 672 |
673 static void constructor(const v8::FunctionCallbackInfo<v8::Value>& info) | 673 static void constructor(const v8::FunctionCallbackInfo<v8::Value>& info) |
674 { | 674 { |
675 if (UNLIKELY(info.Length() < 1)) { | 675 if (UNLIKELY(info.Length() < 1)) { |
676 throwTypeError(ExceptionMessages::failedToExecute("Constructor", "TestIn
terface", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsol
ate()); | 676 throwTypeError(ExceptionMessages::failedToExecute("Constructor", "TestIn
terface", ExceptionMessages::notEnoughArguments(1, info.Length())), info.GetIsol
ate()); |
677 return; | 677 return; |
678 } | 678 } |
679 ExceptionState es(info.GetIsolate()); | 679 ExceptionState es(info.Holder(), info.GetIsolate()); |
680 V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<>, str1, info[0]); | 680 V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<>, str1, info[0]); |
681 V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<>, str2, info[1]); | 681 V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<>, str2, info[1]); |
682 | 682 |
683 ExecutionContext* context = getExecutionContext(); | 683 ExecutionContext* context = getExecutionContext(); |
684 RefPtr<TestInterface> impl = TestInterface::create(context, str1, str2, es); | 684 RefPtr<TestInterface> impl = TestInterface::create(context, str1, str2, es); |
685 v8::Handle<v8::Object> wrapper = info.Holder(); | 685 v8::Handle<v8::Object> wrapper = info.Holder(); |
686 if (es.throwIfNeeded()) | 686 if (es.throwIfNeeded()) |
687 return; | 687 return; |
688 | 688 |
689 V8DOMWrapper::associateObjectWithWrapper<V8TestInterface>(impl.release(), &V
8TestInterface::wrapperTypeInfo, wrapper, info.GetIsolate(), WrapperConfiguratio
n::Dependent); | 689 V8DOMWrapper::associateObjectWithWrapper<V8TestInterface>(impl.release(), &V
8TestInterface::wrapperTypeInfo, wrapper, info.GetIsolate(), WrapperConfiguratio
n::Dependent); |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
729 | 729 |
730 static void namedPropertySetterCallback(v8::Local<v8::String> name, v8::Local<v8
::Value> jsValue, const v8::PropertyCallbackInfo<v8::Value>& info) | 730 static void namedPropertySetterCallback(v8::Local<v8::String> name, v8::Local<v8
::Value> jsValue, const v8::PropertyCallbackInfo<v8::Value>& info) |
731 { | 731 { |
732 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMNamedProperty"); | 732 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMNamedProperty"); |
733 V8TestInterface::namedPropertySetterCustom(name, jsValue, info); | 733 V8TestInterface::namedPropertySetterCustom(name, jsValue, info); |
734 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); | 734 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); |
735 } | 735 } |
736 | 736 |
737 static void namedPropertyEnumerator(const v8::PropertyCallbackInfo<v8::Array>& i
nfo) | 737 static void namedPropertyEnumerator(const v8::PropertyCallbackInfo<v8::Array>& i
nfo) |
738 { | 738 { |
739 ExceptionState es(info.GetIsolate()); | 739 ExceptionState es(info.Holder(), info.GetIsolate()); |
740 TestInterface* collection = V8TestInterface::toNative(info.Holder()); | 740 TestInterface* collection = V8TestInterface::toNative(info.Holder()); |
741 Vector<String> names; | 741 Vector<String> names; |
742 collection->namedPropertyEnumerator(names, es); | 742 collection->namedPropertyEnumerator(names, es); |
743 if (es.throwIfNeeded()) | 743 if (es.throwIfNeeded()) |
744 return; | 744 return; |
745 v8::Handle<v8::Array> v8names = v8::Array::New(names.size()); | 745 v8::Handle<v8::Array> v8names = v8::Array::New(names.size()); |
746 for (size_t i = 0; i < names.size(); ++i) | 746 for (size_t i = 0; i < names.size(); ++i) |
747 v8names->Set(v8::Integer::New(i, info.GetIsolate()), v8String(names[i],
info.GetIsolate())); | 747 v8names->Set(v8::Integer::New(i, info.GetIsolate()), v8String(names[i],
info.GetIsolate())); |
748 v8SetReturnValue(info, v8names); | 748 v8SetReturnValue(info, v8names); |
749 } | 749 } |
750 | 750 |
751 static void namedPropertyQuery(v8::Local<v8::String> name, const v8::PropertyCal
lbackInfo<v8::Integer>& info) | 751 static void namedPropertyQuery(v8::Local<v8::String> name, const v8::PropertyCal
lbackInfo<v8::Integer>& info) |
752 { | 752 { |
753 TestInterface* collection = V8TestInterface::toNative(info.Holder()); | 753 TestInterface* collection = V8TestInterface::toNative(info.Holder()); |
754 AtomicString propertyName = toWebCoreAtomicString(name); | 754 AtomicString propertyName = toWebCoreAtomicString(name); |
755 ExceptionState es(info.GetIsolate()); | 755 ExceptionState es(info.Holder(), info.GetIsolate()); |
756 bool result = collection->namedPropertyQuery(propertyName, es); | 756 bool result = collection->namedPropertyQuery(propertyName, es); |
757 if (es.throwIfNeeded()) | 757 if (es.throwIfNeeded()) |
758 return; | 758 return; |
759 if (!result) | 759 if (!result) |
760 return; | 760 return; |
761 v8SetReturnValueInt(info, v8::None); | 761 v8SetReturnValueInt(info, v8::None); |
762 } | 762 } |
763 | 763 |
764 static void namedPropertyEnumeratorCallback(const v8::PropertyCallbackInfo<v8::A
rray>& info) | 764 static void namedPropertyEnumeratorCallback(const v8::PropertyCallbackInfo<v8::A
rray>& info) |
765 { | 765 { |
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
983 } | 983 } |
984 | 984 |
985 void V8TestInterface::derefObject(void* object) | 985 void V8TestInterface::derefObject(void* object) |
986 { | 986 { |
987 fromInternalPointer(object)->deref(); | 987 fromInternalPointer(object)->deref(); |
988 } | 988 } |
989 | 989 |
990 } // namespace WebCore | 990 } // namespace WebCore |
991 | 991 |
992 #endif // ENABLE(Condition1) || ENABLE(Condition2) | 992 #endif // ENABLE(Condition1) || ENABLE(Condition2) |
OLD | NEW |