Index: pkg/dev_compiler/tool/input_sdk/private/js_helper.dart |
diff --git a/pkg/dev_compiler/tool/input_sdk/private/js_helper.dart b/pkg/dev_compiler/tool/input_sdk/private/js_helper.dart |
index a20547be96933a84537807eec275f4455c90661b..8b53cc602b879f520335707ff13d292ab19027c4 100644 |
--- a/pkg/dev_compiler/tool/input_sdk/private/js_helper.dart |
+++ b/pkg/dev_compiler/tool/input_sdk/private/js_helper.dart |
@@ -25,6 +25,8 @@ part 'regexp_helper.dart'; |
part 'string_helper.dart'; |
part 'js_rti.dart'; |
+final _identityHashCode = JS('', 'Symbol("_identityHashCode")'); |
+ |
class _Patch { |
const _Patch(); |
} |
@@ -57,10 +59,10 @@ class Primitives { |
} |
static int objectHashCode(object) { |
- int hash = JS('int|Null', r'#.$identityHash', object); |
+ int hash = JS('int|Null', r'#[#]', object, _identityHashCode); |
if (hash == null) { |
hash = JS('int', '(Math.random() * 0x3fffffff) | 0'); |
- JS('void', r'#.$identityHash = #', object, hash); |
+ JS('void', r'#[#] = #', object, _identityHashCode, hash); |
} |
return JS('int', '#', hash); |
} |