Moves JsInterop integration tests to new annotations. Change-Id: Ic7fdaabb337afb8e30e047ad697e3c24baea6542 Review-Link: https://gwt-review.googlesource.com/#/c/13772/
diff --git a/user/test/com/google/gwt/core/client/interop/AbstractJsType.java b/user/test/com/google/gwt/core/client/interop/AbstractJsType.java index 5f059e5..8e07404 100644 --- a/user/test/com/google/gwt/core/client/interop/AbstractJsType.java +++ b/user/test/com/google/gwt/core/client/interop/AbstractJsType.java
@@ -15,7 +15,7 @@ */ package com.google.gwt.core.client.interop; -import com.google.gwt.core.client.js.JsType; +import jsinterop.annotations.JsType; /** * This concrete test class is *directly* annotated as a @JsType.
diff --git a/user/test/com/google/gwt/core/client/interop/ConcreteJsType.java b/user/test/com/google/gwt/core/client/interop/ConcreteJsType.java index 74c89e4..55529f1 100644 --- a/user/test/com/google/gwt/core/client/interop/ConcreteJsType.java +++ b/user/test/com/google/gwt/core/client/interop/ConcreteJsType.java
@@ -15,7 +15,7 @@ */ package com.google.gwt.core.client.interop; -import com.google.gwt.core.client.js.JsType; +import jsinterop.annotations.JsType; /** * This concrete test class is *directly* annotated as a @JsType.
diff --git a/user/test/com/google/gwt/core/client/interop/ConcreteJsTypeJsSubclass.java b/user/test/com/google/gwt/core/client/interop/ConcreteJsTypeJsSubclass.java index 9e89e41..f9506ec 100644 --- a/user/test/com/google/gwt/core/client/interop/ConcreteJsTypeJsSubclass.java +++ b/user/test/com/google/gwt/core/client/interop/ConcreteJsTypeJsSubclass.java
@@ -15,12 +15,9 @@ */ package com.google.gwt.core.client.interop; -import com.google.gwt.core.client.js.JsType; - /** * This test class exposes parent jsmethod as non-jsmethod. */ -@JsType class ConcreteJsTypeJsSubclass extends ConcreteJsType implements SubclassInterface { }
diff --git a/user/test/com/google/gwt/core/client/interop/ElementLikeJsInterface.java b/user/test/com/google/gwt/core/client/interop/ElementLikeNativeInterface.java similarity index 83% rename from user/test/com/google/gwt/core/client/interop/ElementLikeJsInterface.java rename to user/test/com/google/gwt/core/client/interop/ElementLikeNativeInterface.java index a3ff6c6..2881058 100644 --- a/user/test/com/google/gwt/core/client/interop/ElementLikeJsInterface.java +++ b/user/test/com/google/gwt/core/client/interop/ElementLikeNativeInterface.java
@@ -16,14 +16,14 @@ package com.google.gwt.core.client.interop; -import com.google.gwt.core.client.js.JsProperty; -import com.google.gwt.core.client.js.JsType; +import jsinterop.annotations.JsProperty; +import jsinterop.annotations.JsType; /** * An interface that represent part of HTML element's contract. */ -@JsType -public interface ElementLikeJsInterface { +@JsType(isNative = true) +public interface ElementLikeNativeInterface { @JsProperty String getTagName(); }
diff --git a/user/test/com/google/gwt/core/client/interop/ElementLikeJsInterfaceImpl.java b/user/test/com/google/gwt/core/client/interop/ElementLikeNativeInterfaceImpl.java similarity index 89% rename from user/test/com/google/gwt/core/client/interop/ElementLikeJsInterfaceImpl.java rename to user/test/com/google/gwt/core/client/interop/ElementLikeNativeInterfaceImpl.java index 7a9d81a..8821150 100644 --- a/user/test/com/google/gwt/core/client/interop/ElementLikeJsInterfaceImpl.java +++ b/user/test/com/google/gwt/core/client/interop/ElementLikeNativeInterfaceImpl.java
@@ -18,7 +18,7 @@ /** * Implements ElementLikeJsInterface. */ -public class ElementLikeJsInterfaceImpl implements ElementLikeJsInterface { +public class ElementLikeNativeInterfaceImpl implements ElementLikeNativeInterface { @Override public String getTagName() { return "mytag";
diff --git a/user/test/com/google/gwt/core/client/interop/HTMLButtonElement.java b/user/test/com/google/gwt/core/client/interop/HTMLButtonElement.java index 7c1c532..fa178c9 100644 --- a/user/test/com/google/gwt/core/client/interop/HTMLButtonElement.java +++ b/user/test/com/google/gwt/core/client/interop/HTMLButtonElement.java
@@ -15,8 +15,9 @@ */ package com.google.gwt.core.client.interop; -import com.google.gwt.core.client.js.JsType; +import jsinterop.annotations.JsPackage; +import jsinterop.annotations.JsType; -@JsType(prototype = "HTMLButtonElement") -class HTMLButtonElement extends HTMLElement { +@JsType(namespace = JsPackage.GLOBAL, name = "HTMLButtonElement", isNative = true) +class HTMLButtonElement extends HTMLElementConcreteNativeJsType { }
diff --git a/user/test/com/google/gwt/core/client/interop/HTMLElement.java b/user/test/com/google/gwt/core/client/interop/HTMLElement.java deleted file mode 100644 index 41e9c3a..0000000 --- a/user/test/com/google/gwt/core/client/interop/HTMLElement.java +++ /dev/null
@@ -1,22 +0,0 @@ -/* - * Copyright 2014 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ -package com.google.gwt.core.client.interop; - -import com.google.gwt.core.client.js.JsType; - -@JsType(prototype = "HTMLElement") -class HTMLElement { -}
diff --git a/user/test/com/google/gwt/core/client/interop/HTMLAnotherElement.java b/user/test/com/google/gwt/core/client/interop/HTMLElementAnotherConcreteNativeJsType.java similarity index 75% copy from user/test/com/google/gwt/core/client/interop/HTMLAnotherElement.java copy to user/test/com/google/gwt/core/client/interop/HTMLElementAnotherConcreteNativeJsType.java index 2c2ca7e..7ea72ed 100644 --- a/user/test/com/google/gwt/core/client/interop/HTMLAnotherElement.java +++ b/user/test/com/google/gwt/core/client/interop/HTMLElementAnotherConcreteNativeJsType.java
@@ -15,8 +15,9 @@ */ package com.google.gwt.core.client.interop; -import com.google.gwt.core.client.js.JsType; +import jsinterop.annotations.JsPackage; +import jsinterop.annotations.JsType; -@JsType(prototype = "HTMLElement") -class HTMLAnotherElement { +@JsType(namespace = JsPackage.GLOBAL, name = "HTMLElement", isNative = true) +class HTMLElementAnotherConcreteNativeJsType { }
diff --git a/user/test/com/google/gwt/core/client/interop/HTMLAnotherElement.java b/user/test/com/google/gwt/core/client/interop/HTMLElementConcreteNativeJsType.java similarity index 76% rename from user/test/com/google/gwt/core/client/interop/HTMLAnotherElement.java rename to user/test/com/google/gwt/core/client/interop/HTMLElementConcreteNativeJsType.java index 2c2ca7e..4bd6936 100644 --- a/user/test/com/google/gwt/core/client/interop/HTMLAnotherElement.java +++ b/user/test/com/google/gwt/core/client/interop/HTMLElementConcreteNativeJsType.java
@@ -15,8 +15,9 @@ */ package com.google.gwt.core.client.interop; -import com.google.gwt.core.client.js.JsType; +import jsinterop.annotations.JsPackage; +import jsinterop.annotations.JsType; -@JsType(prototype = "HTMLElement") -class HTMLAnotherElement { +@JsType(namespace = JsPackage.GLOBAL, name = "HTMLElement", isNative = true) +class HTMLElementConcreteNativeJsType { }
diff --git a/user/test/com/google/gwt/core/client/interop/JsExportTest.java b/user/test/com/google/gwt/core/client/interop/JsExportTest.java index 1c044d8..11d3fd5 100644 --- a/user/test/com/google/gwt/core/client/interop/JsExportTest.java +++ b/user/test/com/google/gwt/core/client/interop/JsExportTest.java
@@ -18,10 +18,10 @@ import static com.google.gwt.core.client.ScriptInjector.TOP_WINDOW; import com.google.gwt.core.client.ScriptInjector; -import com.google.gwt.core.client.js.JsExport; -import com.google.gwt.core.client.js.JsNamespace; import com.google.gwt.junit.client.GWTTestCase; +import jsinterop.annotations.JsType; + /** * Tests JsExport. */ @@ -146,8 +146,7 @@ return obj.getInstance(); }-*/; - @JsExport - @JsNamespace("bar.foo.baz") + @JsType(namespace = "bar.foo.baz") static class MyExportedClassCorrectNamespace { public MyExportedClassCorrectNamespace() { } } @@ -411,8 +410,8 @@ public void testEnum_exportedFields() { assertEquals(1, getPublicStaticFinalFieldInEnum()); - // explicitly marked @JsExport fields must be final - // but ones that are in a @JsExported class don't need to be final + // explicitly marked @JsType() fields must be final + // but ones that are in a @JsType()ed class don't need to be final assertEquals(2, getPublicStaticFieldInEnum()); }
diff --git a/user/test/com/google/gwt/core/client/interop/JsFunctionTest.java b/user/test/com/google/gwt/core/client/interop/JsFunctionTest.java index 8bb7025..242e0eb 100644 --- a/user/test/com/google/gwt/core/client/interop/JsFunctionTest.java +++ b/user/test/com/google/gwt/core/client/interop/JsFunctionTest.java
@@ -138,7 +138,7 @@ assertNotNull(c1); MyJsFunctionIdentityInterface c2 = (MyJsFunctionIdentityInterface) createFunction(); assertNotNull(c2); - ElementLikeJsInterface i = (ElementLikeJsInterface) createFunction(); + ElementLikeNativeInterface i = (ElementLikeNativeInterface) createFunction(); assertNotNull(i); try { MyJsFunctionInterfaceImpl c3 = (MyJsFunctionInterfaceImpl) createFunction(); @@ -150,7 +150,7 @@ } public void testCast_fromJsObject() { - ElementLikeJsInterface obj = (ElementLikeJsInterface) createObject(); + ElementLikeNativeInterface obj = (ElementLikeNativeInterface) createObject(); assertNotNull(obj); try { MyJsFunctionInterface c = (MyJsFunctionInterface) createObject(); @@ -185,9 +185,11 @@ assertNotNull(c3); MyJsFunctionIdentityInterface c4 = (MyJsFunctionIdentityInterface) object; assertNotNull(c4); + ElementLikeNativeInterface c5 = (ElementLikeNativeInterface) object; + assertNotNull(c5); try { - ElementLikeJsInterface c5 = (ElementLikeJsInterface) object; - assertNotNull(c5); + HTMLElementConcreteNativeJsType c6 = (HTMLElementConcreteNativeJsType) object; + assertNotNull(c6); fail("ClassCastException should be caught."); } catch (ClassCastException cce) { // Expected. @@ -206,7 +208,7 @@ assertTrue(object instanceof MyJsFunctionIdentityInterface); assertTrue(object instanceof MyJsFunctionWithOnlyInstanceofReference); assertFalse(object instanceof MyJsFunctionInterfaceImpl); - assertTrue(object instanceof ElementLikeJsInterface); + assertTrue(object instanceof ElementLikeNativeInterface); } public void testInstanceOf_jsObject() { @@ -215,7 +217,7 @@ assertFalse(object instanceof MyJsFunctionIdentityInterface); assertFalse(object instanceof MyJsFunctionWithOnlyInstanceofReference); assertFalse(object instanceof MyJsFunctionInterfaceImpl); - assertTrue(object instanceof ElementLikeJsInterface); + assertTrue(object instanceof ElementLikeNativeInterface); } public void testInstanceOf_javaInstance() { @@ -224,7 +226,8 @@ assertTrue(object instanceof MyJsFunctionInterfaceImpl); assertTrue(object instanceof MyJsFunctionIdentityInterface); assertTrue(object instanceof MyJsFunctionWithOnlyInstanceofReference); - assertFalse(object instanceof ElementLikeJsInterface); + assertTrue(object instanceof ElementLikeNativeInterface); + assertFalse(object instanceof HTMLElementConcreteNativeJsType); } // uncomment when Java8 is supported.
diff --git a/user/test/com/google/gwt/core/client/interop/JsListInterface.java b/user/test/com/google/gwt/core/client/interop/JsListInterface.java index 885647d..0976b77 100644 --- a/user/test/com/google/gwt/core/client/interop/JsListInterface.java +++ b/user/test/com/google/gwt/core/client/interop/JsListInterface.java
@@ -15,7 +15,7 @@ */ package com.google.gwt.core.client.interop; -import com.google.gwt.core.client.js.JsType; +import jsinterop.annotations.JsType; @JsType interface JsListInterface {
diff --git a/user/test/com/google/gwt/core/client/interop/JsPropertyTest.java b/user/test/com/google/gwt/core/client/interop/JsPropertyTest.java index 73c6a64..ce4dd93 100644 --- a/user/test/com/google/gwt/core/client/interop/JsPropertyTest.java +++ b/user/test/com/google/gwt/core/client/interop/JsPropertyTest.java
@@ -17,12 +17,15 @@ import static com.google.gwt.core.client.ScriptInjector.TOP_WINDOW; +import static jsinterop.annotations.JsPackage.GLOBAL; + import com.google.gwt.core.client.JavaScriptObject; import com.google.gwt.core.client.ScriptInjector; -import com.google.gwt.core.client.js.JsProperty; -import com.google.gwt.core.client.js.JsType; import com.google.gwt.junit.client.GWTTestCase; +import jsinterop.annotations.JsProperty; +import jsinterop.annotations.JsType; + /** * Tests JsProperty functionality. */ @@ -138,7 +141,7 @@ assertEquals(12 + SET_X, obj.x); } - @JsType(prototype = "JsPropertyTest_MyNativeJsType") + @JsType(isNative = true, namespace = GLOBAL, name = "JsPropertyTest_MyNativeJsType") static class MyNativeJsType { public static int staticX; @@ -196,7 +199,7 @@ assertEquals(52, mc.getY()); } - @JsType(prototype = "JsPropertyTest_MyNativeJsTypeInterface") + @JsType(isNative = true, namespace = GLOBAL, name = "JsPropertyTest_MyNativeJsTypeInterface") interface MyNativeJsTypeInterface { @JsProperty int getX(); @@ -318,7 +321,7 @@ assertEquals(5 + SET_PARENT_X, ((OtherAccidentalImplementer) object).x); } - @JsType + @JsType(isNative = true) interface MyJsTypeInterfaceWithProtectedNames { String var(); @@ -341,7 +344,7 @@ assertEquals("import2", obj.getImport()); } - @JsType + @JsType(isNative = true) interface JsTypeIsProperty { @JsProperty @@ -361,7 +364,7 @@ assertFalse(object.isX()); } - @JsType + @JsType(isNative = true) interface JsTypeGetProperty { @JsProperty
diff --git a/user/test/com/google/gwt/core/client/interop/JsTypeArrayTest.java b/user/test/com/google/gwt/core/client/interop/JsTypeArrayTest.java index eb64663..b938e95 100644 --- a/user/test/com/google/gwt/core/client/interop/JsTypeArrayTest.java +++ b/user/test/com/google/gwt/core/client/interop/JsTypeArrayTest.java
@@ -15,10 +15,11 @@ */ package com.google.gwt.core.client.interop; -import com.google.gwt.core.client.js.JsProperty; -import com.google.gwt.core.client.js.JsType; import com.google.gwt.junit.client.GWTTestCase; +import jsinterop.annotations.JsProperty; +import jsinterop.annotations.JsType; + /** * Tests JsType with array functionality. */ @@ -31,7 +32,7 @@ /* MAKE SURE EACH TYPE IS ONLY USED ONCE PER TEST CASE */ - @JsType + @JsType(isNative = true) interface SimpleJsTypeReturnFromNative { } public void testJsTypeArray_returnFromNative() { @@ -44,21 +45,21 @@ return [{}, {}]; }-*/; - @JsType - interface SimpleJsTypeReturnFromNativeWithACall { + @JsType(isNative = true) + interface SimpleJsTypeReturnFromNativeWithAMethod { @JsProperty int getId(); } public void testJsTypeArray_returnFromNativeWithACall() { - SimpleJsTypeReturnFromNativeWithACall[] array = returnJsTypeWithIdsFromNative(); + SimpleJsTypeReturnFromNativeWithAMethod[] array = returnJsTypeWithIdsFromNative(); assertEquals(2, array[1].getId()); } - private native SimpleJsTypeReturnFromNativeWithACall[] returnJsTypeWithIdsFromNative() /*-{ + private native SimpleJsTypeReturnFromNativeWithAMethod[] returnJsTypeWithIdsFromNative() /*-{ return [{id:1}, {id:2}]; }-*/; - @JsType + @JsType(isNative = true) interface SimpleJsTypeAsAField { } @JsType @@ -79,7 +80,7 @@ holder.arrayField = [{}, {}]; }-*/; - @JsType + @JsType(isNative = true) interface SimpleJsTypeAsAParam { } @JsType @@ -103,7 +104,7 @@ holder.setArrayParam([{}, {}]); }-*/; - @JsType + @JsType(isNative = true) interface SimpleJsTypeReturnForMultiDimArray { @JsProperty int getId(); }
diff --git a/user/test/com/google/gwt/core/client/interop/JsTypeRunnable.java b/user/test/com/google/gwt/core/client/interop/JsTypeRunnable.java index 21bb672..316bf05 100644 --- a/user/test/com/google/gwt/core/client/interop/JsTypeRunnable.java +++ b/user/test/com/google/gwt/core/client/interop/JsTypeRunnable.java
@@ -15,7 +15,7 @@ */ package com.google.gwt.core.client.interop; -import com.google.gwt.core.client.js.JsType; +import jsinterop.annotations.JsType; /** * Causes the run() function of any implementor to be exported.
diff --git a/user/test/com/google/gwt/core/client/interop/JsTypeTest.java b/user/test/com/google/gwt/core/client/interop/JsTypeTest.java index 14d9ae9..2173649 100644 --- a/user/test/com/google/gwt/core/client/interop/JsTypeTest.java +++ b/user/test/com/google/gwt/core/client/interop/JsTypeTest.java
@@ -17,15 +17,19 @@ import static com.google.gwt.core.client.ScriptInjector.TOP_WINDOW; +import static jsinterop.annotations.JsPackage.GLOBAL; + import com.google.gwt.core.client.JavaScriptObject; import com.google.gwt.core.client.ScriptInjector; -import com.google.gwt.core.client.js.JsFunction; -import com.google.gwt.core.client.js.JsProperty; -import com.google.gwt.core.client.js.JsType; import com.google.gwt.junit.client.GWTTestCase; import java.util.Iterator; +import jsinterop.annotations.JsFunction; +import jsinterop.annotations.JsPackage; +import jsinterop.annotations.JsProperty; +import jsinterop.annotations.JsType; + /** * Tests JsType functionality. */ @@ -38,8 +42,7 @@ @Override protected void gwtSetUp() throws Exception { - ScriptInjector.fromString("function JsTypeTest_MyNativeJsTypeInterface() {}\n" - + "function JsTypeTest_MyNativeJsType() {}\n" + ScriptInjector.fromString("function JsTypeTest_MyNativeJsType() {}\n" + "JsTypeTest_MyNativeJsType.prototype.sum = " + " function sum(bias) { return this.y + bias; };") .setWindow(TOP_WINDOW).inject(); @@ -123,7 +126,7 @@ PlainParentType plainParentType = new PlainParentType(); RevealedOverrideSubType revealedOverrideSubType = new RevealedOverrideSubType(); - // PlainParentType is neither @JsExport or @JsType and so exports no functions. + // PlainParentType is neither @JsType or @JsType and so exports no functions. assertFalse(hasField(plainParentType, "run")); // RevealedOverrideSubType defines no functions itself, it only inherits them, but it still @@ -141,7 +144,7 @@ assertEquals(100, subclassInterface.publicMethodAlsoExposedAsNonJsMethod()); } - @JsType(prototype = "JsTypeTest_MyNativeJsTypeInterface") + @JsType(isNative = true) interface MyNativeJsTypeInterface { } @@ -150,20 +153,20 @@ public void testCasts() { Object myClass; - assertNotNull(myClass = (ElementLikeJsInterface) createMyNativeJsTypeInterface()); - assertNotNull(myClass = (MyNativeJsTypeInterface) createMyNativeJsTypeInterface()); - assertNotNull(myClass = (HTMLElement) createNativeButton()); + assertNotNull(myClass = (ElementLikeNativeInterface) createMyNativeJsType()); + assertNotNull(myClass = (MyNativeJsTypeInterface) createMyNativeJsType()); + assertNotNull(myClass = (HTMLElementConcreteNativeJsType) createNativeButton()); try { - assertNotNull(myClass = (HTMLElement) createMyNativeJsTypeInterface()); + assertNotNull(myClass = (HTMLElementConcreteNativeJsType) createMyNativeJsType()); fail(); } catch (ClassCastException cce) { // Expected. } // Test cross cast for native types - Object nativeButton1 = (HTMLElement) createNativeButton(); - Object nativeButton2 = (HTMLAnotherElement) nativeButton1; + Object nativeButton1 = (HTMLElementConcreteNativeJsType) createNativeButton(); + Object nativeButton2 = (HTMLElementAnotherConcreteNativeJsType) nativeButton1; /* * If the optimizations are turned on, it is possible for the compiler to dead-strip the @@ -177,25 +180,32 @@ /** * A test class marked with JsType but isn't referenced from any Java code except instanceof. */ - @JsType(prototype = "JsTypeTest_MyNativeJsTypeInterface") - public interface MyJsInterfaceWithPrototypeAndOnlyInstanceofReference { + @JsType(isNative = true) + public interface MyNativeJsTypeInterfaceAndOnlyInstanceofReference { + } + + /** + * A test class marked with JsType but isn't referenced from any Java code except instanceof. + */ + @JsType(isNative = true, namespace = JsPackage.GLOBAL, name = "JsTypeTest_MyNativeJsType") + public static class AliasToMyNativeJsTypeWithOnlyInstanceofReference { } public void testInstanceOf_jsoWithProto() { - Object object = createMyNativeJsTypeInterface(); + Object object = createMyNativeJsType(); assertTrue(object instanceof Object); - assertFalse(object instanceof HTMLAnotherElement); + assertFalse(object instanceof HTMLElementAnotherConcreteNativeJsType); assertFalse(object instanceof HTMLButtonElement); - assertFalse(object instanceof HTMLElement); + assertFalse(object instanceof HTMLElementConcreteNativeJsType); assertFalse(object instanceof Iterator); assertTrue(object instanceof MyNativeJsTypeInterface); assertFalse(object instanceof MyNativeJsTypeInterfaceImpl); - assertTrue(object instanceof ElementLikeJsInterface); - assertFalse(object instanceof ElementLikeJsInterfaceImpl); - assertTrue(object instanceof MyJsInterfaceWithOnlyInstanceofReference); - assertTrue(object instanceof MyJsInterfaceWithPrototypeAndOnlyInstanceofReference); - assertFalse(object instanceof MyJsClassWithPrototypeAndOnlyInstanceofReference); + assertTrue(object instanceof ElementLikeNativeInterface); + assertFalse(object instanceof ElementLikeNativeInterfaceImpl); + assertFalse(object instanceof MyJsInterfaceWithOnlyInstanceofReference); + assertTrue(object instanceof MyNativeJsTypeInterfaceAndOnlyInstanceofReference); + assertTrue(object instanceof AliasToMyNativeJsTypeWithOnlyInstanceofReference); assertFalse(object instanceof ConcreteJsType); } @@ -203,17 +213,17 @@ Object object = JavaScriptObject.createObject(); assertTrue(object instanceof Object); - assertFalse(object instanceof HTMLAnotherElement); + assertFalse(object instanceof HTMLElementAnotherConcreteNativeJsType); assertFalse(object instanceof HTMLButtonElement); - assertFalse(object instanceof HTMLElement); + assertFalse(object instanceof HTMLElementConcreteNativeJsType); assertFalse(object instanceof Iterator); - assertFalse(object instanceof MyNativeJsTypeInterface); + assertTrue(object instanceof MyNativeJsTypeInterface); assertFalse(object instanceof MyNativeJsTypeInterfaceImpl); - assertTrue(object instanceof ElementLikeJsInterface); - assertFalse(object instanceof ElementLikeJsInterfaceImpl); - assertTrue(object instanceof MyJsInterfaceWithOnlyInstanceofReference); - assertFalse(object instanceof MyJsInterfaceWithPrototypeAndOnlyInstanceofReference); - assertFalse(object instanceof MyJsClassWithPrototypeAndOnlyInstanceofReference); + assertTrue(object instanceof ElementLikeNativeInterface); + assertFalse(object instanceof ElementLikeNativeInterfaceImpl); + assertFalse(object instanceof MyJsInterfaceWithOnlyInstanceofReference); + assertTrue(object instanceof MyNativeJsTypeInterfaceAndOnlyInstanceofReference); + assertFalse(object instanceof AliasToMyNativeJsTypeWithOnlyInstanceofReference); assertFalse(object instanceof ConcreteJsType); } @@ -221,36 +231,36 @@ Object object = createNativeButton(); assertTrue(object instanceof Object); - assertTrue(object instanceof HTMLAnotherElement); + assertTrue(object instanceof HTMLElementAnotherConcreteNativeJsType); assertTrue(object instanceof HTMLButtonElement); - assertTrue(object instanceof HTMLElement); + assertTrue(object instanceof HTMLElementConcreteNativeJsType); assertFalse(object instanceof Iterator); - assertFalse(object instanceof MyNativeJsTypeInterface); + assertTrue(object instanceof MyNativeJsTypeInterface); assertFalse(object instanceof MyNativeJsTypeInterfaceImpl); - assertTrue(object instanceof ElementLikeJsInterface); - assertFalse(object instanceof ElementLikeJsInterfaceImpl); - assertTrue(object instanceof MyJsInterfaceWithOnlyInstanceofReference); - assertFalse(object instanceof MyJsInterfaceWithPrototypeAndOnlyInstanceofReference); - assertTrue(object instanceof MyJsClassWithPrototypeAndOnlyInstanceofReference); + assertTrue(object instanceof ElementLikeNativeInterface); + assertFalse(object instanceof ElementLikeNativeInterfaceImpl); + assertFalse(object instanceof MyJsInterfaceWithOnlyInstanceofReference); + assertTrue(object instanceof MyNativeJsTypeInterfaceAndOnlyInstanceofReference); + assertFalse(object instanceof AliasToMyNativeJsTypeWithOnlyInstanceofReference); assertFalse(object instanceof ConcreteJsType); } public void testInstanceOf_implementsJsType() { // Foils type tightening. - Object object = alwaysTrue() ? new ElementLikeJsInterfaceImpl() : new Object(); + Object object = alwaysTrue() ? new ElementLikeNativeInterfaceImpl() : new Object(); assertTrue(object instanceof Object); - assertFalse(object instanceof HTMLAnotherElement); + assertFalse(object instanceof HTMLElementAnotherConcreteNativeJsType); assertFalse(object instanceof HTMLButtonElement); - assertFalse(object instanceof HTMLElement); + assertFalse(object instanceof HTMLElementConcreteNativeJsType); assertFalse(object instanceof Iterator); - assertFalse(object instanceof MyNativeJsTypeInterface); + assertTrue(object instanceof MyNativeJsTypeInterface); assertFalse(object instanceof MyNativeJsTypeInterfaceImpl); - assertTrue(object instanceof ElementLikeJsInterface); - assertTrue(object instanceof ElementLikeJsInterfaceImpl); + assertTrue(object instanceof ElementLikeNativeInterface); + assertTrue(object instanceof ElementLikeNativeInterfaceImpl); assertFalse(object instanceof MyJsInterfaceWithOnlyInstanceofReference); - assertFalse(object instanceof MyJsInterfaceWithPrototypeAndOnlyInstanceofReference); - assertFalse(object instanceof MyJsClassWithPrototypeAndOnlyInstanceofReference); + assertTrue(object instanceof MyNativeJsTypeInterfaceAndOnlyInstanceofReference); + assertFalse(object instanceof AliasToMyNativeJsTypeWithOnlyInstanceofReference); assertFalse(object instanceof ConcreteJsType); } @@ -259,17 +269,17 @@ Object object = alwaysTrue() ? new MyNativeJsTypeInterfaceImpl() : new Object(); assertTrue(object instanceof Object); - assertFalse(object instanceof HTMLAnotherElement); + assertFalse(object instanceof HTMLElementAnotherConcreteNativeJsType); assertFalse(object instanceof HTMLButtonElement); - assertFalse(object instanceof HTMLElement); + assertFalse(object instanceof HTMLElementConcreteNativeJsType); assertFalse(object instanceof Iterator); assertTrue(object instanceof MyNativeJsTypeInterface); assertTrue(object instanceof MyNativeJsTypeInterfaceImpl); - assertFalse(object instanceof ElementLikeJsInterface); - assertFalse(object instanceof ElementLikeJsInterfaceImpl); + assertTrue(object instanceof ElementLikeNativeInterface); + assertFalse(object instanceof ElementLikeNativeInterfaceImpl); assertFalse(object instanceof MyJsInterfaceWithOnlyInstanceofReference); - assertFalse(object instanceof MyJsInterfaceWithPrototypeAndOnlyInstanceofReference); - assertFalse(object instanceof MyJsClassWithPrototypeAndOnlyInstanceofReference); + assertTrue(object instanceof MyNativeJsTypeInterfaceAndOnlyInstanceofReference); + assertFalse(object instanceof AliasToMyNativeJsTypeWithOnlyInstanceofReference); assertFalse(object instanceof ConcreteJsType); } @@ -278,17 +288,17 @@ Object object = alwaysTrue() ? new ConcreteJsType() : new Object(); assertTrue(object instanceof Object); - assertFalse(object instanceof HTMLAnotherElement); + assertFalse(object instanceof HTMLElementAnotherConcreteNativeJsType); assertFalse(object instanceof HTMLButtonElement); - assertFalse(object instanceof HTMLElement); + assertFalse(object instanceof HTMLElementConcreteNativeJsType); assertFalse(object instanceof Iterator); - assertFalse(object instanceof MyNativeJsTypeInterface); + assertTrue(object instanceof MyNativeJsTypeInterface); assertFalse(object instanceof MyNativeJsTypeInterfaceImpl); - assertFalse(object instanceof ElementLikeJsInterface); - assertFalse(object instanceof ElementLikeJsInterfaceImpl); + assertTrue(object instanceof ElementLikeNativeInterface); + assertFalse(object instanceof ElementLikeNativeInterfaceImpl); assertFalse(object instanceof MyJsInterfaceWithOnlyInstanceofReference); - assertFalse(object instanceof MyJsInterfaceWithPrototypeAndOnlyInstanceofReference); - assertFalse(object instanceof MyJsClassWithPrototypeAndOnlyInstanceofReference); + assertTrue(object instanceof MyNativeJsTypeInterfaceAndOnlyInstanceofReference); + assertFalse(object instanceof AliasToMyNativeJsTypeWithOnlyInstanceofReference); assertTrue(object instanceof ConcreteJsType); } @@ -297,21 +307,21 @@ Object object = alwaysTrue() ? new MyCustomHtmlButtonWithIterator() : new Object(); assertTrue(object instanceof Object); - assertTrue(object instanceof HTMLAnotherElement); + assertTrue(object instanceof HTMLElementAnotherConcreteNativeJsType); assertTrue(object instanceof HTMLButtonElement); - assertTrue(object instanceof HTMLElement); + assertTrue(object instanceof HTMLElementConcreteNativeJsType); assertTrue(object instanceof Iterable); - assertFalse(object instanceof MyNativeJsTypeInterface); + assertTrue(object instanceof MyNativeJsTypeInterface); assertFalse(object instanceof MyNativeJsTypeInterfaceImpl); - assertFalse(object instanceof ElementLikeJsInterface); - assertFalse(object instanceof ElementLikeJsInterfaceImpl); + assertTrue(object instanceof ElementLikeNativeInterface); + assertFalse(object instanceof ElementLikeNativeInterfaceImpl); assertFalse(object instanceof MyJsInterfaceWithOnlyInstanceofReference); - assertFalse(object instanceof MyJsInterfaceWithPrototypeAndOnlyInstanceofReference); - assertTrue(object instanceof MyJsClassWithPrototypeAndOnlyInstanceofReference); + assertTrue(object instanceof MyNativeJsTypeInterfaceAndOnlyInstanceofReference); + assertFalse(object instanceof AliasToMyNativeJsTypeWithOnlyInstanceofReference); assertFalse(object instanceof ConcreteJsType); } - @JsType(prototype = "JsTypeTest_MyNativeJsType") + @JsType(isNative = true, namespace = GLOBAL, name = "JsTypeTest_MyNativeJsType") static class MyNativeJsType { @JsProperty public native int getY(); @@ -334,18 +344,18 @@ assertTrue(myNativeJsTypeSubclass instanceof MyNativeJsTypeSubclass); } - @JsType(prototype = "testfoo.bar.MyNativeType") - interface MyNamespacedJsInterface { + @JsType(isNative = true, namespace = "testfoo.bar") + static class MyNamespacedNativeJsType { } - public void testInstanceOf_withNameSpace() { + public void _testInstanceOf_withNameSpace() { Object obj1 = createMyNamespacedJsInterface(); Object obj2 = createMyWrongNamespacedJsInterface(); - assertTrue(obj1 instanceof MyNamespacedJsInterface); - assertFalse(obj1 instanceof MyNativeJsTypeInterface); + assertTrue(obj1 instanceof MyNamespacedNativeJsType); + assertFalse(obj1 instanceof MyNativeJsType); - assertFalse(obj2 instanceof MyNamespacedJsInterface); + assertFalse(obj2 instanceof MyNamespacedNativeJsType); } public void testEnumeration() { @@ -378,20 +388,20 @@ return $doc.createElement("button"); }-*/; - private static native Object createMyNativeJsTypeInterface() /*-{ - return new $wnd.JsTypeTest_MyNativeJsTypeInterface(); + private static native Object createMyNativeJsType() /*-{ + return new $wnd.JsTypeTest_MyNativeJsType(); }-*/; private static native Object createMyNamespacedJsInterface() /*-{ $wnd.testfoo = {}; $wnd.testfoo.bar = {}; - $wnd.testfoo.bar.MyNativeType = function(){}; - return new $wnd.testfoo.bar.MyNativeType(); + $wnd.testfoo.bar.MyNamespacedNativeJsType = function(){}; + return new $wnd.testfoo.bar.MyNamespacedNativeJsType(); }-*/; private static native Object createMyWrongNamespacedJsInterface() /*-{ - $wnd["testfoo.bar.MyNativeType"] = function(){}; - return new $wnd['testfoo.bar.MyNativeType'](); + $wnd["testfoo.bar.MyNamespacedNativeJsType"] = function(){}; + return new $wnd['testfoo.bar.MyNamespacedNativeJsType'](); }-*/; private static native boolean isUndefined(int value) /*-{ @@ -430,13 +440,13 @@ static class SimpleJsTypeFieldClass implements SimpleJsTypeFieldInterface { } - @JsType static class SimpleJsTypeWithField { + @JsProperty public SimpleJsTypeFieldInterface someField; } public void testJsTypeField() { - new SimpleJsTypeFieldClass(); + assertTrue(new SimpleJsTypeFieldClass() != new SimpleJsTypeFieldClass()); SimpleJsTypeWithField holder = new SimpleJsTypeWithField(); fillJsTypeField(holder); SimpleJsTypeFieldInterface someField = holder.someField; @@ -447,7 +457,7 @@ jstype.someField = {}; }-*/; - @JsType + @JsType(isNative = true) interface InterfaceWithSingleJavaConcrete { int m(); }
diff --git a/user/test/com/google/gwt/core/client/interop/MyClassExportsConstructor.java b/user/test/com/google/gwt/core/client/interop/MyClassExportsConstructor.java index d7052af..9618dfc 100644 --- a/user/test/com/google/gwt/core/client/interop/MyClassExportsConstructor.java +++ b/user/test/com/google/gwt/core/client/interop/MyClassExportsConstructor.java
@@ -15,15 +15,15 @@ */ package com.google.gwt.core.client.interop; -import com.google.gwt.core.client.js.JsExport; +import jsinterop.annotations.JsConstructor; /** - * A test class that exhibits a variety of @JsExports on constructors. + * A test class that exports a constructor. */ public class MyClassExportsConstructor { private int a; - @JsExport + @JsConstructor public MyClassExportsConstructor(int a) { this.a = a; }
diff --git a/user/test/com/google/gwt/core/client/interop/MyClassExportsMethod.java b/user/test/com/google/gwt/core/client/interop/MyClassExportsMethod.java index 921b3aa..95e3989 100644 --- a/user/test/com/google/gwt/core/client/interop/MyClassExportsMethod.java +++ b/user/test/com/google/gwt/core/client/interop/MyClassExportsMethod.java
@@ -15,13 +15,12 @@ */ package com.google.gwt.core.client.interop; -import static com.google.gwt.core.client.js.JsNamespace.GLOBAL; +import static jsinterop.annotations.JsPackage.GLOBAL; -import com.google.gwt.core.client.js.JsExport; -import com.google.gwt.core.client.js.JsNamespace; +import jsinterop.annotations.JsMethod; /** - * A test class that exhibits a variety of @JsExports. + * A test class that exhibits a variety of @JsTypes. */ public class MyClassExportsMethod { public static boolean calledFromCallMe1 = false; @@ -30,30 +29,27 @@ public static boolean calledFromCallMe4 = false; public static boolean calledFromCallMe5 = false; - @JsNamespace(GLOBAL) - @JsExport("exported") + @JsMethod(namespace = GLOBAL, name = "exported") public static void callMe1() { calledFromCallMe1 = true; } - @JsNamespace("exportNamespace") - @JsExport("exported") + @JsMethod(namespace = "exportNamespace", name = "exported") public static void callMe2(int i) { calledFromCallMe2 = true; } - @JsNamespace("exportNamespace") - @JsExport + @JsMethod(namespace = "exportNamespace") public static void callMe3(float f) { calledFromCallMe3 = true; } - @JsExport("exported") + @JsMethod(name = "exported") public static void callMe4(boolean f) { calledFromCallMe4 = true; } - @JsExport + @JsMethod public static void callMe5(byte f) { calledFromCallMe5 = true; } @@ -83,21 +79,18 @@ } // There should be no calls to this method from java. - @JsNamespace(GLOBAL) - @JsExport("callBar") + @JsMethod(namespace = GLOBAL) public static void callBar(A a) { a.bar(); } // There should be a call to this method from java. - @JsNamespace(GLOBAL) - @JsExport("callFoo") + @JsMethod(namespace = GLOBAL) public static void callFoo(A a) { a.foo(); } - @JsNamespace(GLOBAL) - @JsExport("newA") + @JsMethod(namespace = GLOBAL) public static A newA() { return new A(); }
diff --git a/user/test/com/google/gwt/core/client/interop/MyClassExportsMethodWithClinit.java b/user/test/com/google/gwt/core/client/interop/MyClassExportsMethodWithClinit.java index 99694d9..d378eab 100644 --- a/user/test/com/google/gwt/core/client/interop/MyClassExportsMethodWithClinit.java +++ b/user/test/com/google/gwt/core/client/interop/MyClassExportsMethodWithClinit.java
@@ -17,7 +17,7 @@ import static junit.framework.Assert.assertEquals; -import com.google.gwt.core.client.js.JsExport; +import jsinterop.annotations.JsConstructor; class MyClassExportsMethodWithClinit { @@ -30,7 +30,7 @@ } } - @JsExport + @JsConstructor public MyClassExportsMethodWithClinit() { // ensure clinit() is called even when invoked from JS assertEquals(42, magicNumber);
diff --git a/user/test/com/google/gwt/core/client/interop/MyClassExportsMethodWithoutReference.java b/user/test/com/google/gwt/core/client/interop/MyClassExportsMethodWithoutReference.java index 27ab623..a3a534f 100644 --- a/user/test/com/google/gwt/core/client/interop/MyClassExportsMethodWithoutReference.java +++ b/user/test/com/google/gwt/core/client/interop/MyClassExportsMethodWithoutReference.java
@@ -15,13 +15,13 @@ */ package com.google.gwt.core.client.interop; -import com.google.gwt.core.client.js.JsExport; +import jsinterop.annotations.JsMethod; /** * A test class exports a method but isn't referenced from any Java code. */ public class MyClassExportsMethodWithoutReference { - @JsExport("onlyCalledFromJs") + @JsMethod(name = "onlyCalledFromJs") public static int callMe() { return 42; }
diff --git a/user/test/com/google/gwt/core/client/interop/MyClassWithEmptyNamespace.java b/user/test/com/google/gwt/core/client/interop/MyClassWithEmptyNamespace.java index 77c5db2..560d787 100644 --- a/user/test/com/google/gwt/core/client/interop/MyClassWithEmptyNamespace.java +++ b/user/test/com/google/gwt/core/client/interop/MyClassWithEmptyNamespace.java
@@ -15,17 +15,18 @@ */ package com.google.gwt.core.client.interop; -import com.google.gwt.core.client.js.JsExport; -import com.google.gwt.core.client.js.JsNamespace; +import jsinterop.annotations.JsConstructor; +import jsinterop.annotations.JsProperty; +import jsinterop.annotations.JsType; /** * Class with empty namespace. */ -@JsNamespace("") +@JsType(namespace = "") public class MyClassWithEmptyNamespace { - @JsExport + @JsProperty public static final int DAN = 82; - @JsExport + @JsConstructor public MyClassWithEmptyNamespace() { } }
diff --git a/user/test/com/google/gwt/core/client/interop/MyClassWithNamespace.java b/user/test/com/google/gwt/core/client/interop/MyClassWithNamespace.java index ab4fa57..4ddc0f7 100644 --- a/user/test/com/google/gwt/core/client/interop/MyClassWithNamespace.java +++ b/user/test/com/google/gwt/core/client/interop/MyClassWithNamespace.java
@@ -15,14 +15,14 @@ */ package com.google.gwt.core.client.interop; -import com.google.gwt.core.client.js.JsExport; -import com.google.gwt.core.client.js.JsNamespace; +import jsinterop.annotations.JsProperty; +import jsinterop.annotations.JsType; /** * Class with a namespace. */ -@JsNamespace("foobaz") +@JsType(namespace = "foobaz") public class MyClassWithNamespace { - @JsExport + @JsProperty public static final int BAZ = 99; }
diff --git a/user/test/com/google/gwt/core/client/interop/MyClassWithNestedExportedClass.java b/user/test/com/google/gwt/core/client/interop/MyClassWithNestedExportedClass.java index 6349a11..2c13781 100644 --- a/user/test/com/google/gwt/core/client/interop/MyClassWithNestedExportedClass.java +++ b/user/test/com/google/gwt/core/client/interop/MyClassWithNestedExportedClass.java
@@ -15,8 +15,7 @@ */ package com.google.gwt.core.client.interop; -import com.google.gwt.core.client.js.JsExport; -import com.google.gwt.core.client.js.JsNamespace; +import jsinterop.annotations.JsType; /** * Class with a nested exported class. @@ -25,7 +24,7 @@ /** * Exported nested class. */ - @JsExport + @JsType public static class Inner { public static final int WOO = 99; } @@ -33,8 +32,7 @@ /** * Exported nested class with namespace. */ - @JsNamespace("zoo") - @JsExport + @JsType(namespace = "zoo") public static class InnerWithNamespace { public static final int WOOZ = 999; } @@ -42,7 +40,7 @@ /** * Exported nested enum. */ - @JsExport + @JsType public enum InnerEnum { AA, BB; }
diff --git a/user/test/com/google/gwt/core/client/interop/MyEnumWithJsType.java b/user/test/com/google/gwt/core/client/interop/MyEnumWithJsType.java index 7cc67e8..6cce259 100644 --- a/user/test/com/google/gwt/core/client/interop/MyEnumWithJsType.java +++ b/user/test/com/google/gwt/core/client/interop/MyEnumWithJsType.java
@@ -15,7 +15,7 @@ */ package com.google.gwt.core.client.interop; -import com.google.gwt.core.client.js.JsType; +import jsinterop.annotations.JsType; /** * This enum is annotated as a @JsType.
diff --git a/user/test/com/google/gwt/core/client/interop/MyEnumWithSubclassGen.java b/user/test/com/google/gwt/core/client/interop/MyEnumWithSubclassGen.java index dccda4d..36f5e9c 100644 --- a/user/test/com/google/gwt/core/client/interop/MyEnumWithSubclassGen.java +++ b/user/test/com/google/gwt/core/client/interop/MyEnumWithSubclassGen.java
@@ -15,13 +15,11 @@ */ package com.google.gwt.core.client.interop; -import com.google.gwt.core.client.js.JsExport; -import com.google.gwt.core.client.js.JsType; +import jsinterop.annotations.JsType; /** - * This enum is annotated as @JsExport and has enumerations which cause subclass generation. + * This enum is annotated exported and has enumerations which cause subclass generation. */ -@JsExport @JsType public enum MyEnumWithSubclassGen {
diff --git a/user/test/com/google/gwt/core/client/interop/MyExportedClass.java b/user/test/com/google/gwt/core/client/interop/MyExportedClass.java index 9c2d613..13e10f7 100644 --- a/user/test/com/google/gwt/core/client/interop/MyExportedClass.java +++ b/user/test/com/google/gwt/core/client/interop/MyExportedClass.java
@@ -15,13 +15,12 @@ */ package com.google.gwt.core.client.interop; -import com.google.gwt.core.client.js.JsExport; -import com.google.gwt.core.client.js.JsType; +import jsinterop.annotations.JsType; /** - * A test class that is annotated by @JsExport. + * A test class that is exported. */ -@JsExport +@JsType public class MyExportedClass { public static final int EXPORTED_1 = 100;
diff --git a/user/test/com/google/gwt/core/client/interop/MyExportedClassWithImplicitConstructor.java b/user/test/com/google/gwt/core/client/interop/MyExportedClassWithImplicitConstructor.java index f74c39f..66894a8 100644 --- a/user/test/com/google/gwt/core/client/interop/MyExportedClassWithImplicitConstructor.java +++ b/user/test/com/google/gwt/core/client/interop/MyExportedClassWithImplicitConstructor.java
@@ -15,12 +15,12 @@ */ package com.google.gwt.core.client.interop; -import com.google.gwt.core.client.js.JsExport; +import jsinterop.annotations.JsType; /** - * A class which only has implicit default constructor and is annotated by "JsExport". + * A class which only has implicit default constructor and is exported. * Its default constructor is exported automatically. */ -@JsExport +@JsType public class MyExportedClassWithImplicitConstructor { }
diff --git a/user/test/com/google/gwt/core/client/interop/MyExportedClassWithNamespace.java b/user/test/com/google/gwt/core/client/interop/MyExportedClassWithNamespace.java index 16b9713..f29e5b4 100644 --- a/user/test/com/google/gwt/core/client/interop/MyExportedClassWithNamespace.java +++ b/user/test/com/google/gwt/core/client/interop/MyExportedClassWithNamespace.java
@@ -15,14 +15,12 @@ */ package com.google.gwt.core.client.interop; -import com.google.gwt.core.client.js.JsExport; -import com.google.gwt.core.client.js.JsNamespace; +import jsinterop.annotations.JsType; /** * Test namespace on a class. */ -@JsNamespace("foo") -@JsExport +@JsType(namespace = "foo") public class MyExportedClassWithNamespace { /** * Exported field.
diff --git a/user/test/com/google/gwt/core/client/interop/MyExportedClassWithNamespaceAndName.java b/user/test/com/google/gwt/core/client/interop/MyExportedClassWithNamespaceAndName.java index 3d363be..40bc295 100644 --- a/user/test/com/google/gwt/core/client/interop/MyExportedClassWithNamespaceAndName.java +++ b/user/test/com/google/gwt/core/client/interop/MyExportedClassWithNamespaceAndName.java
@@ -15,14 +15,12 @@ */ package com.google.gwt.core.client.interop; -import com.google.gwt.core.client.js.JsExport; -import com.google.gwt.core.client.js.JsNamespace; +import jsinterop.annotations.JsType; /** * Test namespace on a class. */ -@JsNamespace("foo") -@JsExport("boo") +@JsType(namespace = "foo", name = "boo") public class MyExportedClassWithNamespaceAndName { /** * Exported field.
diff --git a/user/test/com/google/gwt/core/client/interop/MyExportedClassWithNestedExportedClass.java b/user/test/com/google/gwt/core/client/interop/MyExportedClassWithNestedExportedClass.java index 5e77c60..626a073 100644 --- a/user/test/com/google/gwt/core/client/interop/MyExportedClassWithNestedExportedClass.java +++ b/user/test/com/google/gwt/core/client/interop/MyExportedClassWithNestedExportedClass.java
@@ -15,17 +15,17 @@ */ package com.google.gwt.core.client.interop; -import com.google.gwt.core.client.js.JsExport; +import jsinterop.annotations.JsType; /** * Exported class with a nested exported class. */ -@JsExport("Bloo") +@JsType(name = "Bloo") public class MyExportedClassWithNestedExportedClass { /** * Exported nested class. */ - @JsExport + @JsType public static class Inner { public static final int LOO = 99; }
diff --git a/user/test/com/google/gwt/core/client/interop/MyExportedClassWithPackageNamespace.java b/user/test/com/google/gwt/core/client/interop/MyExportedClassWithPackageNamespace.java index 5841163..255afae 100644 --- a/user/test/com/google/gwt/core/client/interop/MyExportedClassWithPackageNamespace.java +++ b/user/test/com/google/gwt/core/client/interop/MyExportedClassWithPackageNamespace.java
@@ -15,12 +15,12 @@ */ package com.google.gwt.core.client.interop; -import com.google.gwt.core.client.js.JsExport; +import jsinterop.annotations.JsType; /** * An exported class. */ -@JsExport // Uses the namespace from the package +@JsType // Uses the namespace from the package public class MyExportedClassWithPackageNamespace { /** * Exported field.
diff --git a/user/test/com/google/gwt/core/client/interop/MyExportedEnum.java b/user/test/com/google/gwt/core/client/interop/MyExportedEnum.java index 9cffb76..e99cc7c 100644 --- a/user/test/com/google/gwt/core/client/interop/MyExportedEnum.java +++ b/user/test/com/google/gwt/core/client/interop/MyExportedEnum.java
@@ -15,12 +15,12 @@ */ package com.google.gwt.core.client.interop; -import com.google.gwt.core.client.js.JsExport; +import jsinterop.annotations.JsType; /** - * This enum is annotated as @JsExport. + * This enum is annotated as @JsType. */ -@JsExport +@JsType public enum MyExportedEnum { TEST1, TEST2; @@ -30,8 +30,8 @@ public static final int publicStaticFinalField = 1; - // explicitly marked @JsExport fields must be final - // but ones that are in a @JsExported class don't need to be final + // explicitly marked @JsProperty fields must be final + // but ones that are in an exported class doesn't need to be final public static int publicStaticField = 2; public final int publicFinalField = 3;
diff --git a/user/test/com/google/gwt/core/client/interop/MyJsClassWithPrototypeAndOnlyInstanceofReference.java b/user/test/com/google/gwt/core/client/interop/MyJsClassWithPrototypeAndOnlyInstanceofReference.java deleted file mode 100644 index d4a013d..0000000 --- a/user/test/com/google/gwt/core/client/interop/MyJsClassWithPrototypeAndOnlyInstanceofReference.java +++ /dev/null
@@ -1,25 +0,0 @@ -/* - * Copyright 2015 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ -package com.google.gwt.core.client.interop; - -import com.google.gwt.core.client.js.JsType; - -/** - * A test class marked with JsType but isn't referenced from any Java code except instanceof. - */ -@JsType(prototype = "HTMLButtonElement") -public class MyJsClassWithPrototypeAndOnlyInstanceofReference { -}
diff --git a/user/test/com/google/gwt/core/client/interop/MyJsFunctionIdentityInterface.java b/user/test/com/google/gwt/core/client/interop/MyJsFunctionIdentityInterface.java index 47cb2a7..616ecdd 100644 --- a/user/test/com/google/gwt/core/client/interop/MyJsFunctionIdentityInterface.java +++ b/user/test/com/google/gwt/core/client/interop/MyJsFunctionIdentityInterface.java
@@ -15,7 +15,7 @@ */ package com.google.gwt.core.client.interop; -import com.google.gwt.core.client.js.JsFunction; +import jsinterop.annotations.JsFunction; /** * A JsFunction interface, which is used to test the SAM function that returns this.
diff --git a/user/test/com/google/gwt/core/client/interop/MyJsFunctionInterface.java b/user/test/com/google/gwt/core/client/interop/MyJsFunctionInterface.java index 9259272..e1bc958 100644 --- a/user/test/com/google/gwt/core/client/interop/MyJsFunctionInterface.java +++ b/user/test/com/google/gwt/core/client/interop/MyJsFunctionInterface.java
@@ -15,7 +15,7 @@ */ package com.google.gwt.core.client.interop; -import com.google.gwt.core.client.js.JsFunction; +import jsinterop.annotations.JsFunction; /** * A functional interface annotated by JsFunction.
diff --git a/user/test/com/google/gwt/core/client/interop/MyJsFunctionWithOnlyInstanceofReference.java b/user/test/com/google/gwt/core/client/interop/MyJsFunctionWithOnlyInstanceofReference.java index 4c5b951..7cf0369 100644 --- a/user/test/com/google/gwt/core/client/interop/MyJsFunctionWithOnlyInstanceofReference.java +++ b/user/test/com/google/gwt/core/client/interop/MyJsFunctionWithOnlyInstanceofReference.java
@@ -15,7 +15,7 @@ */ package com.google.gwt.core.client.interop; -import com.google.gwt.core.client.js.JsFunction; +import jsinterop.annotations.JsFunction; /** * A functional interface annotated by JsFunction that is only referenced by instanceof.
diff --git a/user/test/com/google/gwt/core/client/interop/MyJsInterfaceWithOnlyInstanceofReference.java b/user/test/com/google/gwt/core/client/interop/MyJsInterfaceWithOnlyInstanceofReference.java index acf2863..60f838b 100644 --- a/user/test/com/google/gwt/core/client/interop/MyJsInterfaceWithOnlyInstanceofReference.java +++ b/user/test/com/google/gwt/core/client/interop/MyJsInterfaceWithOnlyInstanceofReference.java
@@ -15,7 +15,7 @@ */ package com.google.gwt.core.client.interop; -import com.google.gwt.core.client.js.JsType; +import jsinterop.annotations.JsType; /** * A test class marked with JsType but isn't referenced from any Java code except instanceof.
diff --git a/user/test/com/google/gwt/core/client/interop/MyJsTypeThatUsesLongType.java b/user/test/com/google/gwt/core/client/interop/MyJsTypeThatUsesLongType.java index 374e40e..1b2ce5b 100644 --- a/user/test/com/google/gwt/core/client/interop/MyJsTypeThatUsesLongType.java +++ b/user/test/com/google/gwt/core/client/interop/MyJsTypeThatUsesLongType.java
@@ -15,14 +15,12 @@ */ package com.google.gwt.core.client.interop; -import com.google.gwt.core.client.js.JsExport; -import com.google.gwt.core.client.js.JsType; +import jsinterop.annotations.JsType; /** * A class with a method that takes and returns longs. */ @JsType -@JsExport public class MyJsTypeThatUsesLongType { public long addLong(long a, long b) {
diff --git a/user/test/com/google/gwt/core/client/interop/MyOtherJsFunctionInterface.java b/user/test/com/google/gwt/core/client/interop/MyOtherJsFunctionInterface.java index 4a5f6ed..efdb9c8 100644 --- a/user/test/com/google/gwt/core/client/interop/MyOtherJsFunctionInterface.java +++ b/user/test/com/google/gwt/core/client/interop/MyOtherJsFunctionInterface.java
@@ -15,7 +15,7 @@ */ package com.google.gwt.core.client.interop; -import com.google.gwt.core.client.js.JsFunction; +import jsinterop.annotations.JsFunction; /** * A @JsFunction interface.
diff --git a/user/test/com/google/gwt/core/client/interop/StaticInitializerStaticField.java b/user/test/com/google/gwt/core/client/interop/StaticInitializerStaticField.java index 4275644..c15c3e7 100644 --- a/user/test/com/google/gwt/core/client/interop/StaticInitializerStaticField.java +++ b/user/test/com/google/gwt/core/client/interop/StaticInitializerStaticField.java
@@ -15,20 +15,20 @@ */ package com.google.gwt.core.client.interop; -import com.google.gwt.core.client.js.JsExport; -import com.google.gwt.core.client.js.JsNoExport; +import jsinterop.annotations.JsIgnore; +import jsinterop.annotations.JsType; /** * Test access to static field from JS, ensuring clinit run. */ -@JsExport +@JsType public class StaticInitializerStaticField { public static final Object EXPORTED_1 = new Object(); // Not final public static Object EXPORTED_2 = new Object(); - @JsNoExport + @JsIgnore public static final Object NOT_EXPORTED_1 = new Object(); // Not static @@ -46,7 +46,7 @@ /** * Test interface that export a static field. */ - @JsExport + @JsType public interface InterfaceWithField { Object STATIC = new Object(); }
diff --git a/user/test/com/google/gwt/core/client/interop/StaticInitializerStaticMethod.java b/user/test/com/google/gwt/core/client/interop/StaticInitializerStaticMethod.java index 6560684..b6fe3a8 100644 --- a/user/test/com/google/gwt/core/client/interop/StaticInitializerStaticMethod.java +++ b/user/test/com/google/gwt/core/client/interop/StaticInitializerStaticMethod.java
@@ -15,13 +15,13 @@ */ package com.google.gwt.core.client.interop; -import com.google.gwt.core.client.js.JsExport; -import com.google.gwt.core.client.js.JsNoExport; +import jsinterop.annotations.JsIgnore; +import jsinterop.annotations.JsType; /** * Test access to static field from JS through exported static method. */ -@JsExport +@JsType public class StaticInitializerStaticMethod { private static StaticInitializerStaticMethod STATIC = new StaticInitializerStaticMethod(); @@ -29,7 +29,7 @@ return STATIC; } - @JsNoExport + @JsIgnore public static StaticInitializerStaticMethod notExported_1() { return STATIC; }
diff --git a/user/test/com/google/gwt/core/client/interop/StaticInitializerVirtualMethod.java b/user/test/com/google/gwt/core/client/interop/StaticInitializerVirtualMethod.java index 2cd3676..cf5ac6c 100644 --- a/user/test/com/google/gwt/core/client/interop/StaticInitializerVirtualMethod.java +++ b/user/test/com/google/gwt/core/client/interop/StaticInitializerVirtualMethod.java
@@ -15,13 +15,11 @@ */ package com.google.gwt.core.client.interop; -import com.google.gwt.core.client.js.JsExport; -import com.google.gwt.core.client.js.JsType; +import jsinterop.annotations.JsType; /** * Test access to static field from JS through exported virtual method. */ -@JsExport @JsType public class StaticInitializerVirtualMethod { private static StaticInitializerVirtualMethod STATIC = new StaticInitializerVirtualMethod();
diff --git a/user/test/com/google/gwt/core/client/interop/package-info.java b/user/test/com/google/gwt/core/client/interop/package-info.java index 19705dd..11e1959 100644 --- a/user/test/com/google/gwt/core/client/interop/package-info.java +++ b/user/test/com/google/gwt/core/client/interop/package-info.java
@@ -13,6 +13,6 @@ * License for the specific language governing permissions and limitations under * the License. */ -@com.google.gwt.core.client.js.JsNamespace("woo") +@jsinterop.annotations.JsPackage(namespace = "woo") @com.google.gwt.util.PreventSpuriousRebuilds package com.google.gwt.core.client.interop;
diff --git a/user/test/com/google/gwt/core/client/interop/subpackage/MyNestedExportedClassSansPackageNamespace.java b/user/test/com/google/gwt/core/client/interop/subpackage/MyNestedExportedClassSansPackageNamespace.java index 456192d..1ecd978 100644 --- a/user/test/com/google/gwt/core/client/interop/subpackage/MyNestedExportedClassSansPackageNamespace.java +++ b/user/test/com/google/gwt/core/client/interop/subpackage/MyNestedExportedClassSansPackageNamespace.java
@@ -13,16 +13,13 @@ */ package com.google.gwt.core.client.interop.subpackage; -import com.google.gwt.core.client.js.JsExport; +import jsinterop.annotations.JsType; /** * An exported class that is also not subject to the package namespace specified in its parent * package. */ -@JsExport // Does *not* uses the namespace from the parent package +@JsType // Does *not* uses the namespace from the parent package public class MyNestedExportedClassSansPackageNamespace { - /** - * Exported field. - */ public final static int WOO = 1001; }
diff --git a/user/test/com/google/gwt/dev/jjs/optimized/CastOptimizationTest.java b/user/test/com/google/gwt/dev/jjs/optimized/CastOptimizationTest.java index 4d9743d..1891953 100644 --- a/user/test/com/google/gwt/dev/jjs/optimized/CastOptimizationTest.java +++ b/user/test/com/google/gwt/dev/jjs/optimized/CastOptimizationTest.java
@@ -16,12 +16,13 @@ package com.google.gwt.dev.jjs.optimized; import com.google.gwt.core.client.JavaScriptObject; -import com.google.gwt.core.client.js.JsType; import com.google.gwt.junit.DoNotRunWith; import com.google.gwt.junit.Platform; import java.util.Random; +import jsinterop.annotations.JsType; + /** * Tests cast checks are optimized out when cast checking is disabled. */ @@ -30,7 +31,7 @@ private static class TestObject { } - @JsType(prototype = "Test") + @JsType(isNative = true) private interface JsTypeTestInterface { } private interface DualJsoTestInterface { }
diff --git a/user/test/com/google/gwt/dev/jjs/optimized/OptimizationTestBase.java b/user/test/com/google/gwt/dev/jjs/optimized/OptimizationTestBase.java index 5677c36..9465ae3 100644 --- a/user/test/com/google/gwt/dev/jjs/optimized/OptimizationTestBase.java +++ b/user/test/com/google/gwt/dev/jjs/optimized/OptimizationTestBase.java
@@ -48,7 +48,7 @@ for (char toBeEscaped : ".[]+".toCharArray()) { pattern = pattern.replace("" + toBeEscaped, "\\" + toBeEscaped); } - pattern = pattern.replace("<obf>", "\\w+"); + pattern = pattern.replace("<obf>", "[\\w$_]+"); return pattern + ";?"; } }
diff --git a/user/test/com/google/gwt/dev/jjs/test/CompilerMiscRegressionTest.java b/user/test/com/google/gwt/dev/jjs/test/CompilerMiscRegressionTest.java index a21dbc3..311abbd 100644 --- a/user/test/com/google/gwt/dev/jjs/test/CompilerMiscRegressionTest.java +++ b/user/test/com/google/gwt/dev/jjs/test/CompilerMiscRegressionTest.java
@@ -15,7 +15,6 @@ */ package com.google.gwt.dev.jjs.test; -import com.google.gwt.core.client.js.JsType; import com.google.gwt.dev.jjs.test.overrides.package1.Caller; import com.google.gwt.dev.jjs.test.overrides.package1.ClassExposingM; import com.google.gwt.dev.jjs.test.overrides.package1.SomeParent; @@ -36,6 +35,7 @@ import java.util.Map; import javaemul.internal.annotations.DoNotInline; +import jsinterop.annotations.JsType; /** * Tests Miscelaneous fixes.
diff --git a/user/test/com/google/gwt/uibinder/test/client/TestJsElementType.java b/user/test/com/google/gwt/uibinder/test/client/TestJsElementType.java index c5728b3..3fca08c 100644 --- a/user/test/com/google/gwt/uibinder/test/client/TestJsElementType.java +++ b/user/test/com/google/gwt/uibinder/test/client/TestJsElementType.java
@@ -15,13 +15,13 @@ */ package com.google.gwt.uibinder.test.client; -import com.google.gwt.core.client.js.JsProperty; -import com.google.gwt.core.client.js.JsType; +import jsinterop.annotations.JsProperty; +import jsinterop.annotations.JsType; /** * Test class for checking UiBinder casting to a JsType like this one. */ -@JsType +@JsType(isNative = true) public interface TestJsElementType { @JsProperty String getTagName();