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

Unified Diff: lib/runtime/dart/html_common.js

Issue 1700153002: Wrapperless dart:html and friends (Closed) Base URL: https://github.com/dart-lang/dev_compiler.git@master
Patch Set: A couple more tweaks Created 4 years, 10 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « lib/runtime/dart/core.js ('k') | lib/runtime/dart/indexed_db.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: lib/runtime/dart/html_common.js
diff --git a/lib/runtime/dart/html_common.js b/lib/runtime/dart/html_common.js
index df9c8edc287eeb352b93a419a4f3c46368733604..1cade6f39186248f0b53702e3f5bc96d6dad135c 100644
--- a/lib/runtime/dart/html_common.js
+++ b/lib/runtime/dart/html_common.js
@@ -10,7 +10,8 @@ dart_library.library('dart/html_common', null, /* Imports */[
'dart/collection',
'dart/_internal'
], /* Lazy imports */[
-], function(exports, dart, _metadata, core, html, typed_data, _js_helper, _native_typed_data, async, collection, _internal) {
+ 'dart/web_gl'
+], function(exports, dart, _metadata, core, html, typed_data, _js_helper, _native_typed_data, async, collection, _internal, web_gl) {
'use strict';
let dartx = dart.dartx;
dart.export(exports, _metadata);
@@ -304,10 +305,10 @@ dart_library.library('dart/html_common', null, /* Imports */[
if (dart.is(e, core.RegExp)) {
dart.throw(new core.UnimplementedError('structured clone of RegExp'));
}
- if (dart.is(e, dart.dynamic)) return e;
- if (dart.is(e, dart.dynamic)) return e;
- if (dart.is(e, dart.dynamic)) return e;
- if (dart.is(e, dart.dynamic)) return e;
+ if (dart.is(e, html.File)) return e;
+ if (dart.is(e, html.Blob)) return e;
+ if (dart.is(e, html.FileList)) return e;
+ if (dart.is(e, html.ImageData)) return e;
if (dart.notNull(this.cloneNotRequired(e))) return e;
if (dart.is(e, core.Map)) {
let slot = this.findSlot(e);
@@ -315,7 +316,7 @@ dart_library.library('dart/html_common', null, /* Imports */[
if (copy != null) return copy;
copy = this.newJsMap();
this.writeSlot(slot, copy);
- e.forEach(dart.fn((key, value) => {
+ e[dartx.forEach](dart.fn((key, value) => {
this.putIntoMap(copy, key, this.walk(value));
}, dart.void, [dart.dynamic, dart.dynamic]));
return copy;
@@ -441,16 +442,33 @@ dart_library.library('dart/html_common', null, /* Imports */[
this.stencil = stencil;
}
}
+ _TypedContextAttributes[dart.implements] = () => [web_gl.ContextAttributes];
dart.setSignature(_TypedContextAttributes, {
constructors: () => ({_TypedContextAttributes: [_TypedContextAttributes, [core.bool, core.bool, core.bool, core.bool, core.bool, core.bool, core.bool]]})
});
+ dart.defineExtensionMembers(_TypedContextAttributes, [
+ 'alpha',
+ 'alpha',
+ 'antialias',
+ 'antialias',
+ 'depth',
+ 'depth',
+ 'premultipliedAlpha',
+ 'premultipliedAlpha',
+ 'preserveDrawingBuffer',
+ 'preserveDrawingBuffer',
+ 'stencil',
+ 'stencil',
+ 'failIfMajorPerformanceCaveat',
+ 'failIfMajorPerformanceCaveat'
+ ]);
function convertNativeToDart_ContextAttributes(nativeContextAttributes) {
- if (dart.is(nativeContextAttributes, dart.dynamic)) {
+ if (dart.is(nativeContextAttributes, web_gl.ContextAttributes)) {
return nativeContextAttributes;
}
return new _TypedContextAttributes(dart.as(nativeContextAttributes.alpha, core.bool), dart.as(nativeContextAttributes.antialias, core.bool), dart.as(nativeContextAttributes.depth, core.bool), dart.as(nativeContextAttributes.failIfMajorPerformanceCaveat, core.bool), dart.as(nativeContextAttributes.premultipliedAlpha, core.bool), dart.as(nativeContextAttributes.preserveDrawingBuffer, core.bool), dart.as(nativeContextAttributes.stencil, core.bool));
}
- dart.fn(convertNativeToDart_ContextAttributes);
+ dart.fn(convertNativeToDart_ContextAttributes, () => dart.definiteFunctionType(web_gl.ContextAttributes, [dart.dynamic]));
class _TypedImageData extends core.Object {
_TypedImageData(data, height, width) {
this.data = data;
@@ -458,13 +476,15 @@ dart_library.library('dart/html_common', null, /* Imports */[
this.width = width;
}
}
+ _TypedImageData[dart.implements] = () => [html.ImageData];
dart.setSignature(_TypedImageData, {
constructors: () => ({_TypedImageData: [_TypedImageData, [typed_data.Uint8ClampedList, core.int, core.int]]})
});
+ dart.defineExtensionMembers(_TypedImageData, ['data', 'height', 'width']);
function convertNativeToDart_ImageData(nativeImageData) {
0;
- if (dart.is(nativeImageData, dart.dynamic)) {
- let data = dart.dload(nativeImageData, 'data');
+ if (dart.is(nativeImageData, html.ImageData)) {
+ let data = nativeImageData[dartx.data];
if (data.constructor === Array) {
if (typeof CanvasPixelArray !== "undefined") {
data.constructor = CanvasPixelArray;
@@ -475,14 +495,14 @@ dart_library.library('dart/html_common', null, /* Imports */[
}
return new _TypedImageData(dart.as(nativeImageData.data, typed_data.Uint8ClampedList), dart.as(nativeImageData.height, core.int), dart.as(nativeImageData.width, core.int));
}
- dart.fn(convertNativeToDart_ImageData);
+ dart.fn(convertNativeToDart_ImageData, html.ImageData, [dart.dynamic]);
function convertDartToNative_ImageData(imageData) {
if (dart.is(imageData, _TypedImageData)) {
return {data: imageData.data, height: imageData.height, width: imageData.width};
}
return imageData;
}
- dart.fn(convertDartToNative_ImageData);
+ dart.fn(convertDartToNative_ImageData, dart.dynamic, [html.ImageData]);
const _serializedScriptValue = 'num|String|bool|' + 'JSExtendableArray|=Object|' + 'Blob|File|NativeByteBuffer|NativeTypedData';
const annotation_Creates_SerializedScriptValue = dart.const(new _js_helper.Creates(_serializedScriptValue));
const annotation_Returns_SerializedScriptValue = dart.const(new _js_helper.Returns(_serializedScriptValue));
@@ -491,7 +511,7 @@ dart_library.library('dart/html_common', null, /* Imports */[
let dict = dart.map();
let keys = Object.getOwnPropertyNames(object);
for (let key of dart.as(keys, core.Iterable)) {
- dict.set(key, object[key]);
+ dict[dartx.set](key, object[key]);
}
return dict;
}
@@ -503,7 +523,7 @@ dart_library.library('dart/html_common', null, /* Imports */[
if (postCreate != null) {
dart.dcall(postCreate, object);
}
- dict.forEach(dart.fn((key, value) => {
+ dict[dartx.forEach](dart.fn((key, value) => {
object[key] = value;
}, dart.void, [core.String, dart.dynamic]));
return object;
@@ -616,9 +636,17 @@ dart_library.library('dart/html_common', null, /* Imports */[
return completer.future;
}
dart.fn(convertNativePromiseToDartFuture, async.Future, [dart.dynamic]);
+ function wrap_jso(jsObject) {
+ return jsObject;
+ }
+ dart.fn(wrap_jso);
+ function unwrap_jso(dartClass_instance) {
+ return dartClass_instance;
+ }
+ dart.fn(unwrap_jso);
class Device extends core.Object {
static get userAgent() {
- return dart.as(dart.dload(html.window.navigator.raw, 'userAgent'), core.String);
+ return html.window[dartx.navigator][dartx.userAgent];
}
static get isOpera() {
if (Device._isOpera == null) {
@@ -698,7 +726,7 @@ dart_library.library('dart/html_common', null, /* Imports */[
const _filtered = Symbol('_filtered');
class FilteredElementList extends collection.ListBase$(html.Element) {
FilteredElementList(node) {
- this[_childNodes] = node.nodes;
+ this[_childNodes] = node[dartx.nodes];
this[_node] = node;
}
get [_iterable]() {
@@ -711,7 +739,7 @@ dart_library.library('dart/html_common', null, /* Imports */[
this[_filtered][dartx.forEach](f);
}
set(index, value) {
- this.get(index).replaceWith(value);
+ this.get(index)[dartx.replaceWith](value);
return value;
}
set length(newLength) {
@@ -734,7 +762,7 @@ dart_library.library('dart/html_common', null, /* Imports */[
contains(needle) {
if (!dart.is(needle, html.Element)) return false;
let element = dart.as(needle, html.Element);
- return dart.equals(element.parentNode, this[_node]);
+ return dart.equals(element[dartx.parentNode], this[_node]);
}
get reversed() {
return this[_filtered][dartx.reversed];
@@ -763,7 +791,7 @@ dart_library.library('dart/html_common', null, /* Imports */[
removeLast() {
let result = this[_iterable][dartx.last];
if (result != null) {
- result.remove();
+ result[dartx.remove]();
}
return result;
}
@@ -772,7 +800,7 @@ dart_library.library('dart/html_common', null, /* Imports */[
this.add(value);
} else {
let element = this[_iterable][dartx.elementAt](index);
- element.parentNode.insertBefore(value, element);
+ element[dartx.parentNode][dartx.insertBefore](value, element);
}
}
insertAll(index, iterable) {
@@ -780,18 +808,18 @@ dart_library.library('dart/html_common', null, /* Imports */[
this.addAll(iterable);
} else {
let element = this[_iterable][dartx.elementAt](index);
- element.parentNode.insertAllBefore(iterable, element);
+ element[dartx.parentNode][dartx.insertAllBefore](iterable, element);
}
}
removeAt(index) {
let result = this.get(index);
- result.remove();
+ result[dartx.remove]();
return result;
}
remove(element) {
if (!dart.is(element, html.Element)) return false;
if (dart.notNull(this.contains(element))) {
- dart.as(element, html.Element).remove();
+ dart.as(element, html.Element)[dartx.remove]();
return true;
} else {
return false;
@@ -807,7 +835,7 @@ dart_library.library('dart/html_common', null, /* Imports */[
return this[_filtered][dartx.iterator];
}
get rawList() {
- return this[_node].childNodes;
+ return this[_node][dartx.childNodes];
}
}
FilteredElementList[dart.implements] = () => [NodeListWrapper];
@@ -923,6 +951,8 @@ dart_library.library('dart/html_common', null, /* Imports */[
exports.isImmutableJavaScriptArray = isImmutableJavaScriptArray;
exports.isJavaScriptPromise = isJavaScriptPromise;
exports.convertNativePromiseToDartFuture = convertNativePromiseToDartFuture;
+ exports.wrap_jso = wrap_jso;
+ exports.unwrap_jso = unwrap_jso;
exports.Device = Device;
exports.FilteredElementList = FilteredElementList;
exports.Lists = Lists;
« no previous file with comments | « lib/runtime/dart/core.js ('k') | lib/runtime/dart/indexed_db.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698