OLD | NEW |
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 376 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
387 /** | 387 /** |
388 * Create Dart class that maps to the JS Type, add the JsObject as an expando | 388 * Create Dart class that maps to the JS Type, add the JsObject as an expando |
389 * on the Dart class and return the created Dart class. | 389 * on the Dart class and return the created Dart class. |
390 */ | 390 */ |
391 wrap_jso(jsObject) { | 391 wrap_jso(jsObject) { |
392 try { | 392 try { |
393 if (jsObject is! js.JsObject) { | 393 if (jsObject is! js.JsObject) { |
394 // JS Interop converted the object to a Dart class e.g., Uint8ClampedList. | 394 // JS Interop converted the object to a Dart class e.g., Uint8ClampedList. |
395 return jsObject; | 395 return jsObject; |
396 } | 396 } |
397 | |
398 // To preserve identity, if we already have a wrapper for this, return it. | |
399 var existing = jsObject['dartClass_instance']; | |
400 if (existing != null) { | |
401 return existing; | |
402 } | |
403 // Try the most general type conversions on it. | 397 // Try the most general type conversions on it. |
404 // TODO(alanknight): We may be able to do better. This maintains identity, | 398 // TODO(alanknight): We may be able to do better. This maintains identity, |
405 // which is useful, but expensive. And if we nest something that only | 399 // which is useful, but expensive. And if we nest something that only |
406 // this conversion handles, how does that work? e.g. a list of maps of eleme
nts. | 400 // this conversion handles, how does that work? e.g. a list of maps of eleme
nts. |
407 var converted = convertNativeToDart_SerializedScriptValue(jsObject); | 401 var converted = convertNativeToDart_SerializedScriptValue(jsObject); |
408 if (!identical(converted, jsObject)) { | 402 if (!identical(converted, jsObject)) { |
409 return converted; | 403 return converted; |
410 } | 404 } |
411 var constructor = jsObject['constructor']; | 405 var constructor = jsObject['constructor']; |
412 if (__interop_checks) { | 406 if (__interop_checks) { |
413 debug_or_assert("constructor != null", constructor != null); | 407 debug_or_assert("constructor != null", constructor != null); |
414 } | 408 } |
415 var jsTypeName = constructor['name']; | 409 var jsTypeName = constructor['name']; |
416 if (__interop_checks) { | 410 if (__interop_checks) { |
417 debug_or_assert("constructor != null && jsTypeName.length > 0", constructo
r != null && jsTypeName.length > 0); | 411 debug_or_assert("constructor != null && jsTypeName.length > 0", constructo
r != null && jsTypeName.length > 0); |
418 } | 412 } |
419 | 413 |
420 var dartClass_instance; | 414 var dartClass_instance; |
421 if (jsObject.hasProperty('dart_class')) { | 415 if (jsObject.hasProperty('dart_class')) { |
422 // Got a dart_class (it's a custom element) use it it's already set up. | 416 // Got a dart_class (it's a custom element) use it it's already set up. |
423 dartClass_instance = jsObject['dart_class']; | 417 dartClass_instance = jsObject['dart_class']; |
424 } else { | 418 } else { |
425 var func = getHtmlCreateFunction(jsTypeName); | 419 var func = getHtmlCreateFunction(jsTypeName); |
426 if (func != null) { | 420 if (func != null) { |
427 dartClass_instance = func(); | 421 dartClass_instance = func(); |
428 dartClass_instance.blink_jsObject = jsObject; | 422 dartClass_instance.blink_jsObject = jsObject; |
429 jsObject['dartClass_instance'] = dartClass_instance; | |
430 } | 423 } |
431 } | 424 } |
432 return dartClass_instance; | 425 return dartClass_instance; |
433 } catch(e, stacktrace){ | 426 } catch(e, stacktrace){ |
434 if (__interop_checks) { | 427 if (__interop_checks) { |
435 if (e is DebugAssertException) | 428 if (e is DebugAssertException) |
436 window.console.log("${e.message}\n ${stacktrace}"); | 429 window.console.log("${e.message}\n ${stacktrace}"); |
437 else | 430 else |
438 window.console.log("${stacktrace}"); | 431 window.console.log("${stacktrace}"); |
439 } | 432 } |
440 } | 433 } |
441 | 434 |
442 return null; | 435 return null; |
443 } | 436 } |
444 | 437 |
445 | |
446 /** | 438 /** |
447 * Create Dart class that maps to the JS Type that is the JS type being | 439 * Create Dart class that maps to the JS Type that is the JS type being |
448 * extended using JS interop createCallback (we need the base type of the | 440 * extended using JS interop createCallback (we need the base type of the |
449 * custom element) not the Dart created constructor. | 441 * custom element) not the Dart created constructor. |
450 */ | 442 */ |
451 wrap_jso_custom_element(jsObject) { | 443 wrap_jso_custom_element(jsObject) { |
452 try { | 444 try { |
453 if (jsObject is! js.JsObject) { | 445 if (jsObject is! js.JsObject) { |
454 // JS Interop converted the object to a Dart class e.g., Uint8ClampedList. | 446 // JS Interop converted the object to a Dart class e.g., Uint8ClampedList. |
455 return jsObject; | 447 return jsObject; |
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
550 class JsoNativeFieldWrapper extends NativeFieldWrapperClass2 {} | 542 class JsoNativeFieldWrapper extends NativeFieldWrapperClass2 {} |
551 | 543 |
552 unwrap_jso(dartClass_instance) => dartClass_instance; | 544 unwrap_jso(dartClass_instance) => dartClass_instance; |
553 wrap_jso(jsObject) => jsObject; | 545 wrap_jso(jsObject) => jsObject; |
554 make_dart_rectangle(r) => r; | 546 make_dart_rectangle(r) => r; |
555 convertDartToNative_Dictionary(Map dict) => dict; | 547 convertDartToNative_Dictionary(Map dict) => dict; |
556 List convertDartToNative_StringArray(List<String> input) => input; | 548 List convertDartToNative_StringArray(List<String> input) => input; |
557 convertDartToNative_List(List input) => input; | 549 convertDartToNative_List(List input) => input; |
558 | 550 |
559 $endif | 551 $endif |
OLD | NEW |