22
22
import jsinterop .annotations .JsType ;
23
23
24
24
@ JsType (isNative = true , name = "Map" , namespace = JsPackage .GLOBAL )
25
- interface InternalJsMap <V > {
25
+ class InternalJsMap <V > {
26
26
27
27
@ JsType (isNative = true , name = "IteratorIterable" , namespace = JsPackage .GLOBAL )
28
28
interface Iterator <V > {
@@ -47,31 +47,14 @@ interface IteratorEntry<V> {
47
47
default V getValue () { return JsUtils .uncheckedCast (getValueInternal ()[1 ]); }
48
48
}
49
49
50
- V get (int key );
51
- V get (String key );
52
- void set (int key , V value );
53
- void set (String key , V value );
54
- Iterator <V > entries ();
55
-
56
- @ JsOverlay
57
- default void delete (int key ) {
58
- // Calls delete without map.delete in order to be compatible with old browsers where delete is a
59
- // keyword.
60
- DeleteFunction fn = JsUtils .getProperty (this , "delete" );
61
- fn .call (this , key );
62
- }
63
-
64
- @ JsOverlay
65
- default void delete (String key ) {
66
- // Calls delete without map.delete in order to be compatible with old browsers where delete is a
67
- // keyword.
68
- DeleteFunction fn = JsUtils .getProperty (this , "delete" );
69
- fn .call (this , key );
50
+ InternalJsMap () {
70
51
}
71
52
72
- @ JsType (isNative = true , name = "Function" , namespace = JsPackage .GLOBAL )
73
- interface DeleteFunction {
74
- void call (InternalJsMap <?> thisArg , String key );
75
- void call (InternalJsMap <?> thisArg , int key );
76
- }
53
+ native V get (int key );
54
+ native V get (String key );
55
+ native void set (int key , V value );
56
+ native void set (String key , V value );
57
+ native Iterator <V > entries ();
58
+ native void delete (String key );
59
+ native void delete (int key );
77
60
}
0 commit comments