Merge tag 'apache-royale-0.9.4'

Official release of apache-royale-0.9.4
diff --git a/.gitignore b/.gitignore
index 4cb51c5..a6c92ba 100644
--- a/.gitignore
+++ b/.gitignore
@@ -13,6 +13,9 @@
 *.iws
 *.eml
 
+# VSCode conf files
+.vscode/settings.json
+
 #OS junk files
 [Tt]humbs.db
 *.DS_Store
diff --git a/GCL/pom.xml b/GCL/pom.xml
index 64cc684..c417c8a 100644
--- a/GCL/pom.xml
+++ b/GCL/pom.xml
@@ -23,11 +23,11 @@
   <parent>
     <groupId>org.apache.royale.typedefs</groupId>
     <artifactId>royale-typedefs-parent</artifactId>
-    <version>0.9.2</version>
+    <version>0.9.4</version>
   </parent>
 
   <artifactId>royale-typedefs-gcl</artifactId>
-  <version>0.9.2</version>
+  <version>0.9.4</version>
   <packaging>swc</packaging>
 
   <name>Apache Royale: TypeDefs: GCL</name>
@@ -59,7 +59,7 @@
     <dependency>
       <groupId>org.apache.royale.typedefs</groupId>
       <artifactId>royale-typedefs-js</artifactId>
-      <version>0.9.2</version>
+      <version>0.9.4</version>
       <type>swc</type>
       <classifier>typedefs</classifier>
       <scope>runtime</scope>
diff --git a/GCL/src/main/royale/goog/events/Event.as b/GCL/src/main/royale/goog/events/Event.as
index d8064ce..ec04192 100644
--- a/GCL/src/main/royale/goog/events/Event.as
+++ b/GCL/src/main/royale/goog/events/Event.as
@@ -35,9 +35,27 @@
     }
 
     public var type:String;
-    public var target:Object;
-    public var currentTarget:Object;
-    public var defaultPrevented:Boolean;
+    public function get target():Object
+    {
+        return null;
+    }
+    public function set target(value:Object):void
+    {
+    }
+    public function get currentTarget():Object
+    {
+        return null;
+    }
+    public function set currentTarget(value:Object):void
+    {
+    }
+    public function get defaultPrevented():Boolean
+    {
+        return null;
+    }
+    public function set defaultPrevented(value:Boolean):void
+    {
+    }
 
     public function stopPropagation():void {}
     public function preventDefault():void {}
diff --git a/ace/build.xml b/ace/build.xml
new file mode 100644
index 0000000..695c9f5
--- /dev/null
+++ b/ace/build.xml
@@ -0,0 +1,168 @@
+<?xml version="1.0" ?>
+
+<!--
+
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You 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.
+
+-->
+
+<project name="ace" default="main" basedir=".">
+    
+    <property name="ROYALE_HOME" value="${basedir}/.." />
+    
+    <condition property="ROYALE_COMPILER_HOME" value="${env.ROYALE_COMPILER_HOME}">
+        <and>
+            <not>
+                <isset property="ROYALE_COMPILER_HOME" />
+            </not>
+            <available file="${env.ROYALE_COMPILER_HOME}/lib/compiler-mxmlc.jar" type="file" />
+        </and>
+    </condition>
+    
+    <condition property="ROYALE_COMPILER_HOME" value="${ROYALE_HOME}/../royale-compiler/compiler">
+        <and>
+            <not>
+                <isset property="ROYALE_COMPILER_HOME" />
+            </not>
+            <available file="${ROYALE_HOME}/../royale-compiler/compiler/lib/compiler-mxmlc.jar" type="file" />
+        </and>
+    </condition>
+    
+    <condition property="ROYALE_COMPILER_HOME" value="${ROYALE_HOME}">
+        <and>
+            <not>
+                <isset property="ROYALE_COMPILER_HOME" />
+            </not>
+            <available file="${ROYALE_HOME}/lib/compiler-mxmlc.jar" type="file" />
+        </and>
+    </condition>
+    
+    <condition property="ROYALE_TRANSPILER_HOME" value="${env.ROYALE_TRANSPILER_HOME}">
+        <and>
+            <not>
+                <isset property="ROYALE_TRANSPILER_HOME" />
+            </not>
+            <available file="${env.ROYALE_TRANSPILER_HOME}/lib/jsc.jar" type="file" />
+        </and>
+    </condition>
+    
+    <condition property="ROYALE_TRANSPILER_HOME" value="${ROYALE_HOME}/js">
+        <and>
+            <not>
+                <isset property="ROYALE_TRANSPILER_HOME" />
+            </not>
+            <available file="${ROYALE_HOME}/js/lib/jsc.jar" type="file" />
+        </and>
+    </condition>
+    
+    <condition property="ROYALE_TRANSPILER_HOME" value="${ROYALE_HOME}/../royale-compiler/compiler-jx">
+        <and>
+            <not>
+                <isset property="ROYALE_TRANSPILER_HOME" />
+            </not>
+            <available file="${ROYALE_HOME}/../royale-compiler/compiler-jx/lib/jsc.jar" type="file" />
+        </and>
+    </condition>
+    
+    <target name="main" depends="preprocess, externc, postprocess, compc" />
+
+    <target name="preprocess" depends="download"></target>
+
+
+
+    <target name="download" >
+        <mkdir dir="${basedir}/target/downloads" />
+        <get src="https://raw.githubusercontent.com/google/closure-compiler/master/contrib/externs/ace-1.2.3.js" dest="${basedir}/target/downloads/ace-1.2.3.js" ignoreerrors="true"/>
+        <antcall target="get-from-cache-if-needed" >
+            <param name="srcFile" value="ace-1.2.3.js" />
+            <param name="destFile" value="ace-1.2.3.js" />
+            <param name="destDir" value="${basedir}/target/downloads" />
+        </antcall>
+        <antcall target="fail-if-not-found" >
+            <param name="destFile" value="ace-1.2.3.js" />
+            <param name="destDir" value="${basedir}/target/downloads" />
+        </antcall>
+    </target>
+    
+    <target name="externc" >
+        <java jar="${ROYALE_TRANSPILER_HOME}/lib/externc.jar" fork="true"
+            failonerror="true">
+            <arg value="+royalelib=externs" />
+            <arg value="-debug" />
+            <arg value="-load-config=${basedir}/src/main/config/externc-config.xml" />
+        </java>
+    </target>
+    
+    <target name="postprocess" >
+    </target>
+    
+    <target name="compc" >
+        <copy file="${basedir}/src/main/config/compile-as-config.xml"
+        todir="${basedir}/target" />
+        <java jar="${ROYALE_COMPILER_HOME}/lib/compiler-compc.jar" fork="true"
+            failonerror="true">
+            <arg value="+royalelib=externs/frameworks" />
+            <arg value="-debug" />
+            <arg value="-external-library-path+=${basedir}/../js/target/js.swc" />
+            <arg value="-load-config=${basedir}/target/compile-as-config.xml" />
+            <arg value="-output=${basedir}/target/ace-1.2.3.swc" />
+        </java>
+    </target>
+    
+    <target name="clean">
+        <delete failonerror="false" includeEmptyDirs="true" >
+            <fileset dir="${basedir}/target">
+                <include name="**/**"/>
+                <exclude name="downloads/**"/>
+            </fileset>
+        </delete>
+    </target>
+    
+    <target name="wipe">
+        <delete failonerror="false" includeEmptyDirs="true" >
+            <fileset dir="${basedir}/target">
+                <include name="**/**"/>
+            </fileset>
+        </delete>
+    </target>
+    
+    <target name="fail-if-not-found">
+        <fail message="${destDir}/${destFile} could not be downloaded or found in cache">
+            <condition>
+                <not>
+                    <available file="${destDir}/${destFile}" />
+                </not>
+            </condition>
+        </fail>
+    </target>
+    
+    <target name="double-check-file" >
+        <echo>${env.ROYALE_DOWNLOAD_CACHE}</echo>
+        <condition property="still-no-file" value="true">
+            <and>
+                <not>
+                    <available file="${destDir}/${destFile}" />
+                </not>
+                <isset property="env.ROYALE_DOWNLOAD_CACHE" />
+            </and>
+        </condition>
+        <echo>Need file: ${still_no_file}</echo>
+    </target>
+    <target name="get-from-cache-if-needed" depends="double-check-file" if="still-no-file">
+        <copy file="${env.ROYALE_DOWNLOAD_CACHE}/${srcFile}" tofile="${destDir}/${destFile}" />
+    </target>
+
+</project>
diff --git a/ace/src/main/config/compile-as-config.xml b/ace/src/main/config/compile-as-config.xml
new file mode 100644
index 0000000..accfe7a
--- /dev/null
+++ b/ace/src/main/config/compile-as-config.xml
@@ -0,0 +1,45 @@
+<!--
+
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You 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.
+
+-->
+<royale-config>
+
+    <compiler>
+        <accessible>true</accessible>
+        
+        <external-library-path>
+        </external-library-path>
+		
+        <source-path>
+            <path-element>generated-sources/externc/classes</path-element>
+            <path-element>generated-sources/externc/constants</path-element>
+        </source-path>
+        
+        <warn-no-constructor>false</warn-no-constructor>
+    </compiler>
+    
+    <include-sources>
+        <path-element>generated-sources/externc/classes</path-element>
+        <path-element>generated-sources/externc/constants</path-element>
+    </include-sources>
+
+    <include-file>
+        <name>externs/ace-1.2.3.js</name>
+        <path>downloads/ace-1.2.3.js</path>
+    </include-file>
+
+</royale-config>
diff --git a/ace/src/main/config/externc-config.xml b/ace/src/main/config/externc-config.xml
new file mode 100644
index 0000000..bfe03c6
--- /dev/null
+++ b/ace/src/main/config/externc-config.xml
@@ -0,0 +1,35 @@
+<!--
+
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License</name></exclude> 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.
+
+-->
+<royale-config>
+
+    <compiler>
+        <accessible>true</accessible>
+        
+        <locale/>
+        
+        <warn-no-constructor>false</warn-no-constructor>
+    </compiler>
+    
+    <typedefs>
+        <path-element>../../../target/downloads/ace-1.2.3.js</path-element>
+    </typedefs>
+
+    <as-root>../../../target/generated-sources/externc</as-root>
+
+</royale-config>
diff --git a/build.xml b/build.xml
index 83f0dc7..a3d8e45 100644
--- a/build.xml
+++ b/build.xml
@@ -35,6 +35,7 @@
         <ant dir="jquery" target="clean"/>
         <ant dir="google_maps" target="clean"/>
         <ant dir="node" target="clean"/>
+        <ant dir="ace" target="clean"/>
     </target>
 
     <target name="wipe" description="Wipes out everything that didn't come from Git.">
@@ -46,6 +47,7 @@
         <ant dir="jquery" target="wipe"/>
         <ant dir="google_maps" target="wipe"/>
         <ant dir="node" target="wipe"/>
+        <ant dir="ace" target="wipe"/>
     </target>
     
     <target name="main" description="Build everything">
