| Index: lib/compiler/implementation/ssa/builder.dart
|
| diff --git a/lib/compiler/implementation/ssa/builder.dart b/lib/compiler/implementation/ssa/builder.dart
|
| index 594d87f01d11369b51865f0150cbb9742f062518..f811be2c01165230a5c13548a3807ba9a1295998 100644
|
| --- a/lib/compiler/implementation/ssa/builder.dart
|
| +++ b/lib/compiler/implementation/ssa/builder.dart
|
| @@ -44,18 +44,27 @@ class Interceptors {
|
| }
|
|
|
| Element getStaticInterceptor(SourceString name, int parameters) {
|
| - String mangledName = "builtin\$${name.slowToString()}\$${parameters}";
|
| - return compiler.findHelper(new SourceString(mangledName));
|
| + String mangledName = name.slowToString();
|
| + Element element = compiler.findInterceptor(new SourceString(mangledName));
|
| + if (element !== null && element.isFunction()) {
|
| + // Only pick the function element with the short name if the
|
| + // number of parameters it expects matches the number we're
|
| + // passing modulo the receiver.
|
| + FunctionElement function = element;
|
| + if (function.parameterCount(compiler) == parameters + 1) return element;
|
| + }
|
| + String longMangledName = "$mangledName\$$parameters";
|
| + return compiler.findInterceptor(new SourceString(longMangledName));
|
| }
|
|
|
| Element getStaticGetInterceptor(SourceString name) {
|
| - String mangledName = "builtin\$get\$${name.slowToString()}";
|
| - return compiler.findHelper(new SourceString(mangledName));
|
| + String mangledName = "get\$${name.slowToString()}";
|
| + return compiler.findInterceptor(new SourceString(mangledName));
|
| }
|
|
|
| Element getStaticSetInterceptor(SourceString name) {
|
| - String mangledName = "builtin\$set\$${name.slowToString()}";
|
| - return compiler.findHelper(new SourceString(mangledName));
|
| + String mangledName = "set\$${name.slowToString()}";
|
| + return compiler.findInterceptor(new SourceString(mangledName));
|
| }
|
|
|
| Element getOperatorInterceptor(Operator op) {
|
| @@ -64,6 +73,7 @@ class Interceptors {
|
| }
|
|
|
| Element getBoolifiedVersionOf(Element interceptor) {
|
| + if (interceptor === null) return interceptor;
|
| String boolifiedName = "${interceptor.name.slowToString()}B";
|
| return compiler.findHelper(new SourceString(boolifiedName));
|
| }
|
|
|