| Index: sdk/lib/_internal/compiler/implementation/lib/js_helper.dart
|
| diff --git a/sdk/lib/_internal/compiler/implementation/lib/js_helper.dart b/sdk/lib/_internal/compiler/implementation/lib/js_helper.dart
|
| index 5b4f36a612dd73f37a56a7c035d18e5b31ec40dd..3f13d3e405ead830c2ecd341c219d42720e2c828 100644
|
| --- a/sdk/lib/_internal/compiler/implementation/lib/js_helper.dart
|
| +++ b/sdk/lib/_internal/compiler/implementation/lib/js_helper.dart
|
| @@ -303,7 +303,8 @@ index$slow(var a, var index) {
|
| if (index < 0 || index >= a.length) {
|
| throw new RangeError.value(index);
|
| }
|
| - return JS('Object', r'#[#]', a, index);
|
| + // return JS('Object', r'#[#]', a, index);
|
| + return JS('', r'#[#]', a, index);
|
| }
|
| return UNINTERCEPTED(a[index]);
|
| }
|
| @@ -317,7 +318,7 @@ void indexSet$slow(var a, var index, var value) {
|
| throw new RangeError.value(index);
|
| }
|
| checkMutable(a, 'indexed set');
|
| - JS('Object', r'#[#] = #', a, index, value);
|
| + JS('void', r'#[#] = #', a, index, value);
|
| return;
|
| }
|
| UNINTERCEPTED(a[index] = value);
|
| @@ -348,7 +349,8 @@ class ListIterator<T> implements Iterator<T> {
|
| bool get hasNext => i < JS('int', r'#.length', list);
|
| T next() {
|
| if (!hasNext) throw new StateError("No more elements");
|
| - var value = JS('Object', r'#[#]', list, i);
|
| + // var value = JS('Object', r'#[#]', list, i);
|
| + var value = JS('', r'#[#]', list, i);
|
| i += 1;
|
| return value;
|
| }
|
| @@ -523,11 +525,14 @@ class Primitives {
|
| }
|
|
|
| static List newList(length) {
|
| - if (length == null) return JS('Object', r'new Array()');
|
| + // TODO(sra): For good concrete type analysis we need the JS-type to
|
| + // specifically name the JavaScript Array implementation. 'List' matches
|
| + // all the dart:html types that implement List<T>.
|
| + if (length == null) return JS('List', r'new Array()');
|
| if ((length is !int) || (length < 0)) {
|
| throw new ArgumentError(length);
|
| }
|
| - var result = JS('Object', r'new Array(#)', length);
|
| + var result = JS('List', r'new Array(#)', length);
|
| JS('void', r'#.fixed$length = #', result, true);
|
| return result;
|
| }
|
| @@ -584,7 +589,8 @@ class Primitives {
|
| }
|
|
|
| static patchUpY2K(value, years, isUtc) {
|
| - var date = JS('Object', r'new Date(#)', value);
|
| + // var date = JS('Object', r'new Date(#)', value);
|
| + var date = JS('', r'new Date(#)', value);
|
| if (isUtc) {
|
| JS('num', r'#.setUTCFullYear(#)', date, years);
|
| } else {
|
| @@ -896,7 +902,8 @@ class MathNatives {
|
| */
|
| $throw(ex) {
|
| if (ex == null) ex = const NullPointerException();
|
| - var jsError = JS('Object', r'new Error()');
|
| + // var jsError = JS('Object', r'new Error()');
|
| + var jsError = JS('var', r'new Error()');
|
| JS('void', r'#.name = #', jsError, ex);
|
| JS('void', r'#.description = #', jsError, ex);
|
| JS('void', r'#.dartException = #', jsError, ex);
|
| @@ -911,7 +918,8 @@ $throw(ex) {
|
| * JavaScript Error to which we have added a property 'dartException'
|
| * which holds a Dart object.
|
| */
|
| -toStringWrapper() => JS('Object', r'this.dartException').toString();
|
| +// toStringWrapper() => JS('Object', r'this.dartException').toString();
|
| +toStringWrapper() => JS('', r'this.dartException').toString();
|
|
|
| makeLiteralListConst(list) {
|
| JS('bool', r'#.immutable$list = #', list, true);
|
| @@ -939,7 +947,8 @@ unwrapException(ex) {
|
| // Note that we are checking if the object has the property. If it
|
| // has, it could be set to null if the thrown value is null.
|
| if (JS('bool', r'"dartException" in #', ex)) {
|
| - return JS('Object', r'#.dartException', ex);
|
| + // return JS('Object', r'#.dartException', ex);
|
| + return JS('', r'#.dartException', ex);
|
| }
|
|
|
| // Grab hold of the exception message. This field is available on
|
| @@ -1481,6 +1490,7 @@ Type getOrCreateCachedRuntimeType(String key) {
|
| }
|
|
|
| String getRuntimeTypeString(var object) {
|
| - var typeInfo = JS('Object', r'#.builtin$typeInfo', object);
|
| + //var typeInfo = JS('Object', r'#.builtin$typeInfo', object);
|
| + var typeInfo = JS('var', r'#.builtin$typeInfo', object);
|
| return JS('String', r'#.runtimeType', typeInfo);
|
| }
|
|
|