@@ -57,6 +59,7 @@
         <ant dir="jquery" />
         <ant dir="google_maps" />
         <ant dir="node" />
+        <ant dir="ace" />
     </target>
 
 </project>
diff --git a/cordova/pom.xml b/cordova/pom.xml
index 22a4db8..dccb841 100644
--- a/cordova/pom.xml
+++ b/cordova/pom.xml
@@ -23,11 +23,11 @@
   <parent>
     <groupId>org.apache.royale.typedefs</groupId>
     <artifactId>royale-typedefs-parent</artifactId>
-    <version>0.9.2</version>
+    <version>0.9.4</version>
   </parent>
 
   <artifactId>royale-typedefs-cordova</artifactId>
-  <version>0.9.2</version>
+  <version>0.9.4</version>
   <packaging>swc</packaging>
 
   <name>Apache Royale: TypeDefs: Cordova</name>
@@ -76,7 +76,7 @@
     <dependency>
       <groupId>org.apache.royale.typedefs</groupId>
       <artifactId>royale-typedefs-js</artifactId>
-      <version>0.9.2</version>
+      <version>0.9.4</version>
       <type>swc</type>
       <classifier>typedefs</classifier>
       <scope>runtime</scope>
diff --git a/cordova/src/main/config/compile-as-config.xml b/cordova/src/main/config/compile-as-config.xml
index 070c694..df1e126 100644
--- a/cordova/src/main/config/compile-as-config.xml
+++ b/cordova/src/main/config/compile-as-config.xml
@@ -33,6 +33,8 @@
     
     <include-sources>
         <path-element>generated-sources/externc/constants</path-element>
+        <path-element>generated-sources/externc/classes</path-element>
+        <path-element>generated-sources/externc/interfaces</path-element>
     </include-sources>
 
     <include-file>
diff --git a/cordova/src/main/javascript/cordova_file_plugin-4-11.js b/cordova/src/main/javascript/cordova_file_plugin-4-11.js
index 96c6a5f..4148ddc 100644
--- a/cordova/src/main/javascript/cordova_file_plugin-4-11.js
+++ b/cordova/src/main/javascript/cordova_file_plugin-4-11.js
@@ -24,3 +24,327 @@
  * @const
  */
 var cordova;
+
+
+/* from Google Externs fileapi.js */
+
+/**
+ * @record
+ * @see https://dev.w3.org/2009/dap/file-system/file-dir-sys.html#the-flags-dictionary
+ */
+function FileSystemFlags() {};
+
+/** @type {(undefined|boolean)} */
+FileSystemFlags.prototype.create;
+
+/** @type {(undefined|boolean)} */
+FileSystemFlags.prototype.exclusive;
+
+
+/**
+ * @see http://www.w3.org/TR/file-system-api/#the-directoryentry-interface
+ * @constructor
+ * @extends {Entry}
+ */
+function DirectoryEntry() {};
+
+/**
+ * @see http://www.w3.org/TR/file-system-api/#widl-DirectoryEntry-createReader
+ * @return {!DirectoryReader}
+ */
+DirectoryEntry.prototype.createReader = function() {};
+
+/**
+ * @see http://www.w3.org/TR/file-system-api/#widl-DirectoryEntry-getFile
+ * @param {string} path
+ * @param {!FileSystemFlags=} options
+ * @param {function(!FileEntry)=} successCallback
+ * @param {function(!FileError)=} errorCallback
+ * @return {undefined}
+ */
+DirectoryEntry.prototype.getFile = function(path, options, successCallback,
+    errorCallback) {};
+
+/**
+ * @see http://www.w3.org/TR/file-system-api/#widl-DirectoryEntry-getDirectory
+ * @param {string} path
+ * @param {!FileSystemFlags=} options
+ * @param {function(!DirectoryEntry)=} successCallback
+ * @param {function(!FileError)=} errorCallback
+ * @return {undefined}
+ */
+DirectoryEntry.prototype.getDirectory = function(path, options, successCallback,
+    errorCallback) {};
+
+/**
+ * @see http://www.w3.org/TR/file-system-api/#widl-DirectoryEntry-removeRecursively
+ * @param {function()} successCallback
+ * @param {function(!FileError)=} errorCallback
+ * @return {undefined}
+ */
+DirectoryEntry.prototype.removeRecursively = function(successCallback,
+    errorCallback) {};
+	
+/**
+ * @see http://www.w3.org/TR/file-system-api/#the-directoryreader-interface
+ * @constructor
+ */
+function DirectoryReader() {};
+
+/**
+ * @see http://www.w3.org/TR/file-system-api/#widl-DirectoryReader-readEntries
+ * @param {function(!Array<!Entry>)} successCallback
+ * @param {function(!FileError)=} errorCallback
+ * @return {undefined}
+ */
+DirectoryReader.prototype.readEntries = function(successCallback,
+    errorCallback) {};
+
+/**
+ * @see http://www.w3.org/TR/file-writer-api/#idl-def-FileSaver
+ * @constructor
+ */
+function FileSaver() {};
+
+/**
+ * @see http://www.w3.org/TR/file-writer-api/#widl-FileSaver-abort
+ * @return {undefined}
+ */
+FileSaver.prototype.abort = function() {};
+
+/**
+ * @see http://www.w3.org/TR/file-writer-api/#widl-FileSaver-INIT
+ * @type {number}
+ */
+FileSaver.prototype.INIT = 0;
+
+/**
+ * @see http://www.w3.org/TR/file-writer-api/#widl-FileSaver-WRITING
+ * @type {number}
+ */
+FileSaver.prototype.WRITING = 1;
+
+/**
+ * @see http://www.w3.org/TR/file-writer-api/#widl-FileSaver-DONE
+ * @type {number}
+ */
+FileSaver.prototype.DONE = 2;
+
+/**
+ * @see http://www.w3.org/TR/file-writer-api/#widl-FileSaver-readyState
+ * @type {number}
+ */
+FileSaver.prototype.readyState;
+
+/**
+ * @see http://www.w3.org/TR/file-writer-api/#widl-FileSaver-error
+ * @type {FileError}
+ */
+FileSaver.prototype.error;
+
+/**
+ * @see http://www.w3.org/TR/file-writer-api/#widl-FileSaver-onwritestart
+ * @type {?function(!ProgressEvent)}
+ */
+FileSaver.prototype.onwritestart;
+
+/**
+ * @see http://www.w3.org/TR/file-writer-api/#widl-FileSaver-onprogress
+ * @type {?function(!ProgressEvent)}
+ */
+FileSaver.prototype.onprogress;
+
+/**
+ * @see http://www.w3.org/TR/file-writer-api/#widl-FileSaver-onwrite
+ * @type {?function(!ProgressEvent)}
+ */
+FileSaver.prototype.onwrite;
+
+/**
+ * @see http://www.w3.org/TR/file-writer-api/#widl-FileSaver-onabort
+ * @type {?function(!ProgressEvent)}
+ */
+FileSaver.prototype.onabort;
+
+/**
+ * @see http://www.w3.org/TR/file-writer-api/#widl-FileSaver-onerror
+ * @type {?function(!ProgressEvent)}
+ */
+FileSaver.prototype.onerror;
+
+/**
+ * @see http://www.w3.org/TR/file-writer-api/#widl-FileSaver-onwriteend
+ * @type {?function(!ProgressEvent)}
+ */
+FileSaver.prototype.onwriteend;
+
+/**
+ * @see http://www.w3.org/TR/file-system-api/#the-filesystem-interface
+ * @constructor
+ */
+function FileSystem() {}
+
+/**
+ * @see http://www.w3.org/TR/file-system-api/#widl-FileSystem-name
+ * @type {string}
+ */
+FileSystem.prototype.name;
+
+/**
+ * @see http://www.w3.org/TR/file-system-api/#widl-FileSystem-root
+ * @type {!DirectoryEntry}
+ */
+FileSystem.prototype.root;
+
+/**
+ * @see http://www.w3.org/TR/file-writer-api/#idl-def-FileWriter
+ * @constructor
+ * @extends {FileSaver}
+ */
+function FileWriter() {}
+
+/**
+ * @see http://www.w3.org/TR/file-writer-api/#widl-FileWriter-position
+ * @type {number}
+ */
+FileWriter.prototype.position;
+
+/**
+ * @see http://www.w3.org/TR/file-writer-api/#widl-FileWriter-length
+ * @type {number}
+ */
+FileWriter.prototype.length;
+
+/**
+ * @see http://www.w3.org/TR/file-writer-api/#widl-FileWriter-write
+ * @param {!Blob} blob
+ * @return {undefined}
+ */
+FileWriter.prototype.write = function(blob) {};
+
+/**
+ * @see http://www.w3.org/TR/file-writer-api/#widl-FileWriter-seek
+ * @param {number} offset
+ * @return {undefined}
+ */
+FileWriter.prototype.seek = function(offset) {};
+
+/**
+ * @see http://www.w3.org/TR/file-writer-api/#widl-FileWriter-truncate
+ * @param {number} size
+ * @return {undefined}
+ */
+FileWriter.prototype.truncate = function(size) {};
+
+/**
+ * @see http://www.w3.org/TR/file-system-api/#the-fileentry-interface
+ * @constructor
+ * @extends {Entry}
+ */
+function FileEntry() {};
+
+/**
+ * @see http://www.w3.org/TR/file-system-api/#widl-FileEntry-createWriter
+ * @param {function(!FileWriter)} successCallback
+ * @param {function(!FileError)=} errorCallback
+ * @return {undefined}
+ */
+FileEntry.prototype.createWriter = function(successCallback, errorCallback) {};
+
+/**
+ * @see http://www.w3.org/TR/file-system-api/#widl-FileEntry-file
+ * @param {function(!File)} successCallback
+ * @param {function(!FileError)=} errorCallback
+ * @return {undefined}
+ */
+FileEntry.prototype.file = function(successCallback, errorCallback) {};
+
+/**
+ * @see http://www.w3.org/TR/file-system-api/#the-entry-interface
+ * @constructor
+ */
+function Entry() {};
+
+/**
+ * @see http://www.w3.org/TR/file-system-api/#widl-Entry-isFile
+ * @type {boolean}
+ */
+Entry.prototype.isFile;
+
+/**
+ * @see http://www.w3.org/TR/file-system-api/#widl-Entry-isDirectory
+ * @type {boolean}
+ */
+Entry.prototype.isDirectory;
+
+/**
+ * @see http://www.w3.org/TR/file-system-api/#widl-Entry-name
+ * @type {string}
+ */
+Entry.prototype.name;
+
+/**
+ * @see http://www.w3.org/TR/file-system-api/#widl-Entry-fullPath
+ * @type {string}
+ */
+Entry.prototype.fullPath;
+
+/**
+ * @see http://www.w3.org/TR/file-system-api/#widl-Entry-filesystem
+ * @type {!FileSystem}
+ */
+Entry.prototype.filesystem;
+
+/**
+ * @see http://www.w3.org/TR/file-system-api/#widl-Entry-moveTo
+ * @param {!DirectoryEntry} parent
+ * @param {string=} newName
+ * @param {function(!Entry)=} successCallback
+ * @param {function(!FileError)=} errorCallback
+ * @return {undefined}
+ */
+Entry.prototype.moveTo = function(parent, newName, successCallback,
+    errorCallback) {};
+
+/**
+ * @see http://www.w3.org/TR/file-system-api/#widl-Entry-copyTo
+ * @param {!DirectoryEntry} parent
+ * @param {string=} newName
+ * @param {function(!Entry)=} successCallback
+ * @param {function(!FileError)=} errorCallback
+ * @return {undefined}
+ */
+Entry.prototype.copyTo = function(parent, newName, successCallback,
+    errorCallback) {};
+
+/**
+ * @see http://www.w3.org/TR/file-system-api/#widl-Entry-toURL
+ * @param {string=} mimeType
+ * @return {string}
+ */
+Entry.prototype.toURL = function(mimeType) {};
+
+/**
+ * @see http://www.w3.org/TR/file-system-api/#widl-Entry-remove
+ * @param {function()} successCallback
+ * @param {function(!FileError)=} errorCallback
+ * @return {undefined}
+ */
+Entry.prototype.remove = function(successCallback, errorCallback) {};
+
+/**
+ * @see http://www.w3.org/TR/file-system-api/#widl-Entry-getMetadata
+ * @param {function(!Metadata)} successCallback
+ * @param {function(!FileError)=} errorCallback
+ * @return {undefined}
+ */
+Entry.prototype.getMetadata = function(successCallback, errorCallback) {};
+
+/**
+ * @see http://www.w3.org/TR/file-system-api/#widl-Entry-getParent
+ * @param {function(!Entry)} successCallback
+ * @param {function(!FileError)=} errorCallback
+ * @return {undefined}
+ */
+Entry.prototype.getParent = function(successCallback, errorCallback) {};
+
diff --git a/createjs/pom.xml b/createjs/pom.xml
index fbf7b49..7902efe 100644
--- a/createjs/pom.xml
+++ b/createjs/pom.xml
@@ -23,11 +23,11 @@
   <parent>
     <groupId>org.apache.royale.typedefs</groupId>
     <artifactId>royale-typedefs-parent</artifactId>
