> Can you check in the 'js-debug' if the Main.js has an 'exportSymbol' > statement at the bottom? // Ensures the symbol will be visible after compiler renaming. goog.exportSymbol('Main', Main); Frédéric THOMAS
---------------------------------------- > From: e...@ixsoftware.nl > Date: Thu, 2 Jul 2015 17:34:58 +0200 > Subject: Re: [2/2] git commit: [flex-falcon] [refs/heads/develop] - GCC and > externs: add the 'externs.js' files to the SWCs; tell GCC to use those to > prevent renaming > To: dev@flex.apache.org > > Can you check in the 'js-debug' if the Main.js has an 'exportSymbol' > statement at the bottom? > > EdB > > > > On Thu, Jul 2, 2015 at 5:33 PM, Erik de Bruin <e...@ixsoftware.nl> wrote: > >> Are you using IntelliJ? >> >> Then you're on your own :-P >> >> I'll post my command line script, if that might help? >> >> EdB >> >> >> >> On Thu, Jul 2, 2015 at 5:31 PM, Frédéric THOMAS <webdoubl...@hotmail.com> >> wrote: >> >>> >>>> This commit makes the 'release' version of Fred's excellent example work >>>> (with warnings). Don't forget to rebuild the 'jquery' externs SWC, as it >>>> needs to pick up the JS file. >>> >>> I rebuilt falcon, the externs, the project and I still have >>> Uncaught ReferenceError: Main is not defined >>> with js-release, what did I miss ? >>> >>> Thanks, >>> Frédéric THOMAS >>> >>> >>> ---------------------------------------- >>>> From: erikdebr...@apache.org >>>> Date: Thu, 2 Jul 2015 15:19:13 +0200 >>>> Subject: Re: [2/2] git commit: [flex-falcon] [refs/heads/develop] - GCC >>> and externs: add the 'externs.js' files to the SWCs; tell GCC to use those >>> to prevent renaming >>>> To: dev@flex.apache.org >>>> >>>> This commit makes the 'release' version of Fred's excellent example work >>>> (with warnings). Don't forget to rebuild the 'jquery' externs SWC, as it >>>> needs to pick up the JS file. >>>> >>>> Looking further into those warnings. >>>> >>>> EdB >>>> >>>> >>>> >>>> On Thu, Jul 2, 2015 at 3:13 PM, <erikdebr...@apache.org> wrote: >>>> >>>>> GCC and externs: add the 'externs.js' files to the SWCs; tell GCC to >>> use >>>>> those to prevent renaming >>>>> >>>>> We've worked so hard to create AS classes from the Closure externs, >>> let's >>>>> not forget what these were originally intended for... and what we need >>> them >>>>> for: prevent renaming of externally declared functions. We needed to >>>>> include the original extern files in their respective SWCs so we can >>> later >>>>> present them to the GCC. >>>>> >>>>> Signed-off-by: Erik de Bruin <e...@ixsoftware.nl> >>>>> >>>>> >>>>> Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo >>>>> Commit: >>> http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/1f35e526 >>>>> Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/1f35e526 >>>>> Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/1f35e526 >>>>> >>>>> Branch: refs/heads/develop >>>>> Commit: 1f35e5260e580b8b40f95551f383a362c2474edd >>>>> Parents: e425a86 >>>>> Author: Erik de Bruin <e...@ixsoftware.nl> >>>>> Authored: Thu Jul 2 15:12:50 2015 +0200 >>>>> Committer: Erik de Bruin <e...@ixsoftware.nl> >>>>> Committed: Thu Jul 2 15:12:50 2015 +0200 >>>>> >>>>> ---------------------------------------------------------------------- >>>>> .../mxml/flexjs/MXMLFlexJSPublisher.java | 43 +++++++++++++++++++- >>>>> externs/jasmine/compile-config.xml | 5 +++ >>>>> externs/jquery/compile-config.xml | 5 +++ >>>>> 3 files changed, 51 insertions(+), 2 deletions(-) >>>>> ---------------------------------------------------------------------- >>>>> >>>>> >>>>> >>>>> >>> http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/1f35e526/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSPublisher.java >>>>> ---------------------------------------------------------------------- >>>>> diff --git >>>>> >>> a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSPublisher.java >>>>> >>> b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSPublisher.java >>>>> index 1d6c7aa..cf3869b 100644 >>>>> --- >>>>> >>> a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSPublisher.java >>>>> +++ >>>>> >>> b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSPublisher.java >>>>> @@ -22,7 +22,9 @@ import java.io.BufferedReader; >>>>> import java.io.File; >>>>> import java.io.FileInputStream; >>>>> import java.io.IOException; >>>>> +import java.io.InputStream; >>>>> import java.io.InputStreamReader; >>>>> +import java.io.OutputStream; >>>>> import java.net.URL; >>>>> import java.util.ArrayList; >>>>> import java.util.Collection; >>>>> @@ -49,6 +51,8 @@ import >>>>> org.apache.flex.compiler.internal.driver.js.goog.JSGoogConfiguration; >>>>> import org.apache.flex.compiler.internal.graph.GoogDepsWriter; >>>>> import org.apache.flex.compiler.internal.projects.FlexJSProject; >>>>> import org.apache.flex.compiler.utils.JSClosureCompilerWrapper; >>>>> +import org.apache.flex.swc.ISWC; >>>>> +import org.apache.flex.swc.ISWCFileEntry; >>>>> >>>>> public class MXMLFlexJSPublisher extends JSGoogPublisher implements >>>>> IJSPublisher >>>>> { >>>>> @@ -57,6 +61,8 @@ public class MXMLFlexJSPublisher extends >>> JSGoogPublisher >>>>> implements IJSPublisher >>>>> public static final String FLEXJS_INTERMEDIATE_DIR_NAME = "js-debug"; >>>>> public static final String FLEXJS_RELEASE_DIR_NAME = "js-release"; >>>>> >>>>> + private static final String FLEXJS_EXTERNS = "externs"; >>>>> + >>>>> class DependencyRecord >>>>> { >>>>> String path; >>>>> @@ -278,8 +284,41 @@ public class MXMLFlexJSPublisher extends >>>>> JSGoogPublisher implements IJSPublisher >>>>> >>>>> JSClosureCompilerWrapper compilerWrapper = new >>>>> JSClosureCompilerWrapper(); >>>>> >>>>> - GoogDepsWriter gdw = new GoogDepsWriter(intermediateDir, >>>>> projectName, (JSGoogConfiguration) configuration, >>>>> - project.getLibraries()); >>>>> + List<ISWC> swcs = project.getLibraries(); >>>>> + >>>>> + // (erikdebruin) We don't want to forget that we need to tell the >>>>> GCC >>>>> + // about them fancy externs we've been working so >>>>> hard on >>>>> + for (ISWC swc : swcs) >>>>> + { >>>>> + String srcName = swc.getSWCFile().getName().replace(".swc", >>>>> ".js"); >>>>> + String srcPath = FLEXJS_EXTERNS + File.separator + srcName; >>>>> + >>>>> + ISWCFileEntry fileEntry = swc.getFile(FLEXJS_EXTERNS + >>>>> File.separator + srcName); >>>>> + if (fileEntry != null) >>>>> + { >>>>> + File destFile = new File(intermediateDirPath + >>>>> File.separator + srcPath); >>>>> + >>>>> + InputStream inStream = fileEntry.createInputStream(); >>>>> + OutputStream outStream = >>>>> FileUtils.openOutputStream(destFile); >>>>> + byte[] b = new byte[1024 * 1024]; >>>>> + int bytes_read; >>>>> + while ((bytes_read = inStream.read(b)) != -1) >>>>> + { >>>>> + outStream.write(b, 0, bytes_read); >>>>> + } >>>>> + outStream.flush(); >>>>> + outStream.close(); >>>>> + inStream.close(); >>>>> + >>>>> + String destPath = destFile.getAbsolutePath(); >>>>> + >>>>> + System.out.println("using extern: " + destPath); >>>>> + >>>>> + compilerWrapper.addJSExternsFile(destPath); >>>>> + } >>>>> + } >>>>> + >>>>> + GoogDepsWriter gdw = new GoogDepsWriter(intermediateDir, >>>>> projectName, (JSGoogConfiguration) configuration, swcs); >>>>> StringBuilder depsFileData = new StringBuilder(); >>>>> try >>>>> { >>>>> >>>>> >>>>> >>> http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/1f35e526/externs/jasmine/compile-config.xml >>>>> ---------------------------------------------------------------------- >>>>> diff --git a/externs/jasmine/compile-config.xml >>>>> b/externs/jasmine/compile-config.xml >>>>> index abf867e..2af1e2a 100644 >>>>> --- a/externs/jasmine/compile-config.xml >>>>> +++ b/externs/jasmine/compile-config.xml >>>>> @@ -67,6 +67,11 @@ >>>>> <path-element>out/as/functions</path-element> >>>>> </include-sources> >>>>> >>>>> + <include-file> >>>>> + <name>externs/jasmine-2.0.js</name> >>>>> + <path>externs/jasmine-2.0.js</path> >>>>> + </include-file> >>>>> + >>>>> <!-- >>>>> <include-file> >>>>> <name>defaults.css</name> >>>>> >>>>> >>>>> >>> http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/1f35e526/externs/jquery/compile-config.xml >>>>> ---------------------------------------------------------------------- >>>>> diff --git a/externs/jquery/compile-config.xml >>>>> b/externs/jquery/compile-config.xml >>>>> index c0c7f34..3ff4f10 100644 >>>>> --- a/externs/jquery/compile-config.xml >>>>> +++ b/externs/jquery/compile-config.xml >>>>> @@ -71,6 +71,11 @@ >>>>> <path-element>out/as/functions</path-element> >>>>> </include-sources> >>>>> >>>>> + <include-file> >>>>> + <name>externs/jquery-1.9.js</name> >>>>> + <path>externs/jquery-1.9.js</path> >>>>> + </include-file> >>>>> + >>>>> <!-- >>>>> <include-file> >>>>> <name>defaults.css</name> >>>>> >>>>> >>> >>> >> >> >> >> -- >> Ix Multimedia Software >> >> Jan Luykenstraat 27 >> 3521 VB Utrecht >> >> T. 06-51952295 >> I. www.ixsoftware.nl >> > > > > -- > Ix Multimedia Software > > Jan Luykenstraat 27 > 3521 VB Utrecht > > T. 06-51952295 > I. www.ixsoftware.nl