|
18 | 18 | import java.util.HashMap; |
19 | 19 | import java.util.Map; |
20 | 20 |
|
21 | | -import elemental2.core.JsArray; |
22 | 21 | import elemental2.core.JsDate; |
23 | | -import elemental2.core.JsMap; |
24 | | -import elemental2.core.JsRegExp; |
25 | | -import elemental2.core.JsSet; |
26 | | -import elemental2.core.JsWeakMap; |
27 | | -import elemental2.core.JsWeakSet; |
28 | | -import elemental2.dom.Event; |
29 | 22 | import elemental2.dom.Location; |
30 | | -import elemental2.dom.Node; |
31 | 23 | import elemental2.dom.URLSearchParams; |
32 | | -import elemental2.dom.Window; |
33 | 24 | import jsinterop.annotations.JsMethod; |
34 | 25 | import jsinterop.base.Js; |
35 | 26 |
|
@@ -513,34 +504,12 @@ private boolean jsNative(Object object) { |
513 | 504 |
|
514 | 505 | // Use Object.prototype.toString.call(obj) to get the internal [[Class]] property |
515 | 506 | // This is a more reliable way to detect native JS objects |
516 | | - String objectType = getObjectType(object); |
| 507 | + String objectType = objectType(object); |
517 | 508 | return objectType.startsWith("[object ") && |
518 | 509 | !objectType.equals("[object Object]") && |
519 | 510 | !objectType.equals("[object Array]"); // Regular JS objects and arrays should be stringified |
520 | 511 | } |
521 | 512 |
|
522 | | - @JsMethod(namespace = "Object.prototype.toString") |
523 | | - private static native String call(Object obj); |
524 | | - |
525 | | - private String getObjectType(Object obj) { |
526 | | - try { |
527 | | - return call(obj); |
528 | | - } catch (Exception e) { |
529 | | - // Fallback to the instanceof checks if the above method fails |
530 | | - return isKnownNativeType(obj) ? "[object Native]" : "[object Object]"; |
531 | | - } |
532 | | - } |
533 | | - |
534 | | - private boolean isKnownNativeType(Object object) { |
535 | | - return object instanceof JsArray || |
536 | | - object instanceof JsSet || |
537 | | - object instanceof JsMap || |
538 | | - object instanceof JsWeakSet || |
539 | | - object instanceof JsWeakMap || |
540 | | - object instanceof JsRegExp || |
541 | | - object instanceof JsDate || |
542 | | - object instanceof Event || |
543 | | - object instanceof Window || |
544 | | - object instanceof Node; |
545 | | - } |
| 513 | + @JsMethod |
| 514 | + private static native String objectType(Object obj); |
546 | 515 | } |
0 commit comments