-    <version>0.9.2</version>
+    <version>0.9.4</version>
   </parent>
 
   <artifactId>royale-typedefs-createjs</artifactId>
-  <version>0.9.2</version>
+  <version>0.9.4</version>
   <packaging>swc</packaging>
 
   <name>Apache Royale: TypeDefs: CreateJS</name>
@@ -239,7 +239,7 @@
     <dependency>
       <groupId>org.apache.royale.typedefs</groupId>
       <artifactId>royale-typedefs-js</artifactId>
-      <version>0.9.2</version>
+      <version>0.9.4</version>
       <type>swc</type>
       <classifier>typedefs</classifier>
       <scope>runtime</scope>
diff --git a/google_maps/pom.xml b/google_maps/pom.xml
index 983a23c..8434c87 100644
--- a/google_maps/pom.xml
+++ b/google_maps/pom.xml
@@ -23,11 +23,11 @@
   <parent>
     <groupId>org.apache.royale.typedefs</groupId>
     <artifactId>royale-typedefs-parent</artifactId>
-    <version>0.9.2</version>
+    <version>0.9.4</version>
   </parent>
 
   <artifactId>royale-typedefs-googlemaps</artifactId>
-  <version>0.9.2</version>
+  <version>0.9.4</version>
   <packaging>swc</packaging>
 
   <name>Apache Royale: TypeDefs: GoogleMaps</name>
@@ -51,6 +51,7 @@
               <goal>wget</goal>
             </goals>
             <configuration>
+              <skipCache>true</skipCache>
               <url>https://raw.githubusercontent.com/royale-extras/closure-compiler/royale/contrib/externs/maps/google_maps_api_${googlemaps.version}.js</url>
               <outputFileName>google_maps_api_${googlemaps.version}.js</outputFileName>
               <outputDirectory>${project.build.directory}/downloads</outputDirectory>
@@ -58,36 +59,7 @@
           </execution>
         </executions>
       </plugin>
-
-      <plugin>
-        <groupId>org.codehaus.mojo</groupId>
-        <artifactId>exec-maven-plugin</artifactId>
-        <version>1.5.0</version>
-        <configuration>
-          <executable>${git.executable}</executable>
-          <workingDirectory>${basedir}/..</workingDirectory>
-          <arguments>
-            <argument>apply</argument>
-            <argument>--ignore-whitespace</argument>
-            <argument>--whitespace=nowarn</argument>
-          </arguments>
-        </configuration>
-        <executions>
-          <execution>
-            <id>patch-google-maps</id>
-            <phase>validate</phase>
-            <goals>
-              <goal>exec</goal>
-            </goals>
-            <configuration>
-              <arguments combine.children="append">
-                <argument>${basedir}/src/main/patch/google_maps.patch</argument>
-              </arguments>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-
+      
       <plugin>
         <groupId>org.apache.royale.compiler</groupId>
         <artifactId>royale-maven-plugin</artifactId>
@@ -126,7 +98,7 @@
     <dependency>
       <groupId>org.apache.royale.typedefs</groupId>
       <artifactId>royale-typedefs-js</artifactId>
-      <version>0.9.2</version>
+      <version>0.9.4</version>
       <type>swc</type>
       <classifier>typedefs</classifier>
       <scope>runtime</scope>
diff --git a/jasmine/pom.xml b/jasmine/pom.xml
index a8ea4a3..bedef4c 100644
--- a/jasmine/pom.xml
+++ b/jasmine/pom.xml
@@ -23,11 +23,11 @@
   <parent>
     <groupId>org.apache.royale.typedefs</groupId>
     <artifactId>royale-typedefs-parent</artifactId>
-    <version>0.9.2</version>
+    <version>0.9.4</version>
   </parent>
 
   <artifactId>royale-typedefs-jasmine</artifactId>
-  <version>0.9.2</version>
+  <version>0.9.4</version>
   <packaging>swc</packaging>
 
   <name>Apache Royale: TypeDefs: Jasmine</name>
@@ -110,7 +110,7 @@
     <dependency>
       <groupId>org.apache.royale.typedefs</groupId>
       <artifactId>royale-typedefs-js</artifactId>
-      <version>0.9.2</version>
+      <version>0.9.4</version>
       <type>swc</type>
       <classifier>typedefs</classifier>
       <scope>runtime</scope>
diff --git a/jquery/pom.xml b/jquery/pom.xml
index b802fb5..9011625 100644
--- a/jquery/pom.xml
+++ b/jquery/pom.xml
@@ -1,199 +1,174 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-  Licensed to the Apache Software Foundation (ASF) under one or more
-  contributor license agreements.  See the NOTICE file distributed with
-  this work for additional information regarding copyright ownership.
-  The ASF licenses this file to You 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.
-
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.apache.royale.typedefs</groupId>
-    <artifactId>royale-typedefs-parent</artifactId>
-    <version>0.9.2</version>
-  </parent>
-
-  <artifactId>royale-typedefs-jquery</artifactId>
-  <version>0.9.2</version>
-  <packaging>swc</packaging>
-
-  <name>Apache Royale: TypeDefs: JQuery</name>
-
-  <properties>
-    <jquery.version>1.9</jquery.version>
-  </properties>
-
-  <build>
-    <plugins>
-      <!-- Download JavaScript form GitHub -->
-      <plugin>
-        <groupId>com.googlecode.maven-download-plugin</groupId>
-        <artifactId>download-maven-plugin</artifactId>
-        <version>1.2.1</version>
-        <executions>
-          <execution>
-            <id>get-createjs</id>
-            <phase>validate</phase>
-            <goals>
-              <goal>wget</goal>
-            </goals>
-            <configuration>
-              <url>https://raw.githubusercontent.com/royale-extras/closure-compiler/royale/contrib/externs/jquery-${jquery.version}.js</url>
-              <outputFileName>jquery-${jquery.version}.js</outputFileName>
-              <outputDirectory>${project.build.directory}/downloads</outputDirectory>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-
-      <plugin>
-        <groupId>org.codehaus.mojo</groupId>
-        <artifactId>exec-maven-plugin</artifactId>
-        <version>1.5.0</version>
-        <configuration>
-          <executable>${git.executable}</executable>
-          <workingDirectory>${basedir}/..</workingDirectory>
-          <arguments>
-            <argument>apply</argument>
-            <argument>--ignore-whitespace</argument>
-            <argument>--whitespace=nowarn</argument>
-          </arguments>
-        </configuration>
-        <executions>
-          <execution>
-            <id>patch-jquery</id>
-            <phase>validate</phase>
-            <goals>
-              <goal>exec</goal>
-            </goals>
-            <configuration>
-              <arguments combine.children="append">
-                <argument>${basedir}/src/main/patch/jquery.patch</argument>
-              </arguments>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-
-      <plugin>
-        <groupId>org.apache.royale.compiler</groupId>
-        <artifactId>royale-maven-plugin</artifactId>
-        <version>${royale.compiler.version}</version>
-        <extensions>true</extensions>
-        <configuration>
-          <includeSources>true</includeSources>
-          <externcInput>
-            <fileSet>
-              <directory>${project.basedir}/target/downloads</directory>
-              <includes>
-                <include>**/*.js</include>
-              </includes>
-            </fileSet>
-          </externcInput>
-          <externcConfig>
-            <!-- JQuery -->
-            <!--class-to-function><class>$</class></class-to-function-->
-
-            <class-excludes>
-              <class-exclude>
-                <className>Deferred</className>
-              </class-exclude>
-              <class-exclude>
-                <className>jQuery.deferred</className>
-              </class-exclude>
-              <class-exclude>
-                <className>jQuery.Event</className>
-              </class-exclude>
-              <class-exclude>
-                <className>jQuery.Deferred</className>
-              </class-exclude>
-              <class-exclude>
-                <className>$.Event</className>
-              </class-exclude>
-              <class-exclude>
-                <className>$.Deferred</className>
-              </class-exclude>
-              <class-exclude>
-                <className>$.deferred</className>
-              </class-exclude>
-            </class-excludes>
-
-            <excludes>
-              <exclude>
-                <className>jQuery</className>
-                <name>is</name>
-              </exclude>
-              <exclude>
-                <className>jQuery</className>
-                <name>promise</name>
-              </exclude>
-              <exclude>
-                <className>jQuery</className>
-                <name>getJSON</name>
-              </exclude>
-              <exclude>
-                <className>jQuery</className>
-                <name>ajax</name>
-              </exclude>
-              <exclude>
-                <className>jQuery</className>
-                <name>when</name>
-              </exclude>
-              <exclude>
-                <className>jQuery</className>
-                <name>post</name>
-              </exclude>
-              <exclude>
-                <className>jQuery</className>
-                <name>getScript</name>
-              </exclude>
-              <exclude>
-                <className>jQuery</className>
-                <name>Callbacks</name>
-              </exclude>
-            </excludes>
-          </externcConfig>
-          <includeFiles>
-            <include-file>
-              <name>externs/jquery-1.9.js</name>
-              <path>downloads/jquery-1.9.js</path>
-            </include-file>
-          </includeFiles>
-          <skipSwc>true</skipSwc>
-        </configuration>
-        <dependencies>
-          <dependency>
-            <groupId>org.apache.royale.compiler</groupId>
-            <artifactId>compiler-jx</artifactId>
-            <version>${royale.compiler.version}</version>
-          </dependency>
-        </dependencies>
-      </plugin>
-    </plugins>
-  </build>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.royale.typedefs</groupId>
-      <artifactId>royale-typedefs-js</artifactId>
-      <version>0.9.2</version>
-      <type>swc</type>
-      <classifier>typedefs</classifier>
-      <scope>runtime</scope>
-    </dependency>
-  </dependencies>
-
-</project>
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+

+  Licensed to the Apache Software Foundation (ASF) under one or more

+  contributor license agreements.  See the NOTICE file distributed with

+  this work for additional information regarding copyright ownership.

+  The ASF licenses this file to You 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.

+

+-->

+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

+  <modelVersion>4.0.0</modelVersion>

+

+  <parent>

+    <groupId>org.apache.royale.typedefs</groupId>

+    <artifactId>royale-typedefs-parent</artifactId>

+    <version>0.9.4</version>

+  </parent>

+

+  <artifactId>royale-typedefs-jquery</artifactId>

+  <version>0.9.4</version>

+  <packaging>swc</packaging>

+

+  <name>Apache Royale: TypeDefs: JQuery</name>

+

+  <properties>

+    <jquery.version>1.9</jquery.version>

+  </properties>

+

+  <build>

+    <plugins>

+      <!-- Download JavaScript form GitHub -->

+      <plugin>

+        <groupId>com.googlecode.maven-download-plugin</groupId>

+        <artifactId>download-maven-plugin</artifactId>

+        <version>1.2.1</version>

+        <executions>

+          <execution>

+            <id>get-createjs</id>

+            <phase>validate</phase>

+            <goals>

+              <goal>wget</goal>

+            </goals>

+            <configuration>

+              <url>https://raw.githubusercontent.com/royale-extras/closure-compiler/royale/contrib/externs/jquery-${jquery.version}.js</url>

+              <outputFileName>jquery-${jquery.version}.js</outputFileName>

+              <outputDirectory>${project.build.directory}/downloads</outputDirectory>

+            </configuration>

+          </execution>

+        </executions>

+      </plugin>

+

+      <plugin>

+        <groupId>org.apache.royale.compiler</groupId>

+        <artifactId>royale-maven-plugin</artifactId>

+        <version>${royale.compiler.version}</version>

+        <extensions>true</extensions>

+        <configuration>

+          <includeSources>true</includeSources>

+          <externcInput>

+            <fileSet>

+              <directory>${project.basedir}/target/downloads</directory>

+              <includes>

+                <include>**/*.js</include>

