@@ -22,7 +22,7 @@ This project is not yet complete, there are doubtlessly better ways to handle so
2222 * JavaScriptExceptionBase - Skipped, exceptions are handled differently in GWT3, legacy dev mode is not a concern
2323 * LoadingStrategyBase - Skipped, split points
2424 * OnSuccessExecutor - Skipped, package-protected and used in split points
25- * SchedulerImpl - Updated, missing only scheduleEntry
25+ * SchedulerImpl - Updated, missing scheduleEntry
2626 * ScriptTagLoadingStrategy - Skipped, split points
2727 * StackTraceCreator - Skipped, browsers are less crappy now
2828 * SuperDevModeLogger - Skipped, GWT.log either will not exist, or will only be implemented in this way anyway
@@ -36,9 +36,12 @@ This project is not yet complete, there are doubtlessly better ways to handle so
3636 * Callback - Included, simple interface that eventually probably should be moved anyway
3737 * CodeDownloadExecution - Skipped, split points
3838 * Duration - Included for now, only as a util class for Scheduler
39- * EntryPoint - Included, applications will likely still use this as a way to start up
39+ * EntryPoint - Removed - GWT2 applications must continue to use ` com.google.gwt.core.client.EntryPoint ` , whereas
40+ while J2CL applications have much more flexibility, they will probably use a different pattern.
4041 * GWT - Partially included for now to ease migration. This likely belongs in the "third" category, code which largely
41- will not exist in GWT 3, so should be removed now, but this is used so extensively that would be difficult.
42+ will not exist in GWT 3, so should be removed now, but this is used so extensively that would be difficult. Methods
43+ which can be supported are included, with others removed. Deprecated methods are either broken or should be phased
44+ out.
4245 * JavaScriptException - Skipped for now, unsure we can replace in a way that will still behave the same as before
4346 * JavaScriptObject - Included, deprecated: classes extending this will need additional updates to properly conform
4447 to JsInterop requirements
@@ -51,11 +54,11 @@ This project is not yet complete, there are doubtlessly better ways to handle so
5154 * JsArrayNumber - Updated, deprecated: projects should migrate when feasible to ` elemental2.core.JsArray<Double> `
5255 * JsArrayString - Updated, deprecated: projects should migrate when feasible to ` elemental2.core.JsArray<JsString> `
5356 * JsArrayUtils - Updated, deprecated, consists only of calls to Js.uncheckedCast
54- * JsDate -
57+ * JsDate - Updated, deprecated: projects should migrate to ` elemental2.core.JsDate `
5558 * JsonUtils - Updated, deprecated: projects should migrate to elemental2's JSON.parse and JSON.stringify, no method
5659 in this class actually uses eval any longer
5760 * RunAsyncCallback - Skipped, split points
58- * Scheduler - Updated, mising only scheduleEntry
61+ * Scheduler - Updated, mising scheduleEntry
5962 * ScriptInjector - Updated
6063 * SingleJsoImpl - Skipped, JSO-related, shouldn't be needed
6164 * SingleJsoImplName - Skipped, JSO-related, shouldn't be needed
@@ -68,7 +71,20 @@ improvements are made.
6871
6972
7073### Updating JavaScriptObject subclasses
71- TODO
74+ As with most of the deprecated classes kept in this library, existing JavaScriptObject types should be rewritten using
75+ jsinterop annotations to correctly explain to the compiler what is happening. This class can still be convient to use
76+ as an argument or return type, but generally should not be extended in your own projects any longer.
77+
78+ Some basic guidlines to follow:
79+ * The type itself must be marked as ` @JsType(isNative=true) ` , most likely with ` namespace=JsPackage.GLOBAL ` , and
80+ depending on your use case, you might want to always use ` name="Object" ` , or might want to refer to a different JS
81+ class.
82+ * Existing native methods need to be rewritten either as overlay methods, or made native to describe how they call the
83+ actual JS. A ` @JsMethod(name=...) ` may be required if the method name is not the same as in JS, or a ` @JsProperty ` if
84+ the method exists to read/write a property. Fields can also be created - they will be assumed to be named for an
85+ existing JS property, but you can likewise rename them with ` @JsProperty ` .
86+ * Overlay methods need to be marked with ` @JsOverlay ` , and continue to need to be effectively final (i.e. never
87+ overridden), but no longer need to be marked as ` final ` .
7288
7389
7490### Dependency
@@ -86,10 +102,5 @@ To build gwt-core:
86102
87103* run ` mvn clean install `
88104
89- on the parent directory.
90-
91- To run the j2cl tests:
92-
93- * switch to the 'gwt-core-j2cl-tests' directory
94- * run ` mvn j2cl:clean ` & ` mvn j2cl:test `
105+ on the parent directory. This will build the artifact and run tests against the JVM, J2CL, and GWT2.
95106
0 commit comments