Index: pkg/dev_compiler/lib/js/es6/dart_sdk.js |
diff --git a/pkg/dev_compiler/lib/js/es6/dart_sdk.js b/pkg/dev_compiler/lib/js/es6/dart_sdk.js |
index 5114d4a862bff7dbc57d6e2203feeb83e43be1e2..3445e747ede6c710a231b948de694c9917a7f494 100644 |
--- a/pkg/dev_compiler/lib/js/es6/dart_sdk.js |
+++ b/pkg/dev_compiler/lib/js/es6/dart_sdk.js |
@@ -533,9 +533,9 @@ let ListOfPathSeg = () => (ListOfPathSeg = dart.constFn(core.List$(svg.PathSeg)) |
let ListOfTransform = () => (ListOfTransform = dart.constFn(core.List$(svg.Transform)))(); |
let CompleterOfAudioBuffer = () => (CompleterOfAudioBuffer = dart.constFn(async.Completer$(web_audio.AudioBuffer)))(); |
let EventStreamProviderOfAudioProcessingEvent = () => (EventStreamProviderOfAudioProcessingEvent = dart.constFn(html.EventStreamProvider$(web_audio.AudioProcessingEvent)))(); |
+let dynamicTodynamic = () => (dynamicTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic])))(); |
let StringAndStringToint = () => (StringAndStringToint = dart.constFn(dart.definiteFunctionType(core.int, [core.String, core.String])))(); |
let VoidTo_MethodStats = () => (VoidTo_MethodStats = dart.constFn(dart.definiteFunctionType(dart._MethodStats, [])))(); |
-let dynamicTodynamic = () => (dynamicTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic])))(); |
let dynamicToString = () => (dynamicToString = dart.constFn(dart.definiteFunctionType(core.String, [dart.dynamic])))(); |
let dynamicToListOfString = () => (dynamicToListOfString = dart.constFn(dart.definiteFunctionType(ListOfString(), [dart.dynamic])))(); |
let dynamicToList = () => (dynamicToList = dart.constFn(dart.definiteFunctionType(core.List, [dart.dynamic])))(); |
@@ -1559,6 +1559,43 @@ dart.dcall = function(f, ...args) { |
dart.dgcall = function(f, typeArgs, ...args) { |
return dart._checkAndCall(f, dart._getRuntimeType(f), void 0, typeArgs, args, 'call'); |
}; |
+dart._dhelperRepl = function(object, field, callback) { |
+ let rawField = field; |
+ if (typeof field == 'symbol') { |
+ if (field in object) return callback(field); |
+ field = field.toString(); |
+ field = field.substring('Symbol('.length, field.length - 1); |
+ } else if (field.charAt(0) != '_') { |
+ return callback(field); |
+ } |
+ if (field in object) return callback(field); |
+ let proto = object; |
+ while (proto !== null) { |
+ let symbols = Object.getOwnPropertySymbols(proto); |
+ let target = 'Symbol(' + field + ')'; |
+ for (let s = 0; s < symbols.length; s++) { |
+ let sym = symbols[s]; |
+ if (target == sym.toString()) return callback(sym); |
+ } |
+ proto = proto.__proto__; |
+ } |
+ return callback(rawField); |
+}; |
+dart.dloadRepl = function(obj, field) { |
+ return dart._dhelperRepl(obj, field, dart.fn(resolvedField => dart.dload(obj, resolvedField), dynamicTodynamic())); |
+}; |
+dart.dputRepl = function(obj, field, value) { |
+ return dart._dhelperRepl(obj, field, dart.fn(resolvedField => dart.dput(obj, resolvedField, value), dynamicTodynamic())); |
+}; |
+dart._callMethodRepl = function(obj, method, typeArgs, args) { |
+ return dart._dhelperRepl(obj, method, dart.fn(resolvedField => dart._callMethod(obj, resolvedField, typeArgs, args, method), dynamicTodynamic())); |
+}; |
+dart.dsendRepl = function(obj, method, ...args) { |
+ return dart._callMethodRepl(obj, method, null, args); |
+}; |
+dart.dgsendRepl = function(obj, typeArgs, method, ...args) { |
+ return dart._callMethodRepl(obj, method, typeArgs, args); |
+}; |
dart.getDynamicStats = function() { |
let ret = JSArrayOfListOfObject().of([]); |
let keys = dart._callMethodStats[dartx.keys][dartx.toList](); |