+              </includes>

+            </fileSet>

+          </externcInput>

+          <externcConfig>

+            <!-- JQuery -->

+            <!--class-to-function><class>$</class></class-to-function-->

+

+            <class-excludes>

+              <class-exclude>

+                <className>Deferred</className>

+              </class-exclude>

+              <class-exclude>

+                <className>jQuery.deferred</className>

+              </class-exclude>

+              <class-exclude>

+                <className>jQuery.Event</className>

+              </class-exclude>

+              <class-exclude>

+                <className>jQuery.Deferred</className>

+              </class-exclude>

+              <class-exclude>

+                <className>$.Event</className>

+              </class-exclude>

+              <class-exclude>

+                <className>$.Deferred</className>

+              </class-exclude>

+              <class-exclude>

+                <className>$.deferred</className>

+              </class-exclude>

+            </class-excludes>

+

+            <excludes>

+              <exclude>

+                <className>jQuery</className>

+                <name>is</name>

+              </exclude>

+              <exclude>

+                <className>jQuery</className>

+                <name>promise</name>

+              </exclude>

+              <exclude>

+                <className>jQuery</className>

+                <name>getJSON</name>

+              </exclude>

+              <exclude>

+                <className>jQuery</className>

+                <name>ajax</name>

+              </exclude>

+              <exclude>

+                <className>jQuery</className>

+                <name>when</name>

+              </exclude>

+              <exclude>

+                <className>jQuery</className>

+                <name>post</name>

+              </exclude>

+              <exclude>

+                <className>jQuery</className>

+                <name>getScript</name>

+              </exclude>

+              <exclude>

+                <className>jQuery</className>

+                <name>Callbacks</name>

+              </exclude>

+              <exclude>

+                <className>jQuery.jqXHR</className>

+                <name>onreadystatechange</name>

+              </exclude>

+            </excludes>

+          </externcConfig>

+          <includeFiles>

+            <include-file>

+              <name>externs/jquery-1.9.js</name>

+              <path>downloads/jquery-1.9.js</path>

+            </include-file>

+          </includeFiles>

+          <skipSwc>true</skipSwc>

+        </configuration>

+        <dependencies>

+          <dependency>

+            <groupId>org.apache.royale.compiler</groupId>

+            <artifactId>compiler-jx</artifactId>

+            <version>${royale.compiler.version}</version>

+          </dependency>

+        </dependencies>

+      </plugin>

+    </plugins>

+  </build>

+

+  <dependencies>

+    <dependency>

+      <groupId>org.apache.royale.typedefs</groupId>

+      <artifactId>royale-typedefs-js</artifactId>

+      <version>0.9.4</version>

+      <type>swc</type>

+      <classifier>typedefs</classifier>

+      <scope>runtime</scope>

+    </dependency>

+  </dependencies>

+

+</project>

diff --git a/jquery/src/main/config/externc-config.xml b/jquery/src/main/config/externc-config.xml
index 7e8fe3f..a0c5a16 100644
--- a/jquery/src/main/config/externc-config.xml
+++ b/jquery/src/main/config/externc-config.xml
@@ -43,6 +43,7 @@
     <exclude><class>jQuery</class><name>post</name></exclude>
     <exclude><class>jQuery</class><name>getScript</name></exclude>
     <exclude><class>jQuery</class><name>Callbacks</name></exclude>
+    <exclude><class>jQuery.jqXHR</class><name>onreadystatechange</name></exclude>
 
     <class-exclude><class>Deferred</class></class-exclude>
     <class-exclude><class>jQuery.deferred</class></class-exclude>
diff --git a/js/build.xml b/js/build.xml
index 757bfa0..79179fc 100644
--- a/js/build.xml
+++ b/js/build.xml
@@ -102,6 +102,7 @@
         <get src="https://raw.githubusercontent.com/royale-extras/closure-compiler/royale/contrib/externs/svg.js" dest="${basedir}/target/downloads/svg.js" ignoreerrors="true" skipexisting="false"/>
         <get src="https://raw.githubusercontent.com/royale-extras/closure-compiler/royale/externs/es3.js" dest="${basedir}/target/downloads/es3.js" ignoreerrors="true" skipexisting="false"/>
         <get src="https://raw.githubusercontent.com/royale-extras/closure-compiler/royale/externs/es6.js" dest="${basedir}/target/downloads/es6.js" ignoreerrors="true" skipexisting="false"/>
+        <get src="https://raw.githubusercontent.com/royale-extras/closure-compiler/royale/externs/browser/w3c_composition_event.js" dest="${basedir}/target/downloads/browser/w3c_composition_event.js" ignoreerrors="true" skipexisting="false"/>
         <get src="https://raw.githubusercontent.com/royale-extras/closure-compiler/royale/externs/browser/w3c_css.js" dest="${basedir}/target/downloads/browser/w3c_css.js" ignoreerrors="true" skipexisting="false"/>
         <get src="https://raw.githubusercontent.com/royale-extras/closure-compiler/royale/externs/browser/gecko_dom.js" dest="${basedir}/target/downloads/browser/gecko_dom.js" ignoreerrors="true" skipexisting="false"/>
         <get src="https://raw.githubusercontent.com/royale-extras/closure-compiler/royale/externs/browser/w3c_dom2.js" dest="${basedir}/target/downloads/browser/w3c_dom2.js" ignoreerrors="true" skipexisting="false"/>
@@ -121,6 +122,11 @@
             <param name="destDir" value="${basedir}/target/downloads" />
         </antcall>
         <antcall target="get-from-cache-if-needed" >
+            <param name="srcFile" value="w3c_composition_event.js" />
+            <param name="destFile" value="w3c_composition_event.js" />
+            <param name="destDir" value="${basedir}/target/downloads/browser" />
+        </antcall>
+        <antcall target="get-from-cache-if-needed" >
             <param name="srcFile" value="w3c_css.js" />
             <param name="destFile" value="w3c_css.js" />
             <param name="destDir" value="${basedir}/target/downloads/browser" />
