Side Note: Erik, I didn't forget what they are for, it's that I wrote the
EXTERNC compiler out of the idea of the JSC pure js and GCC as a post
processor wasn't on my #1 list, since in the end, I am going to make all
GCC annotations and injections optional witht he JSC output type so
theoretically people can use their own dependency load with a compiler hook
or something connected to the backend.

Mike

On Thu, Jul 2, 2015 at 11:40 AM, Frédéric THOMAS <webdoubl...@hotmail.com>
wrote:

>
> > 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
>
>

Reply via email to