| Index: sdk/lib/_internal/compiler/implementation/js_backend/namer.dart
|
| diff --git a/sdk/lib/_internal/compiler/implementation/js_backend/namer.dart b/sdk/lib/_internal/compiler/implementation/js_backend/namer.dart
|
| index fa6f91e0a59498dc43e58a6202955993b3772208..5b93c92c50abf1f37f5d4e813a0d43a8cbdd7ccb 100644
|
| --- a/sdk/lib/_internal/compiler/implementation/js_backend/namer.dart
|
| +++ b/sdk/lib/_internal/compiler/implementation/js_backend/namer.dart
|
| @@ -539,11 +539,13 @@ class Namer implements ClosureNamer {
|
| }
|
| // Use the unminified names here to construct the interceptor names. This
|
| // helps ensure that they don't all suddenly change names due to a name
|
| - // clash in the minifier, which would affect the diff size.
|
| + // clash in the minifier, which would affect the diff size. Sort the names
|
| + // of the classes to ensure name is stable and predicatble for the suggested
|
| + // names.
|
| StringBuffer buffer = new StringBuffer('${element.name.slowToString()}\$');
|
| - for (ClassElement cls in classes) {
|
| - buffer.add(cls.name.slowToString());
|
| - }
|
| + List<String> names = classes.map((cls) => cls.name.slowToString()).toList();
|
| + names.sort();
|
| + names.forEach(buffer.add);
|
| return getMappedGlobalName(buffer.toString());
|
| }
|
|
|
|
|