diff --git a/js/pom.xml b/js/pom.xml
index 7e1a621..50291f4 100644
--- a/js/pom.xml
+++ b/js/pom.xml
@@ -1,267 +1,309 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-  Licensed to the Apache Software Foundation (ASF) under one or more
-  contributor license agreements.  See the NOTICE file distributed with
-  this work for additional information regarding copyright ownership.
-  The ASF licenses this file to You 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.
-
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.apache.royale.typedefs</groupId>
-    <artifactId>royale-typedefs-parent</artifactId>
-    <version>0.9.2</version>
-  </parent>
-
-  <artifactId>royale-typedefs-js</artifactId>
-  <version>0.9.2</version>
-  <packaging>swc</packaging>
-
-  <name>Apache Royale: TypeDefs: JS</name>
-
-  <build>
-    <sourceDirectory>src/main/royale</sourceDirectory>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.royale.compiler</groupId>
-        <artifactId>compiler-build-tools</artifactId>
-        <version>${royale.build-tools.version}</version>
-        <executions>
-          <execution>
-            <id>unpack-closure-externs</id>
-            <phase>validate</phase>
-            <goals>
-              <goal>unpack-resources</goal>
-            </goals>
-            <configuration>
-              <resource>externs.zip</resource>
-            </configuration>
-          </execution>
-        </executions>
-        <!--
-            Dependency to the closure compiler externs artifact so
-            the "unpack-resources" goal can find the externs.zip
-        -->
-        <dependencies>
-          <dependency>
-            <groupId>com.google.javascript</groupId>
-            <artifactId>closure-compiler-externs</artifactId>
-            <version>v20170626</version>
-          </dependency>
-        </dependencies>
-      </plugin>
-      <!-- Download JavaScript from GitHub -->
-      <plugin>
-        <groupId>com.googlecode.maven-download-plugin</groupId>
-        <artifactId>download-maven-plugin</artifactId>
-        <version>1.2.1</version>
-        <executions>
-          <execution>
-            <id>get-svg</id>
-            <phase>validate</phase>
-            <goals>
-              <goal>wget</goal>
-            </goals>
-            <configuration>
-              <url>https://raw.githubusercontent.com/royale-extras/closure-compiler/royale/contrib/externs/svg.js</url>
-              <outputFileName>svg.js</outputFileName>
-              <outputDirectory>${project.build.directory}/downloads</outputDirectory>
-              <skipCache>true</skipCache>
-            </configuration>
-          </execution>
-          <execution>
-            <id>get-es3</id>
-            <phase>validate</phase>
-            <goals>
-              <goal>wget</goal>
-            </goals>
-            <configuration>
-              <url>https://raw.githubusercontent.com/royale-extras/closure-compiler/royale/externs/es3.js</url>
-              <outputFileName>es3.js</outputFileName>
-              <outputDirectory>${project.build.directory}/downloads</outputDirectory>
-              <skipCache>true</skipCache>
-              <overwrite>true</overwrite>
-            </configuration>
-          </execution>
-          <execution>
-            <id>get-es6</id>
-            <phase>validate</phase>
-            <goals>
-              <goal>wget</goal>
-            </goals>
-            <configuration>
-              <url>https://raw.githubusercontent.com/royale-extras/closure-compiler/royale/externs/es6.js</url>
-              <outputFileName>es6.js</outputFileName>
-              <outputDirectory>${project.build.directory}/downloads</outputDirectory>
-              <skipCache>true</skipCache>
-              <overwrite>true</overwrite>
-            </configuration>
-          </execution>
-          <execution>
-            <id>get-w3c_css</id>
-            <phase>validate</phase>
-            <goals>
-              <goal>wget</goal>
-            </goals>
-            <configuration>
-              <url>https://raw.githubusercontent.com/royale-extras/closure-compiler/royale/externs/browser/w3c_css.js</url>
-              <outputFileName>w3c_css.js</outputFileName>
-              <outputDirectory>${project.build.directory}/downloads/browser</outputDirectory>
-              <skipCache>true</skipCache>
-              <overwrite>true</overwrite>
-            </configuration>
-          </execution>
-          <execution>
-            <id>get-gecko_dom</id>
-            <phase>validate</phase>
-            <goals>
-              <goal>wget</goal>
-            </goals>
-            <configuration>
-              <url>https://raw.githubusercontent.com/royale-extras/closure-compiler/royale/externs/browser/gecko_dom.js</url>
-              <outputFileName>gecko_dom.js</outputFileName>
-              <outputDirectory>${project.build.directory}/downloads/browser</outputDirectory>
-              <skipCache>true</skipCache>
-              <overwrite>true</overwrite>
-            </configuration>
-          </execution>
-          <execution>
-            <id>get-w3c_dom2</id>
-            <phase>validate</phase>
-            <goals>
-              <goal>wget</goal>
-            </goals>
-            <configuration>
-              <url>https://raw.githubusercontent.com/royale-extras/closure-compiler/royale/externs/browser/w3c_dom2.js</url>
-              <outputFileName>w3c_dom2.js</outputFileName>
-              <outputDirectory>${project.build.directory}/downloads/browser</outputDirectory>
-              <skipCache>true</skipCache>
-              <overwrite>true</overwrite>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-
-      <plugin>
-        <groupId>org.apache.royale.compiler</groupId>
-        <artifactId>royale-maven-plugin</artifactId>
-        <version>${royale.compiler.version}</version>
-        <extensions>true</extensions>
-        <configuration>
-          <includeSources>true</includeSources>
-          <externcInput>
-            <fileSet>
-              <directory>${project.basedir}/src/main/javascript</directory>
-              <includes>
-                <include>**/*.js</include>
-              </includes>
-            </fileSet>
-            <fileSet>
-              <directory>${project.basedir}/target/downloads</directory>
-              <includes>
-                <include>*.js</include>
-                <include>browser/w3c_*.js</include>
-                <include>browser/window.js</include>
-                <include>browser/ie_dom.js</include>
-                <include>browser/gecko_*.js</include>
-                <include>browser/webkit_*.js</include>
-                <include>browser/iphone.js</include>
-                <!-- <include>browser/chrome.js</include> -->
-                <include>browser/flash.js</include>
-                <include>browser/page_visibility.js</include>
-                <include>browser/fileapi.js</include>
-                <include>browser/html5.js</include>
-                <include>browser/webgl.js</include>
-                <include>browser/webstorage.js</include>
-                <include>browser/whatwg_encoding.js</include>
-                <include>es6_collections.js</include>
-              </includes>
-              <excludes>
-                <exclude>browser/w3c_dom4.js</exclude>
-                <exclude>browser/w3c_serviceworker.js</exclude>
-                <exclude>browser/w3c_webcrypto.js</exclude>
-                <exclude>browser/gecko_css.js</exclude>
-                <exclude>browser/webkit_notifications.js</exclude>
-              </excludes>
-            </fileSet>
-          </externcInput>
-          <externcConfig>
-            <class-excludes>
-              <class-exclude>
-                <className>controlRange</className>
-              </class-exclude>
-              <class-exclude>
-                <className>CustomEvent</className>
-              </class-exclude>
-            </class-excludes>
-            <field-excludes>
-              <field-exclude>
-                <className>Window</className>
-                <field>focus</field>
-              </field-exclude>
-            </field-excludes>
-            <excludes>
-              <exclude>
-                <className>Array</className>
-                <name>toSource</name>
-              </exclude>
-              <exclude>
-                <className>Date</className>
-                <name>valueOf</name>
-              </exclude>
-              <exclude>
-                <className>String</className>
-                <name>valueOf</name>
-              </exclude>
-              <!-- SVG -->
-              <exclude>
-                <className>SVGStylable</className>
-                <name>className</name>
-              </exclude>
-              <exclude>
-                <className>SVGStylable</className>
-                <name>style</name>
-              </exclude>
-              <exclude>
-                <className>SVGLocatable</className>
-                <name>farthestViewportElement</name>
-              </exclude>
-              <exclude>
-                <className>SVGLocatable</className>
-                <name>nearestViewportElement</name>
-              </exclude>
-            </excludes>
-          </externcConfig>
-          <includeFiles>
-            <includeFile>
-              <name>externs/svg.js</name>
-              <path>downloads/svg.js</path>
-            </includeFile>
-          </includeFiles>
-          <skipSwc>true</skipSwc>
-        </configuration>
-        <dependencies>
-          <dependency>
-            <groupId>org.apache.royale.compiler</groupId>
-            <artifactId>compiler-jx</artifactId>
-            <version>${royale.compiler.version}</version>
-          </dependency>
-        </dependencies>
-      </plugin>
-    </plugins>
-  </build>
-
-</project>
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+

+  Licensed to the Apache Software Foundation (ASF) under one or more

+  contributor license agreements.  See the NOTICE file distributed with

+  this work for additional information regarding copyright ownership.

+  The ASF licenses this file to You 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.

+

+-->

+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

+  <modelVersion>4.0.0</modelVersion>

+

+  <parent>

+    <groupId>org.apache.royale.typedefs</groupId>

+    <artifactId>royale-typedefs-parent</artifactId>

+    <version>0.9.4</version>

+  </parent>

+

+  <artifactId>royale-typedefs-js</artifactId>

+  <version>0.9.4</version>

+  <packaging>swc</packaging>

+

+  <name>Apache Royale: TypeDefs: JS</name>

+

+  <build>

+    <sourceDirectory>src/main/royale</sourceDirectory>

+    <plugins>

+      <plugin>

+        <groupId>org.apache.royale.compiler</groupId>

+        <artifactId>compiler-build-tools</artifactId>

+        <version>${royale.build-tools.version}</version>

+        <executions>

+          <execution>

+            <id>unpack-closure-externs</id>

+            <phase>validate</phase>

+            <goals>

+              <goal>unpack-resources</goal>

+            </goals>

+            <configuration>

+              <resource>externs.zip</resource>

+            </configuration>

+          </execution>

+        </executions>

+        <!--

+            Dependency to the closure compiler externs artifact so

+            the "unpack-resources" goal can find the externs.zip

+        -->

+        <dependencies>

+          <dependency>

+            <groupId>com.google.javascript</groupId>

+            <artifactId>closure-compiler-externs</artifactId>

+            <version>v20170626</version>

+          </dependency>

+        </dependencies>

+      </plugin>

+      <!-- Download JavaScript from GitHub -->

+      <plugin>

+        <groupId>com.googlecode.maven-download-plugin</groupId>

+        <artifactId>download-maven-plugin</artifactId>

+        <version>1.2.1</version>

+        <executions>

+          <execution>

+            <id>get-svg</id>

+            <phase>validate</phase>

+            <goals>

+              <goal>wget</goal>

+            </goals>

+            <configuration>

+              <url>https://raw.githubusercontent.com/royale-extras/closure-compiler/royale/contrib/externs/svg.js</url>

+              <outputFileName>svg.js</outputFileName>

+              <outputDirectory>${project.build.directory}/downloads</outputDirectory>

+              <skipCache>true</skipCache>

+            </configuration>

+          </execution>

+          <execution>

+            <id>get-es3</id>

+            <phase>validate</phase>

+            <goals>

+              <goal>wget</goal>

+            </goals>

+            <configuration>

+              <url>https://raw.githubusercontent.com/royale-extras/closure-compiler/royale/externs/es3.js</url>

+              <outputFileName>es3.js</outputFileName>

+              <outputDirectory>${project.build.directory}/downloads</outputDirectory>

+              <skipCache>true</skipCache>

+              <overwrite>true</overwrite>

+            </configuration>

+          </execution>

+          <execution>

+            <id>get-es6</id>

+            <phase>validate</phase>

+            <goals>

+              <goal>wget</goal>

+            </goals>

+            <configuration>

+              <url>https://raw.githubusercontent.com/royale-extras/closure-compiler/royale/externs/es6.js</url>

+              <outputFileName>es6.js</outputFileName>

+              <outputDirectory>${project.build.directory}/downloads</outputDirectory>

+              <skipCache>true</skipCache>

+              <overwrite>true</overwrite>

+            </configuration>

+          </execution>

+          <execution>

+            <id>get-w3c_composition_event</id>

+            <phase>validate</phase>

+            <goals>

+              <goal>wget</goal>

+            </goals>

+            <configuration>

+              <url>https://raw.githubusercontent.com/royale-extras/closure-compiler/royale/externs/browser/w3c_composition_event.js</url>

+              <outputFileName>w3c_composition_event.js</outputFileName>

+              <outputDirectory>${project.build.directory}/downloads/browser</outputDirectory>

+              <skipCache>true</skipCache>

+              <overwrite>true</overwrite>

+            </configuration>

+          </execution>

+          <execution>

+            <id>get-w3c_css</id>

+            <phase>validate</phase>

+            <goals>

+              <goal>wget</goal>

+            </goals>

+            <configuration>

+              <url>https://raw.githubusercontent.com/royale-extras/closure-compiler/royale/externs/browser/w3c_css.js</url>

+              <outputFileName>w3c_css.js</outputFileName>

+              <outputDirectory>${project.build.directory}/downloads/browser</outputDirectory>

+              <skipCache>true</skipCache>

+              <overwrite>true</overwrite>

+            </configuration>

+          </execution>

+          <execution>

+            <id>get-gecko_dom</id>

+            <phase>validate</phase>

+            <goals>

+              <goal>wget</goal>

+            </goals>

+            <configuration>

+              <url>https://raw.githubusercontent.com/royale-extras/closure-compiler/royale/externs/browser/gecko_dom.js</url>

+              <outputFileName>gecko_dom.js</outputFileName>

+              <outputDirectory>${project.build.directory}/downloads/browser</outputDirectory>

+              <skipCache>true</skipCache>

+              <overwrite>true</overwrite>

+            </configuration>

+          </execution>

+          <execution>

+            <id>get-w3c_dom2</id>

+            <phase>validate</phase>

+            <goals>

+              <goal>wget</goal>

+            </goals>

+            <configuration>

+              <url>https://raw.githubusercontent.com/royale-extras/closure-compiler/royale/externs/browser/w3c_dom2.js</url>

+              <outputFileName>w3c_dom2.js</outputFileName>

+              <outputDirectory>${project.build.directory}/downloads/browser</outputDirectory>

+              <skipCache>true</skipCache>

+              <overwrite>true</overwrite>

+            </configuration>

+          </execution>

+        </executions>

+      </plugin>

+

+      <plugin>

+        <groupId>org.apache.royale.compiler</groupId>

+        <artifactId>royale-maven-plugin</artifactId>

+        <version>${royale.compiler.version}</version>

+        <extensions>true</extensions>

+        <configuration>

+          <includeSources>true</includeSources>

+          <externcInput>

+            <fileSet>

+              <directory>${project.basedir}/src/main/javascript</directory>

+              <includes>

+                <include>**/*.js</include>

