Version 1.12.0-dev.3.1
Cherry-pick baf00c19199e6739bed804e1f9c022f476c5d75a to dev
diff --git a/pkg/compiler/lib/src/js_emitter/full_emitter/nsm_emitter.dart b/pkg/compiler/lib/src/js_emitter/full_emitter/nsm_emitter.dart
index 7aa34bd..cf823c1 100644
--- a/pkg/compiler/lib/src/js_emitter/full_emitter/nsm_emitter.dart
+++ b/pkg/compiler/lib/src/js_emitter/full_emitter/nsm_emitter.dart
@@ -237,8 +237,8 @@
for (var j = 0; j < shortNames.length; j++) {
var type = 0;
var shortName = shortNames[j];
- if (shortName[0] == "${namer.getterPrefix[0]}") type = 1;
- if (shortName[0] == "${namer.setterPrefix[0]}") type = 2;
+ if (shortName.indexOf("${namer.getterPrefix}") == 0) type = 1;
+ if (shortName.indexOf("${namer.setterPrefix}") == 0) type = 2;
// Generate call to:
//
// createInvocationMirror(String name, internalName, type,
diff --git a/tests/compiler/dart2js_extra/23828_test.dart b/tests/compiler/dart2js_extra/23828_test.dart
new file mode 100644
index 0000000..b6312a3
--- /dev/null
+++ b/tests/compiler/dart2js_extra/23828_test.dart
@@ -0,0 +1,17 @@
+// Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// Regression test for http://dartbug.com/23828/
+// Used to fail when methods contain a name starting with `get`
+import 'package:expect/expect.dart';
+
+confuse(x) { return x; return x; }
+
+class MA {
+ noSuchMethod(i) => Expect.equals(i.positionalArguments.length, 1);
+}
+
+main() {
+ confuse(new MA()).getFoo('a');
+}
diff --git a/tools/VERSION b/tools/VERSION
index 6cd4df1..c04e365 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -28,4 +28,4 @@
MINOR 12
PATCH 0
PRERELEASE 3
-PRERELEASE_PATCH 0
+PRERELEASE_PATCH 1