Chromium Code Reviews| Index: sdk/lib/_internal/compiler/implementation/lib/interceptors.dart |
| diff --git a/sdk/lib/_internal/compiler/implementation/lib/interceptors.dart b/sdk/lib/_internal/compiler/implementation/lib/interceptors.dart |
| index 63f4b4e008b709db9701802ebe74ed97815575b4..cdb6d9b3db31f5827bde0b17d7dc38d604f5a7eb 100644 |
| --- a/sdk/lib/_internal/compiler/implementation/lib/interceptors.dart |
| +++ b/sdk/lib/_internal/compiler/implementation/lib/interceptors.dart |
| @@ -44,7 +44,7 @@ getInterceptor(object) { |
| add$1(var receiver, var value) { |
| if (isJsArray(receiver)) { |
| checkGrowable(receiver, 'add'); |
| - JS('Object', r'#.push(#)', receiver, value); |
| + JS('void', r'#.push(#)', receiver, value); |
|
ahe
2012/11/14 13:51:30
I'm not sure what void means here. I think Nicola
ngeoffray
2012/11/14 21:17:39
I can't remember if I said not to use 'void', but
sra1
2012/11/15 00:09:10
I have been using 'void' to mean that the value of
|
| return; |
| } |
| return UNINTERCEPTED(receiver.add(value)); |
| @@ -57,7 +57,7 @@ removeAt$1(var receiver, var index) { |
| throw new RangeError.value(index); |
| } |
| checkGrowable(receiver, 'removeAt'); |
| - return JS("Object", r'#.splice(#, 1)[0]', receiver, index); |
| + return JS('var', r'#.splice(#, 1)[0]', receiver, index); |
| } |
| return UNINTERCEPTED(receiver.removeAt(index)); |
| } |
| @@ -66,7 +66,7 @@ removeLast(var receiver) { |
| if (isJsArray(receiver)) { |
| checkGrowable(receiver, 'removeLast'); |
| if (receiver.length == 0) throw new RangeError.value(-1); |
| - return JS('Object', r'#.pop()', receiver); |
| + return JS('var', r'#.pop()', receiver); |
| } |
| return UNINTERCEPTED(receiver.removeLast()); |
| } |
| @@ -81,7 +81,7 @@ filter(var receiver, var predicate) { |
| get$length(var receiver) { |
| if (receiver is String || isJsArray(receiver)) { |
| - return JS('num', r'#.length', receiver); |
| + return JS('num', r'#.length', receiver); // TODO(sra): Use 'int'? |
|
ngeoffray
2012/11/14 21:17:39
yes
sra1
2012/11/15 00:09:10
I expect the interceptor work will take care of th
|
| } else { |
| return UNINTERCEPTED(receiver.length); |
| } |
| @@ -115,7 +115,7 @@ toString(var value) { |
| if (JS('bool', r'typeof # == "function"', value)) { |
| return 'Closure'; |
| } |
| - return JS('string', r'String(#)', value); |
| + return JS('String', r'String(#)', value); |
| } |
| iterator(receiver) { |
| @@ -178,7 +178,7 @@ addLast(receiver, value) { |
| if (!isJsArray(receiver)) return UNINTERCEPTED(receiver.addLast(value)); |
| checkGrowable(receiver, 'addLast'); |
| - JS('Object', r'#.push(#)', receiver, value); |
| + JS('void', r'#.push(#)', receiver, value); |
| } |
| clear(receiver) { |
| @@ -226,7 +226,8 @@ getRange(receiver, start, length) { |
| throw new RangeError.value(length); |
| } |
| if (length < 0) throw new ArgumentError(length); |
| - return JS('Object', r'#.slice(#, #)', receiver, start, end); |
| + // TODO(sra): We need a type that is exactly the JavaScript Array type. |
| + return JS('=List', r'#.slice(#, #)', receiver, start, end); |
| } |
| indexOf$1(receiver, element) { |
| @@ -593,7 +594,7 @@ split(receiver, pattern) { |
| splitChars(receiver) { |
| if (receiver is !String) return UNINTERCEPTED(receiver.splitChars()); |
| - return JS('List', r'#.split("")', receiver); |
| + return JS('=List', r'#.split("")', receiver); |
| } |
| startsWith(receiver, other) { |