+              </includes>

+            </fileSet>

+            <fileSet>

+              <directory>${project.basedir}/target/downloads</directory>

+              <includes>

+                <include>*.js</include>

+                <include>browser/w3c_*.js</include>

+                <include>browser/window.js</include>

+                <include>browser/ie_dom.js</include>

+                <include>browser/gecko_*.js</include>

+                <include>browser/webkit_*.js</include>

+                <include>browser/iphone.js</include>

+                <!-- <include>browser/chrome.js</include> -->

+                <include>browser/flash.js</include>

+                <include>browser/page_visibility.js</include>

+                <include>browser/fileapi.js</include>

+                <include>browser/html5.js</include>

+                <include>browser/webgl.js</include>

+                <include>browser/webstorage.js</include>

+                <include>browser/whatwg_encoding.js</include>

+                <include>es6_collections.js</include>

+              </includes>

+              <excludes>

+                <exclude>browser/w3c_dom4.js</exclude>

+                <exclude>browser/w3c_serviceworker.js</exclude>

+                <exclude>browser/w3c_webcrypto.js</exclude>

+                <exclude>browser/gecko_css.js</exclude>

+                <exclude>browser/webkit_notifications.js</exclude>

+              </excludes>

+            </fileSet>

+          </externcInput>

+          <externcConfig>

+            <class-excludes>

+              <class-exclude>

+                <className>controlRange</className>

+              </class-exclude>

+              <class-exclude>

+                <className>CustomEvent</className>

+              </class-exclude>

+            </class-excludes>

+            <field-excludes>

+              <field-exclude>

+                <className>Window</className>

+                <field>focus</field>

+              </field-exclude>

+            </field-excludes>

+            <excludes>

+              <exclude>

+                <className>Array</className>

+                <name>toSource</name>

+              </exclude>

+              <exclude>

+                <className>Date</className>

+                <name>valueOf</name>

+              </exclude>

+              <exclude>

+                <className>String</className>

+                <name>valueOf</name>

+              </exclude>

+              <!-- SVG -->

+              <exclude>

+                <className>SVGStylable</className>

+                <name>className</name>

+              </exclude>

+              <exclude>

+                <className>SVGStylable</className>

+                <name>style</name>

+              </exclude>

+              <exclude>

+                <className>SVGLocatable</className>

+                <name>farthestViewportElement</name>

+              </exclude>

+              <exclude>

+                <className>SVGLocatable</className>

+                <name>nearestViewportElement</name>

+              </exclude>

+              <exclude>

+                <className>Document</className>

+                <name>loadXML</name>

+              </exclude>

+              <exclude>

+                <className>Document</className>

+                <name>open</name>

+              </exclude>

+              <exclude>

+                <className>Document</className>

+                <name>close</name>

+              </exclude>

+              <exclude>

+                <className>Document</className>

+                <name>createTreeWalker</name>

+              </exclude>

+              <exclude>

+                <className>Element</className>

+                <name>load</name>

+              </exclude>

+              <exclude>

+                <className>Event</className>

+                <name>initUIEvent</name>

+              </exclude>

+              <exclude>

+                <className>Event</className>

+                <name>initMessageEvent</name>

+              </exclude>

+            </excludes>

+          </externcConfig>

+          <includeFiles>

+            <includeFile>

+              <name>externs/svg.js</name>

+              <path>downloads/svg.js</path>

+            </includeFile>

+          </includeFiles>

+          <skipSwc>true</skipSwc>

+        </configuration>

+        <dependencies>

+          <dependency>

+            <groupId>org.apache.royale.compiler</groupId>

+            <artifactId>compiler-jx</artifactId>

+            <version>${royale.compiler.version}</version>

+          </dependency>

+        </dependencies>

+      </plugin>

+    </plugins>

+  </build>

+

+</project>

diff --git a/js/src/main/config/externc-config.xml b/js/src/main/config/externc-config.xml
index 82bedb6..08eb3d4 100644
--- a/js/src/main/config/externc-config.xml
+++ b/js/src/main/config/externc-config.xml
@@ -38,6 +38,7 @@
         <path-element>../../../target/downloads/browser/w3c_anim_timing.js</path-element>
         <path-element>../../../target/downloads/browser/w3c_audio.js</path-element>
         <path-element>../../../target/downloads/browser/w3c_batterystatus.js</path-element>
+        <path-element>../../../target/downloads/browser/w3c_composition_event.js</path-element>
         <path-element>../../../target/downloads/browser/w3c_css.js</path-element>
         <path-element>../../../target/downloads/browser/w3c_css3d.js</path-element>
         <path-element>../../../target/downloads/browser/w3c_device_sensor_event.js</path-element>
@@ -109,6 +110,24 @@
     <class-exclude>
         <class>controlRange</class>
         <class>ITemplateArray</class>
+        <!-- file-system API abandoned by W3C -->
+        <class>DirectoryEntry</class>
+        <class>DirectoryReader</class>
+        <class>Entry</class>
+        <class>FileEntry</class>
+        <class>FileSystemFlags</class>
+        <class>FileSystem</class>
+        <class>LocalFileSystem</class>
+        <class>Metadata</class>
+        <class>requestFileSystem</class>
+        <class>resolveLocalFileSystemURI</class>
+        <class>webkitRequestFileSystem</class>
+        <class>webkitResolveLocalFileSystemURI</class>
+        <!-- file-writer API abandoned by W3C -->
+        <class>BlobBuilder</class>
+        <class>WebKitBlobBuilder</class>
+        <class>FileSaver</class>
+        <class>FileWriter</class>
     </class-exclude>
     
     <!-- Object.toString() is excluded by the ExternC compiler.  Otherwise
@@ -130,10 +149,93 @@
         <class>String</class>
         <name>raw</name>
     </exclude>
+    <exclude>
+        <class>Window</class>
+        <name>requestFileSystem</name>
+    </exclude>
+    <exclude>
+        <class>Window</class>
+        <name>resolveLocalFileSystemURI</name>
+    </exclude>
+    <exclude>
+        <class>Window</class>
+        <name>webkitRequestFileSystem</name>
+    </exclude>
+    <exclude>
+        <class>Window</class>
+        <name>webkitResolveLocalFileSystemURI</name>
+    </exclude>
+    <exclude>
+        <class>DataTransferItem</class>
+        <name>webkitGetAsEntry</name>
+    </exclude>
+    <exclude>
+        <class>Document</class>
+        <name>loadXML</name>
+    </exclude>
+    <exclude>
+        <class>Event</class>
+        <name>initUIEvent</name>
+    </exclude>
+    <exclude>
+        <class>Event</class>
+        <name>initMessageEvent</name>
+    </exclude>
+    <exclude>
+        <class>Element</class>
+        <name>load</name>
+    </exclude>
+    <exclude>
+        <class>Document</class>
+        <name>open</name>
+    </exclude>
+    <exclude>
+        <class>Document</class>
+        <name>close</name>
+    </exclude>
+    <exclude>
+        <class>Document</class>
+        <name>createTreeWalker</name>
+    </exclude>
     <!-- SVG -->
     <exclude><class>SVGStylable</class><name>className</name></exclude>
     <exclude><class>SVGStylable</class><name>style</name></exclude>
     <exclude><class>SVGLocatable</class><name>farthestViewportElement</name></exclude>
     <exclude><class>SVGLocatable</class><name>nearestViewportElement</name></exclude>
+    
 
+    <!-- read-only properties where we only emit a 'get' accessor method -->
+    <field-readonly>
+        <class>Date</class>
+        <name>timezoneOffset</name>
+    </field-readonly>
+    
+    <!-- externs use @const for both read-only as well as true constants
+         and you can't give the const an initial value either.
+         From a JS perspective that's fine, you can't write to a const or
+         a read-only and the initial value doesn't matter since it will
+         be provided by the extern, but we want true constants in order 
+         to allow constants as parameter initializers and other places
+         where compile-time constants are required -->
+    <true-constant>
+        <class>int</class>
+        <name>MAX_VALUE</name>
+        <value>2147483647</value>
+    </true-constant>
+    <true-constant>
+        <class>int</class>
+        <name>MIN_VALUE</name>
+        <value>-2147483648</value>
+    </true-constant>
+    <true-constant>
+        <class>uint</class>
+        <name>MAX_VALUE</name>
+        <value>4294967295</value>
+    </true-constant>
+    <true-constant>
+        <class>uint</class>
+        <name>MIN_VALUE</name>
+        <value>0</value>
+    </true-constant>
+    
 </royale-config>
diff --git a/js/src/main/javascript/missing.js b/js/src/main/javascript/missing.js
index 88b5631..d1c32b0 100644
--- a/js/src/main/javascript/missing.js
+++ b/js/src/main/javascript/missing.js
@@ -55,6 +55,16 @@
 /**
 * @constructor
 */
+function performance() {};
+
+/**
+* @return {number} time to return
+*/
+performance.now = function() {};
+
+/**
+* @constructor
+*/
 function dialogPolyfill() {};
 
 /**
@@ -213,30 +223,118 @@
  */
 Array.prototype.sortOn = function(fieldName, opt_options) {};
 
-
 /**
- * @type {number}
- * @const
+ * @const {int}
  */
 int.MAX_VALUE;
 
 
 /**
- * @type {number}
- * @const
+ * @const {int}
  */
 int.MIN_VALUE;
 
 
 /**
- * @type {number}
- * @const
+ * @const {uint}
  */
 uint.MAX_VALUE;
 
 
 /**
- * @type {number}
- * @const
+ * @const {uint}
  */
 uint.MIN_VALUE;
