| // Copyright (c) 2019, 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. | 
 |  | 
 | // @dart = 2.9 | 
 |  | 
 | import 'dart:_runtime' as dart; | 
 |  | 
 | import 'package:expect/expect.dart'; | 
 | import 'package:js/js.dart'; | 
 |  | 
 | final e = Expando<int>(); | 
 |  | 
 | @JS() | 
 | external void eval(String s); | 
 |  | 
 | @JS() | 
 | external Object get singleton; | 
 |  | 
 | void main() { | 
 |   eval(''' | 
 |     if (!self.singleton) { | 
 |       self.singleton = {}; | 
 |     } | 
 |   '''); | 
 |   var o = singleton; | 
 |   Expect.equals(null, e[o]); | 
 |   e[o] = 1; | 
 |  | 
 |   dart.hotRestart(); | 
 |   Expect.equals(null, e[o]); | 
 | } |