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

Unified Diff: lib/runtime/dart_sdk.js

Issue 2269963005: Add dart:js_util library and tests to ddc. This library is already added to dart2js and dartium. (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: Created 4 years, 4 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:
Download patch
« no previous file with comments | « no previous file | test/browser/language_tests.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: lib/runtime/dart_sdk.js
diff --git a/lib/runtime/dart_sdk.js b/lib/runtime/dart_sdk.js
index 67c5d7ae92bbaef82a1f9882d59d2ee543cdcc1d..99b1c89f75145e4ec685506a9ad86a3427f2a190 100644
--- a/lib/runtime/dart_sdk.js
+++ b/lib/runtime/dart_sdk.js
@@ -20,6 +20,7 @@ dart_library.library('dart_sdk', null, /* Imports */[
const core = Object.create(null);
const isolate = Object.create(null);
const js = Object.create(null);
+ const js_util = Object.create(null);
const math = Object.create(null);
const mirrors = Object.create(null);
const typed_data = Object.create(null);
@@ -629,6 +630,7 @@ dart_library.library('dart_sdk', null, /* Imports */[
let dynamicAnddynamicAndFnToObject = () => (dynamicAnddynamicAndFnToObject = dart.constFn(dart.definiteFunctionType(core.Object, [dart.dynamic, dart.dynamic, dynamicTodynamic()])))();
let FToF = () => (FToF = dart.constFn(dart.definiteFunctionType(F => [F, [F]])))();
let FunctionToFunction = () => (FunctionToFunction = dart.constFn(dart.definiteFunctionType(core.Function, [core.Function])))();
+ let FunctionAndListTodynamic = () => (FunctionAndListTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.Function, core.List])))();
let TAndTToT = () => (TAndTToT = dart.constFn(dart.definiteFunctionType(T => [T, [T, T]])))();
let TAndTToT$ = () => (TAndTToT$ = dart.constFn(dart.definiteFunctionType(T => [T, [T, T]])))();
let numAndnumTodouble = () => (numAndnumTodouble = dart.constFn(dart.definiteFunctionType(core.double, [core.num, core.num])))();
@@ -33773,6 +33775,109 @@ dart_library.library('dart_sdk', null, /* Imports */[
return ret;
};
dart.fn(js.allowInteropCaptureThis, FunctionToFunction());
+ js_util.jsify = function(object) {
+ if (!core.Map.is(object) && !core.Iterable.is(object)) {
+ dart.throw(new core.ArgumentError("object must be a Map or Iterable"));
+ }
+ return js_util._convertDataTree(object);
+ };
+ dart.fn(js_util.jsify, dynamicTodynamic$());
+ js_util._convertDataTree = function(data) {
+ let _convertedObjects = collection.HashMap.identity();
+ function _convert(o) {
+ if (dart.test(_convertedObjects.containsKey(o))) {
+ return _convertedObjects.get(o);
+ }
+ if (core.Map.is(o)) {
+ let convertedMap = {};
+ _convertedObjects.set(o, convertedMap);
+ for (let key of o[dartx.keys]) {
+ convertedMap[key] = _convert(o[dartx.get](key));
+ }
+ return convertedMap;
+ } else if (core.Iterable.is(o)) {
+ let convertedList = [];
+ _convertedObjects.set(o, convertedList);
+ convertedList[dartx.addAll](o[dartx.map](dart.dynamic)(_convert));
+ return convertedList;
+ } else {
+ return o;
+ }
+ }
+ dart.fn(_convert, dynamicTodynamic$());
+ return _convert(data);
+ };
+ dart.fn(js_util._convertDataTree, dynamicTodynamic$());
+ js_util.newObject = function() {
+ return {};
+ };
+ dart.fn(js_util.newObject, VoidTodynamic$());
+ js_util.hasProperty = function(o, name) {
+ return name in o;
+ };
+ dart.fn(js_util.hasProperty, dynamicAnddynamicTodynamic$());
+ js_util.getProperty = function(o, name) {
+ return o[name];
+ };
+ dart.fn(js_util.getProperty, dynamicAnddynamicTodynamic$());
+ js_util.setProperty = function(o, name, value) {
+ return o[name] = value;
+ };
+ dart.fn(js_util.setProperty, dynamicAnddynamicAnddynamicTodynamic());
+ js_util.callMethod = function(o, method, args) {
+ return o[method].apply(o, args);
+ };
+ dart.fn(js_util.callMethod, dynamicAndStringAndListTodynamic());
+ js_util.instanceof = function(o, type) {
+ return o instanceof type;
+ };
+ dart.fn(js_util.instanceof, dynamicAndFunctionTodynamic());
+ js_util.callConstructor = function(constr, arguments$) {
+ if (arguments$ == null) {
+ return new constr();
+ }
+ if (arguments$ instanceof Array) {
+ let argumentCount = arguments$.length;
+ switch (argumentCount) {
+ case 0:
+ {
+ return new constr();
+ }
+ case 1:
+ {
+ let arg0 = arguments$[0];
+ return new constr(arg0);
+ }
+ case 2:
+ {
+ let arg0 = arguments$[0];
+ let arg1 = arguments$[1];
+ return new constr(arg0, arg1);
+ }
+ case 3:
+ {
+ let arg0 = arguments$[0];
+ let arg1 = arguments$[1];
+ let arg2 = arguments$[2];
+ return new constr(arg0, arg1, arg2);
+ }
+ case 4:
+ {
+ let arg0 = arguments$[0];
+ let arg1 = arguments$[1];
+ let arg2 = arguments$[2];
+ let arg3 = arguments$[3];
+ return new constr(arg0, arg1, arg2, arg3);
+ }
+ }
+ }
+ let args = [null];
+ args[dartx.addAll](arguments$);
+ let factoryFunction = constr.bind.apply(constr, args);
+ String(factoryFunction);
+ return new factoryFunction();
+ };
+ dart.fn(js_util.callConstructor, FunctionAndListTodynamic());
math.E = 2.718281828459045;
math.LN10 = 2.302585092994046;
math.LN2 = 0.6931471805599453;
@@ -84098,6 +84203,7 @@ dart_library.library('dart_sdk', null, /* Imports */[
exports.core = core;
exports.isolate = isolate;
exports.js = js;
+ exports.js_util = js_util;
exports.math = math;
exports.mirrors = mirrors;
exports.typed_data = typed_data;
« no previous file with comments | « no previous file | test/browser/language_tests.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698