+
+// additions to the Date prototype to allow AS code to use these properties
+
+/**
+ * @type {number}
+ */
+Date.prototype.date;
+
+/**
+ * @type {number}
+ */
+Date.prototype.dateUTC;
+
+/**
+ * @type {number}
+ */
+Date.prototype.day;
+
+/**
+ * @type {number}
+ */
+Date.prototype.dayUTC;
+
+/**
+ * @type {number}
+ */
+Date.prototype.fullYear;
+
+/**
+ * @type {number}
+ */
+Date.prototype.fullYearUTC;
+
+/**
+ * @type {number}
+ */
+Date.prototype.hours;
+
+/**
+ * @type {number}
+ */
+Date.prototype.hoursUTC;
+
+/**
+ * @type {number}
+ */
+Date.prototype.milliseconds;
+
+/**
+ * @type {number}
+ */
+Date.prototype.millisecondsUTC;
+
+/**
+ * @type {number}
+ */
+Date.prototype.minutes;
+
+/**
+ * @type {number}
+ */
+Date.prototype.minutesUTC;
+
+/**
+ * @type {number}
+ */
+Date.prototype.month;
+
+/**
+ * @type {number}
+ */
+Date.prototype.monthUTC;
+
+/**
+ * @type {number}
+ */
+Date.prototype.seconds;
+
+/**
+ * @type {number}
+ */
+Date.prototype.secondsUTC;
+
+/**
+ * @type {number}
+ */
+Date.prototype.time;
+
+/**
+ * @type {number}
+ */
+Date.prototype.timezoneOffset;
+
diff --git a/node/pom.xml b/node/pom.xml
index 0970bd8..d997008 100644
--- a/node/pom.xml
+++ b/node/pom.xml
@@ -23,11 +23,11 @@
   <parent>
     <groupId>org.apache.royale.typedefs</groupId>
     <artifactId>royale-typedefs-parent</artifactId>
-    <version>0.9.2</version>
+    <version>0.9.4</version>
   </parent>
 
   <artifactId>royale-typedefs-node</artifactId>
-  <version>0.9.2</version>
+  <version>0.9.4</version>
   <packaging>swc</packaging>
 
   <name>Apache Royale: TypeDefs: Node</name>
@@ -228,7 +228,7 @@
     <dependency>
       <groupId>org.apache.royale.typedefs</groupId>
       <artifactId>royale-typedefs-js</artifactId>
-      <version>0.9.2</version>
+      <version>0.9.4</version>
       <type>swc</type>
       <classifier>typedefs</classifier>
       <scope>runtime</scope>
diff --git a/pom.xml b/pom.xml
index 804d71f..3815884 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,309 +1,304 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-  Licensed to the Apache Software Foundation (ASF) under one or more
-  contributor license agreements.  See the NOTICE file distributed with
-  this work for additional information regarding copyright ownership.
-  The ASF licenses this file to You 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.
-
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.apache</groupId>
-    <artifactId>apache</artifactId>
-    <version>18</version>
-  </parent>
-
-  <groupId>org.apache.royale.typedefs</groupId>
-  <artifactId>royale-typedefs-parent</artifactId>
-  <version>0.9.2</version>
-  <packaging>pom</packaging>
-
-  <name>Apache Royale: TypeDefs: Parent</name>
-
-  <scm>
-    <connection>scm:git:git@github.com:apache/royale-typedefs.git</connection>
-    <developerConnection>scm:git:git@github.com:apache/royale-typedefs.git</developerConnection>
-    <url>scm:git:git@github.com:apache/royale-typedefs.git</url>
-    <tag>org.apache.royale.typedefs-0.9.2-rc2</tag>
-  </scm>
-
-  <properties>
-    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-    <project.reporting.outputencoding>UTF-8</project.reporting.outputencoding>
-    <maven.version>3.3.1</maven.version>
-
-    <royale.compiler.version>0.9.2</royale.compiler.version>
-    <royale.build-tools.version>1.0.0</royale.build-tools.version>
-
-    <git.executable>git</git.executable>
-
-    <!-- URL of the ASF SonarQube server -->
-    <sonar.host.url>https://builds.apache.org/analysis</sonar.host.url>
-    <!-- Exclude all generated code -->
-    <sonar.exclusions>file:**/generated-sources/**</sonar.exclusions>
-  </properties>
-
-  <!-- Only configure the site distribution as the rest is handled by the apache parent -->
-  <distributionManagement>
-    <site>
-      <id>website</id>
-      <!-- TODO: Set this to the correct url -->
-      <url>scp://www.mycompany.com/www/docs/project/</url>
-    </site>
-  </distributionManagement>
-
-  <issueManagement>
-    <system>GitHub</system>
-    <url>https://github.com/apache/royale-asjs/issues</url>
-  </issueManagement>
-
-  <mailingLists>
-    <mailingList>
-      <name>Apache Royale User List</name>
-      <subscribe>users-subscribe@royale.apache.org</subscribe>
-      <unsubscribe>users-unsubscribe@royale.apache.org</unsubscribe>
-      <post>users@royale.apache.org</post>
-      <archive>http://mail-archives.apache.org/mod_mbox/royale-users/</archive>
-    </mailingList>
-    <mailingList>
-      <name>Apache Royale Developer List</name>
-      <subscribe>dev-subscribe@royale.apache.org</subscribe>
-      <unsubscribe>dev-unsubscribe@royale.apache.org</unsubscribe>
-      <post>dev@royale.apache.org</post>
-      <archive>http://mail-archives.apache.org/mod_mbox/royale-dev/</archive>
-    </mailingList>
-  </mailingLists>
-
-  <modules>
-    <module>cordova</module>
-    <module>createjs</module>
-    <module>GCL</module>
-    <module>google_maps</module>
-    <module>jasmine</module>
-    <module>jquery</module>
-    <module>js</module>
-    <module>node</module>
-  </modules>
-
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.sonarsource.scanner.maven</groupId>
-        <artifactId>sonar-maven-plugin</artifactId>
-        <version>3.2</version>
-      </plugin>
-
-      <!-- Check if all source files have the required apache license headers -->
-      <plugin>
-        <groupId>org.apache.rat</groupId>
-        <artifactId>apache-rat-plugin</artifactId>
-        <version>0.12</version>
-        <executions>
-          <execution>
-            <id>license-check</id>
-            <phase>verify</phase>
-            <goals>
-              <goal>check</goal>
-            </goals>
-          </execution>
-        </executions>
-        <configuration>
-            <excludes>
-                <!-- Patch files aren't supposed to have headers -->
-                <exclude>**/*.patch</exclude>
-            </excludes>
-        </configuration>
-        <dependencies>
-          <dependency>
-            <groupId>org.apache.maven.doxia</groupId>
-            <artifactId>doxia-core</artifactId>
-            <version>1.6</version>
-            <exclusions>
-              <exclusion>
-                <groupId>xerces</groupId>
-                <artifactId>xercesImpl</artifactId>
-              </exclusion>
-            </exclusions>
-          </dependency>
-        </dependencies>
-      </plugin>
-
-      <!-- Configure the Site generation -->
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-site-plugin</artifactId>
-        <version>3.4</version>
-        <configuration>
-          <generateReports>true</generateReports>
-          <generateSitemap>true</generateSitemap>
-          <relativizeDecorationLinks>false</relativizeDecorationLinks>
-          <locales>en</locales>
-          <inputEncoding>${project.build.sourceEncoding}</inputEncoding>
-          <outputEncoding>${project.reporting.outputencoding}</outputEncoding>
-        </configuration>
-        <dependencies>
-          <dependency>
-            <groupId>org.asciidoctor</groupId>
-            <artifactId>asciidoctor-maven-plugin</artifactId>
-            <version>1.5.3</version>
-          </dependency>
-        </dependencies>
-      </plugin>
-
-      <plugin>
-        <groupId>org.asciidoctor</groupId>
-        <artifactId>asciidoctor-maven-plugin</artifactId>
-        <version>1.5.3</version>
-        <dependencies>
-          <dependency>
-            <groupId>org.asciidoctor</groupId>
-            <artifactId>asciidoctorj-diagram</artifactId>
-            <version>1.3.1</version>
-          </dependency>
-        </dependencies>
-        <configuration>
-          <requires>
-            <require>asciidoctor-diagram</require>
-          </requires>
-          <attributes>
-            <!-- Example below shows how to specify in this pom instead of System's PATH, the location of dot command of Graphviz, required by PlantUML libraries -->
-            <!-- Windows:
-                <graphvizdot>C:\Program Files (x86)\Graphviz2.38\bin\dot.exe</graphvizdot>
-            -->
-            <!-- *nix :
-                <graphvizdot>/usr/local/bin/dot</graphvizdot>
-            -->
-          </attributes>
-        </configuration>
-        <!--executions>
-            <execution>
-                <id>generate-html-doc</id>
-                <phase>generate-resources</phase>
-                <goals>
-                    <goal>process-asciidoc</goal>
-                </goals>
-                <configuration>
-                    <backend>html5</backend>
-                    <attributes>
-                        <imagesdir>./images</imagesdir>
-                        <toc>left</toc>
-                        <icons>font</icons>
-                        <sectanchors>true</sectanchors>
-                        <idprefix />
-                        <idseparator>-</idseparator>
-                    </attributes>
-                </configuration>
-            </execution>
-        </executions-->
-      </plugin>
-    </plugins>
-  </build>
-
-  <reporting>
-    <plugins>
-      <!-- Process the asciidoctor resources in the src/site/asciidoc directory -->
-      <plugin>
-        <groupId>org.asciidoctor</groupId>
-        <artifactId>asciidoctor-maven-plugin</artifactId>
-        <version>1.5.3</version>
-        <configuration>
-          <attributes>
-            <icons>font</icons>
-            <source-highlighter>coderay</source-highlighter>
-            <coderay-css>style</coderay-css>
-            <toclevels>2</toclevels>
-          </attributes>
-        </configuration>
-      </plugin>
-
-      <!-- Generates a changelog report from GIT commits -->
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-changelog-plugin</artifactId>
-        <version>2.3</version>
-        <configuration>
-          <!-- Automatically link Jira issues -->
-          <issueLinkUrl>https://issues.apache.org/jira/browse/%ISSUE%</issueLinkUrl>
-        </configuration>
-      </plugin>
-    </plugins>
-  </reporting>
-
-  <!--
-      We only need the git executable in the externs in order to apply patches.
-      On Windows machines we need to execute "git.exe" instead of "git".
-  -->
-  <profiles>
-    <profile>
-      <id>windows-machine</id>
-      <activation>
-        <os>
-          <family>Windows</family>
-        </os>
-      </activation>
-      <properties>
-        <git.executable>git.exe</git.executable>
-      </properties>
-    </profile>
-  </profiles>
-
-  <repositories>
-    <repository>
-      <id>apache-release</id>
-      <url>https://repository.apache.org/content/repositories/releases</url>
-      <releases>
-        <enabled>true</enabled>
-      </releases>
-      <snapshots>
-        <enabled>false</enabled>
-      </snapshots>
-    </repository>
-    <repository>
-      <id>apache-snapshots</id>
-      <url>https://repository.apache.org/content/repositories/snapshots</url>
-      <releases>
-        <enabled>false</enabled>
-      </releases>
-      <snapshots>
-        <enabled>true</enabled>
-      </snapshots>
-    </repository>
-  </repositories>
-
-  <pluginRepositories>
-    <pluginRepository>
-      <id>apache-plugins-release</id>
-      <url>https://repository.apache.org/content/repositories/releases</url>
-      <releases>
-        <enabled>true</enabled>
-      </releases>
-      <snapshots>
-        <enabled>false</enabled>
-      </snapshots>
-    </pluginRepository>
-    <pluginRepository>
-      <id>apache-plugins-snapshots</id>
-      <url>https://repository.apache.org/content/repositories/snapshots</url>
-      <releases>
-        <enabled>false</enabled>
-      </releases>
-      <snapshots>
-        <enabled>true</enabled>
-      </snapshots>
-    </pluginRepository>
-  </pluginRepositories>
-
-</project>
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+

