Index: Source/bindings/core/dart/DartNativeUtilities.cpp |
diff --git a/Source/bindings/core/dart/DartNativeUtilities.cpp b/Source/bindings/core/dart/DartNativeUtilities.cpp |
index f26c4d2cd876bfcf8f1c2e3505a670e3a9a929fd..d09b710513710931e4c614e206bc1bb6c0ca480c 100644 |
--- a/Source/bindings/core/dart/DartNativeUtilities.cpp |
+++ b/Source/bindings/core/dart/DartNativeUtilities.cpp |
@@ -133,37 +133,37 @@ fail: |
// element just created and call the custom Dart class created constructor. |
void customConstructorCreate(Dart_NativeArguments args) |
{ |
- Dart_Handle exception = 0; |
- { |
- DartDOMData* domData = DartDOMData::current(); |
+ Dart_Handle dartElementType = Dart_GetNativeArgument(args, 0); |
+ ASSERT(Dart_IsType(dartElementType)); |
- Dart_Handle dartElementType = Dart_GetNativeArgument(args, 0); |
- ASSERT(Dart_IsType(dartElementType)); |
+ Dart_Handle blinkJsObject = Dart_GetNativeArgument(args, 1); |
- Dart_Handle blinkJsObject = Dart_GetNativeArgument(args, 1); |
+ Dart_Handle newObject = Dart_Allocate(dartElementType); |
+ ASSERT(!Dart_IsError(newObject)); |
- Dart_Handle newObject = Dart_Allocate(dartElementType); |
- ASSERT(!Dart_IsError(newObject)); |
- |
- Dart_Handle jsObject = Dart_SetField(newObject, Dart_NewStringFromCString("blink_jsObject"), blinkJsObject); |
- if (Dart_IsError(jsObject)) { |
- DartUtilities::reportProblem(domData->scriptExecutionContext(), jsObject); |
- goto fail; |
- } |
+ Dart_Handle jsObject = Dart_SetField(newObject, Dart_NewStringFromCString("blink_jsObject"), blinkJsObject); |
+ if (Dart_IsError(jsObject)) { |
+ Dart_PropagateError(jsObject); |
+ return; |
+ } |
- newObject = Dart_InvokeConstructor(newObject, Dart_NewStringFromCString("created"), 0, 0); |
- if (Dart_IsError(newObject)) { |
- DartUtilities::reportProblem(domData->scriptExecutionContext(), newObject); |
- goto fail; |
- } |
+ // Setup the DartHtmlWrapper that we're allocating. |
+ DartDOMData* domData = DartDOMData::current(); |
+ Dart_Handle htmlWrapperArgs[2] = { blinkJsObject, newObject }; |
+ Dart_Handle ret = Dart_Invoke(domData->jsLibrary(), Dart_NewStringFromCString("setDartHtmlWrapperFor"), 2, htmlWrapperArgs); |
+ if (Dart_IsError(ret)) { |
+ Dart_PropagateError(ret); |
+ return; |
+ } |
- Dart_SetReturnValue(args, newObject); |
+ newObject = Dart_InvokeConstructor(newObject, Dart_NewStringFromCString("created"), 0, 0); |
+ if (Dart_IsError(newObject)) { |
+ Dart_PropagateError(newObject); |
return; |
} |
-fail: |
- Dart_ThrowException(exception); |
- ASSERT_NOT_REACHED(); |
+ Dart_SetReturnValue(args, newObject); |
+ return; |
} |
void initializeCustomElement(Dart_NativeArguments args) |