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();