| 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)
|
|
|