+  Licensed to the Apache Software Foundation (ASF) under one or more

+  contributor license agreements.  See the NOTICE file distributed with

+  this work for additional information regarding copyright ownership.

+  The ASF licenses this file to You 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.

+

+-->

+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

+  <modelVersion>4.0.0</modelVersion>

+

+  <parent>

+    <groupId>org.apache</groupId>

+    <artifactId>apache</artifactId>

+    <version>18</version>

+  </parent>

+

+  <groupId>org.apache.royale.typedefs</groupId>

+  <artifactId>royale-typedefs-parent</artifactId>

+  <version>0.9.4</version>

+  <packaging>pom</packaging>

+

+  <name>Apache Royale: TypeDefs: Parent</name>

+

+  <scm>

+    <connection>scm:git:git@github.com:apache/royale-typedefs.git</connection>

+    <developerConnection>scm:git:git@github.com:apache/royale-typedefs.git</developerConnection>

+    <url>scm:git:git@github.com:apache/royale-typedefs.git</url>

+    <tag>org.apache.royale.typedefs-0.9.4-rc2</tag>

+  </scm>

+

+  <properties>

+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

+    <project.reporting.outputencoding>UTF-8</project.reporting.outputencoding>

+    <maven.version>3.3.1</maven.version>

+

+    <royale.compiler.version>0.9.4</royale.compiler.version>

+    <royale.build-tools.version>1.0.0</royale.build-tools.version>

+

+    <git.executable>git</git.executable>

+

+    <!-- URL of the ASF SonarQube server -->

+    <sonar.host.url>https://builds.apache.org/analysis</sonar.host.url>

+    <!-- Exclude all generated code -->

+    <sonar.exclusions>file:**/generated-sources/**</sonar.exclusions>

+  </properties>

+

+  <!-- Only configure the site distribution as the rest is handled by the apache parent -->

+  <distributionManagement>

+    <site>

+      <id>website</id>

+      <!-- TODO: Set this to the correct url -->

+      <url>scp://www.mycompany.com/www/docs/project/</url>

+    </site>

+  </distributionManagement>

+

+  <issueManagement>

+    <system>GitHub</system>

+    <url>https://github.com/apache/royale-asjs/issues</url>

+  </issueManagement>

+

+  <mailingLists>

+    <mailingList>

+      <name>Apache Royale User List</name>

+      <subscribe>users-subscribe@royale.apache.org</subscribe>

+      <unsubscribe>users-unsubscribe@royale.apache.org</unsubscribe>

+      <post>users@royale.apache.org</post>

+      <archive>http://mail-archives.apache.org/mod_mbox/royale-users/</archive>

+    </mailingList>

+    <mailingList>

+      <name>Apache Royale Developer List</name>

+      <subscribe>dev-subscribe@royale.apache.org</subscribe>

+      <unsubscribe>dev-unsubscribe@royale.apache.org</unsubscribe>

+      <post>dev@royale.apache.org</post>

+      <archive>http://mail-archives.apache.org/mod_mbox/royale-dev/</archive>

+    </mailingList>

+  </mailingLists>

+

+  <modules>

+    <module>cordova</module>

+    <module>createjs</module>

+    <module>GCL</module>

+    <module>google_maps</module>

+    <module>jasmine</module>

+    <module>jquery</module>

+    <module>js</module>

+    <module>node</module>

+  </modules>

+

+  <build>

+    <plugins>

+      <plugin>

+        <groupId>org.sonarsource.scanner.maven</groupId>

+        <artifactId>sonar-maven-plugin</artifactId>

+        <version>3.2</version>

+      </plugin>

+

+      <!-- Check if all source files have the required apache license headers -->

+      <plugin>

+        <groupId>org.apache.rat</groupId>

+        <artifactId>apache-rat-plugin</artifactId>

+        <version>0.12</version>

+        <executions>

+          <execution>

+            <id>license-check</id>

+            <phase>verify</phase>

+            <goals>

+              <goal>check</goal>

+            </goals>

+          </execution>

+        </executions>

+        <configuration>

+            <excludes>

+                <!-- Patch files aren't supposed to have headers -->

+                <exclude>**/*.patch</exclude>

+            </excludes>

+        </configuration>

+        <dependencies>

+          <dependency>

+            <groupId>org.apache.maven.doxia</groupId>

+            <artifactId>doxia-core</artifactId>

+            <version>1.6</version>

+            <exclusions>

+              <exclusion>

+                <groupId>xerces</groupId>

+                <artifactId>xercesImpl</artifactId>

+              </exclusion>

+            </exclusions>

+          </dependency>

+        </dependencies>

+      </plugin>

+

+      <!-- Configure the Site generation -->

+      <plugin>

+        <groupId>org.apache.maven.plugins</groupId>

+        <artifactId>maven-site-plugin</artifactId>

+        <version>3.4</version>

+        <configuration>

+          <generateReports>true</generateReports>

+          <generateSitemap>true</generateSitemap>

+          <relativizeDecorationLinks>false</relativizeDecorationLinks>

+          <locales>en</locales>

+          <inputEncoding>${project.build.sourceEncoding}</inputEncoding>

+          <outputEncoding>${project.reporting.outputencoding}</outputEncoding>

+        </configuration>

+        <dependencies>

+          <dependency>

+            <groupId>org.asciidoctor</groupId>

+            <artifactId>asciidoctor-maven-plugin</artifactId>

+            <version>1.5.3</version>

+          </dependency>

+        </dependencies>

+      </plugin>

+

+      <plugin>

+        <groupId>org.asciidoctor</groupId>

+        <artifactId>asciidoctor-maven-plugin</artifactId>

+        <version>1.5.3</version>

+        <dependencies>

+          <dependency>

+            <groupId>org.asciidoctor</groupId>

+            <artifactId>asciidoctorj-diagram</artifactId>

+            <version>1.5.9</version>

+          </dependency>

+        </dependencies>

+        <configuration>

+          <requires>

+            <require>asciidoctor-diagram</require>

+          </requires>

+          <attributes>

+            <!-- Example below shows how to specify in this pom instead of System's PATH, the location of dot command of Graphviz, required by PlantUML libraries -->

+            <!-- Windows:

+                <graphvizdot>C:\Program Files (x86)\Graphviz2.38\bin\dot.exe</graphvizdot>

+            -->

+            <!-- *nix :

+                <graphvizdot>/usr/local/bin/dot</graphvizdot>

+            -->

+          </attributes>

+        </configuration>

+      </plugin>

+    </plugins>

+    <pluginManagement>

+      <plugins>

+        <plugin>

+          <groupId>org.apache.maven.plugins</groupId>

+          <artifactId>maven-scm-plugin</artifactId>

+          <version>1.10.0</version>

+        </plugin>

+        <plugin>

+          <groupId>org.apache.maven.plugins</groupId>

+          <artifactId>maven-resources-plugin</artifactId>

+          <version>3.1.0</version>

+        </plugin>

+      </plugins>

+    </pluginManagement>

+  </build>

+

+  <reporting>

+    <plugins>

+      <!-- Process the asciidoctor resources in the src/site/asciidoc directory -->

+      <plugin>

+        <groupId>org.asciidoctor</groupId>

+        <artifactId>asciidoctor-maven-plugin</artifactId>

+        <version>1.5.3</version>

+        <configuration>

+          <attributes>

+            <icons>font</icons>

+            <source-highlighter>coderay</source-highlighter>

+            <coderay-css>style</coderay-css>

+            <toclevels>2</toclevels>

+          </attributes>

+        </configuration>

+      </plugin>

+

+      <!-- Generates a changelog report from GIT commits -->

+      <plugin>

+        <groupId>org.apache.maven.plugins</groupId>

+        <artifactId>maven-changelog-plugin</artifactId>

+        <version>2.3</version>

+        <configuration>

+          <!-- Automatically link Jira issues -->

+          <issueLinkUrl>https://issues.apache.org/jira/browse/%ISSUE%</issueLinkUrl>

+        </configuration>

+      </plugin>

+    </plugins>

+  </reporting>

+

+  <!--

+      We only need the git executable in the externs in order to apply patches.

+      On Windows machines we need to execute "git.exe" instead of "git".

+  -->

+  <profiles>

+    <profile>

+      <id>windows-machine</id>

+      <activation>

+        <os>

+          <family>Windows</family>

+        </os>

+      </activation>

+      <properties>

+        <git.executable>git.exe</git.executable>

+      </properties>

+    </profile>

+  </profiles>

+

+  <repositories>

+    <repository>

+      <id>apache-release</id>

+      <url>https://repository.apache.org/content/repositories/releases</url>

+      <releases>

+        <enabled>true</enabled>

+      </releases>

+      <snapshots>

+        <enabled>false</enabled>

+      </snapshots>

+    </repository>

+    <repository>

+      <id>apache-snapshots</id>

+      <url>https://repository.apache.org/content/repositories/snapshots</url>

+      <releases>

+        <enabled>false</enabled>

+      </releases>

+      <snapshots>

+        <enabled>true</enabled>

+      </snapshots>

+    </repository>

+  </repositories>

+

+  <pluginRepositories>

+    <pluginRepository>

+      <id>apache-plugins-release</id>

+      <url>https://repository.apache.org/content/repositories/releases</url>

+      <releases>

+        <enabled>true</enabled>

+      </releases>

+      <snapshots>

+        <enabled>false</enabled>

+      </snapshots>

+    </pluginRepository>

+    <pluginRepository>

+      <id>apache-plugins-snapshots</id>

+      <url>https://repository.apache.org/content/repositories/snapshots</url>

+      <releases>

+        <enabled>false</enabled>

+      </releases>

+      <snapshots>

+        <enabled>true</enabled>

+      </snapshots>

+    </pluginRepository>

+  </pluginRepositories>

+

+</project>

+