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

Side by Side Diff: tools/dom/templates/html/dartium/html_dartium.darttemplate

Issue 1395723002: Fixed upgrade failures to only throw once not on each wrap_jso (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Update to get latest WebKit changes. Created 5 years, 2 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
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 // DO NOT EDIT 5 // DO NOT EDIT
6 // Auto-generated dart:html library. 6 // Auto-generated dart:html library.
7 7
8 /** 8 /**
9 * HTML elements and other resources for web-based applications that need to 9 * HTML elements and other resources for web-based applications that need to
10 * interact with the browser and the DOM (Document Object Model). 10 * interact with the browser and the DOM (Document Object Model).
(...skipping 551 matching lines...) Expand 10 before | Expand all | Expand 10 after
562 window.console.log("${stacktrace}"); 562 window.console.log("${stacktrace}");
563 } 563 }
564 564
565 // Problem? 565 // Problem?
566 return null; 566 return null;
567 } 567 }
568 } 568 }
569 569
570 // Upgrade a Dart HtmlElement to the user's Dart custom element class. 570 // Upgrade a Dart HtmlElement to the user's Dart custom element class.
571 _upgradeHtmlElement(dartInstance) { 571 _upgradeHtmlElement(dartInstance) {
572 var dartInstanceMirror = reflect(dartInstance); 572 // Only try upgrading HtmlElement (Dart class) if there is a failure then
573 if (dartInstanceMirror.type.qualifiedName == #dart.dom.html.HtmlElement) { 573 // don't try it again - one failure is enough.
574 if (dartInstance.runtimeType == HtmlElement && !dartInstance.isBadUpgrade) {
574 // Must be exactly HtmlElement not something derived from it. 575 // Must be exactly HtmlElement not something derived from it.
575 var jsObject = dartInstance.blink_jsObject; 576 var jsObject = dartInstance.blink_jsObject;
576 var localName = dartInstance.localName; 577 var localName = dartInstance.localName;
577 var customElementClass = _knownCustomeElements[localName]; 578 var customElementClass = _knownCustomeElements[localName];
578 // Custom Element to upgrade. 579 // Custom Element to upgrade.
579 if (customElementClass != null) { 580 if (customElementClass != null) {
580 try { 581 try {
581 dartInstance = _blink.Blink_Utils.constructElement(customElementClass, j sObject); 582 dartInstance = _blink.Blink_Utils.constructElement(customElementClass, j sObject);
583 } catch (e) {
584 dartInstance.badUpgrade();
582 } finally { 585 } finally {
583 dartInstance.blink_jsObject = jsObject; 586 dartInstance.blink_jsObject = jsObject;
584 jsObject['dart_class'] = dartInstance; 587 jsObject['dart_class'] = dartInstance;
585 js.setDartHtmlWrapperFor(jsObject, dartInstance); 588 js.setDartHtmlWrapperFor(jsObject, dartInstance);
586 } 589 }
587 } 590 }
588 } 591 }
589 592
590 return dartInstance; 593 return dartInstance;
591 } 594 }
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
671 } 674 }
672 675
673 /** 676 /**
674 * Upgrade the JS HTMLElement to the Dart class. Used by Dart's Polymer. 677 * Upgrade the JS HTMLElement to the Dart class. Used by Dart's Polymer.
675 */ 678 */
676 createCustomUpgrader(Type customElementClass, $this) { 679 createCustomUpgrader(Type customElementClass, $this) {
677 var dartClass; 680 var dartClass;
678 try { 681 try {
679 dartClass = _blink.Blink_Utils.constructElement(customElementClass, $this); 682 dartClass = _blink.Blink_Utils.constructElement(customElementClass, $this);
680 } catch (e) { 683 } catch (e) {
684 dartClass.badUpgrade();
681 throw e; 685 throw e;
682 } finally { 686 } finally {
683 // Need to remember the Dart class that was created for this custom so 687 // Need to remember the Dart class that was created for this custom so
684 // return it and setup the blink_jsObject to the $this that we'll be working 688 // return it and setup the blink_jsObject to the $this that we'll be working
685 // with as we talk to blink. 689 // with as we talk to blink.
686 js.setDartHtmlWrapperFor($this, dartClass); 690 js.setDartHtmlWrapperFor($this, dartClass);
687 } 691 }
688 692
689 return dartClass; 693 return dartClass;
690 } 694 }
691 695
692 $else 696 $else
693 class JsoNativeFieldWrapper extends NativeFieldWrapperClass2 {} 697 class JsoNativeFieldWrapper extends NativeFieldWrapperClass2 {}
694 698
695 unwrap_jso(dartClass_instance) => dartClass_instance; 699 unwrap_jso(dartClass_instance) => dartClass_instance;
696 wrap_jso(jsObject) => jsObject; 700 wrap_jso(jsObject) => jsObject;
697 make_dart_rectangle(r) => r; 701 make_dart_rectangle(r) => r;
698 convertDartToNative_Dictionary(Map dict) => dict; 702 convertDartToNative_Dictionary(Map dict) => dict;
699 List convertDartToNative_StringArray(List<String> input) => input; 703 List convertDartToNative_StringArray(List<String> input) => input;
700 convertDartToNative_List(List input) => input; 704 convertDartToNative_List(List input) => input;
701 createCustomUpgrader(Type customElementClass, $this) => $this; 705 createCustomUpgrader(Type customElementClass, $this) => $this;
702 706
703 $endif 707 $endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698