| commit | a150efc1913b3d4c38d140c8af3255310ee2ae0a | [log] [tgz] |
|---|---|---|
| author | Ye Wang <leafwang@google.com> | Wed Feb 18 09:09:04 2015 -0800 |
| committer | Ye Wang <leafwang@google.com> | Wed Feb 18 09:09:13 2015 -0800 |
| tree | 868b8240de4c91a2b7f5be2cbbc42da5fd560e76 | |
| parent | 888ae88aa9908fc31cfdee60bfa9a911b8d17b14 [diff] |
Do not export non public fields of JsExport concrete class. Missed checking the visibility of fields in a JsExport class so that all static fields were exported. This patch fixes the bug so that only fields that are public static are exported when the class is JsExport. Change-Id: If147d9fce97fd48358a37db26d5f5ca758c9b5c3
diff --git a/dev/core/src/com/google/gwt/dev/jjs/impl/GwtAstBuilder.java b/dev/core/src/com/google/gwt/dev/jjs/impl/GwtAstBuilder.java index 8207731..bdf70ad 100644 --- a/dev/core/src/com/google/gwt/dev/jjs/impl/GwtAstBuilder.java +++ b/dev/core/src/com/google/gwt/dev/jjs/impl/GwtAstBuilder.java
@@ -2501,7 +2501,7 @@ if (f.getExportName() != null) { continue; } - if (f.isStatic()) { + if (f.isPublic() && f.isStatic()) { f.setExportName(""); } }
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 a8563a9..822b3cf 100644 --- a/user/test/com/google/gwt/core/client/interop/JsExportTest.java +++ b/user/test/com/google/gwt/core/client/interop/JsExportTest.java
@@ -101,7 +101,9 @@ private native Object getNotExportedFields() /*-{ return $wnd.woo.StaticInitializerStaticField.NOT_EXPORTED_1 - || $wnd.woo.StaticInitializerStaticField.NOT_EXPORTED_2; + || $wnd.woo.StaticInitializerStaticField.NOT_EXPORTED_2 + || $wnd.woo.StaticInitializerStaticField.NOT_EXPORTED_3 + || $wnd.woo.StaticInitializerStaticField.NOT_EXPORTED_4; }-*/; private native Object getNotExportedMethods() /*-{
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 572c3e4..1bd56d9 100644 --- a/user/test/com/google/gwt/core/client/interop/StaticInitializerStaticField.java +++ b/user/test/com/google/gwt/core/client/interop/StaticInitializerStaticField.java
@@ -34,6 +34,12 @@ // Not static public final Object NOT_EXPORTED_2 = new Object(); + // Not public + static final Object NOT_EXPORTED_3 = new Object(); + + // Not public + private static final Object NOT_EXPORTED_4 = new Object(); + /** * Test interface that export a static field. */