I figured once we made a release branch, only critical changes were supposed to go in there. This would be nice to have in 0.7, but it could wait too.
- Josh On Mon, Aug 22, 2016 at 10:33 PM, Alex Harui <[email protected]> wrote: > Is this intended for the 0.7.0 release? If so, it needs to go in the > release0.7.0 branch. > > -Alex > > On 8/22/16, 3:54 PM, "[email protected]" <[email protected]> > wrote: > > >Repository: flex-falcon > >Updated Branches: > > refs/heads/develop f8fa738fb -> 2f6f611b1 > > > > > >compiler-jx: Class class must be dynamic, added hasFunction() to > >ReferenceModel in externc, and added some tests for Class, int, uint, and > >trace() > > > > > >Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo > >Commit: http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/ > 2f6f611b > >Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/2f6f611b > >Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/2f6f611b > > > >Branch: refs/heads/develop > >Commit: 2f6f611b124c0e267c60df4807dc1533abcfc730 > >Parents: f8fa738 > >Author: Josh Tynjala <[email protected]> > >Authored: Mon Aug 22 15:50:11 2016 -0700 > >Committer: Josh Tynjala <[email protected]> > >Committed: Mon Aug 22 15:54:41 2016 -0700 > > > >---------------------------------------------------------------------- > > .../externals/reference/ReferenceModel.java | 10 +- > > .../codegen/externals/TestExternJSMissing.java | 108 > +++++++++++++++++++ > > 2 files changed, 117 insertions(+), 1 deletion(-) > >---------------------------------------------------------------------- > > > > > >http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/ > 2f6f611b/compiler- > >jx/src/main/java/org/apache/flex/compiler/internal/ > codegen/externals/refer > >ence/ReferenceModel.java > >---------------------------------------------------------------------- > >diff --git > >a/compiler-jx/src/main/java/org/apache/flex/compiler/ > internal/codegen/exte > >rnals/reference/ReferenceModel.java > >b/compiler-jx/src/main/java/org/apache/flex/compiler/ > internal/codegen/exte > >rnals/reference/ReferenceModel.java > >index 15623ad..c50806d 100644 > >--- > >a/compiler-jx/src/main/java/org/apache/flex/compiler/ > internal/codegen/exte > >rnals/reference/ReferenceModel.java > >+++ > >b/compiler-jx/src/main/java/org/apache/flex/compiler/ > internal/codegen/exte > >rnals/reference/ReferenceModel.java > >@@ -146,8 +146,11 @@ public class ReferenceModel > > ClassReference reference = new ClassReference(this, node, > >qualifiedName); > > > > // TODO (mschmalle) Figure out if gcc makes any decisions about > >what is final or dynamic > >- if (reference.getQualifiedName().equals("Object")) > >+ if (reference.getQualifiedName().equals("Object") > >+ || reference.getQualifiedName().equals("Class")) > >+ { > > reference.setDynamic(true); > >+ } > > > > classes.put(qualifiedName, reference); > > } > >@@ -222,6 +225,11 @@ public class ReferenceModel > > functions.put(qualifiedName, reference); > > } > > > >+ public boolean hasFunction(String functionName) > >+ { > >+ return functions.containsKey(functionName); > >+ } > >+ > > public boolean hasClass(String className) > > { > > return classes.containsKey(className); > > > >http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/ > 2f6f611b/compiler- > >jx/src/test/java/org/apache/flex/compiler/internal/ > codegen/externals/TestE > >xternJSMissing.java > >---------------------------------------------------------------------- > >diff --git > >a/compiler-jx/src/test/java/org/apache/flex/compiler/ > internal/codegen/exte > >rnals/TestExternJSMissing.java > >b/compiler-jx/src/test/java/org/apache/flex/compiler/ > internal/codegen/exte > >rnals/TestExternJSMissing.java > >new file mode 100644 > >index 0000000..9d859ca > >--- /dev/null > >+++ > >b/compiler-jx/src/test/java/org/apache/flex/compiler/ > internal/codegen/exte > >rnals/TestExternJSMissing.java > >@@ -0,0 +1,108 @@ > >+/* > >+ * > >+ * 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. > >+ * > >+ */ > >+ > >+package org.apache.flex.compiler.internal.codegen.externals; > >+ > >+import java.io.IOException; > >+ > >+import org.apache.flex.compiler.clients.ExternCConfiguration; > >+import > >org.apache.flex.compiler.internal.codegen.externals. > reference.ClassReferen > >ce; > >+ > >+import com.google.javascript.jscomp.Result; > >+import org.junit.Test; > >+import static org.junit.Assert.assertNotNull; > >+import static org.junit.Assert.assertTrue; > >+ > >+public class TestExternJSMissing extends ExternalsTestBase > >+{ > >+ @Test > >+ public void test_classes() throws IOException > >+ { > >+ Result result = compile(); > >+ assertTrue(result.success); > >+ > >+ String[] classes = { > >+ "int", > >+ "uint", > >+ "Class" }; > >+ > >+ for (String className : classes) > >+ { > >+ assertTrue(model.hasClass(className)); > >+ } > >+ } > >+ @Test > >+ public void test_functions() throws IOException > >+ { > >+ Result result = compile(); > >+ assertTrue(result.success); > >+ > >+ String[] functions = { > >+ "trace" }; > >+ > >+ for (String functionName : functions) > >+ { > >+ assertTrue(model.hasFunction(functionName)); > >+ } > >+ } > >+ > >+ @Test > >+ public void test_Class() throws IOException > >+ { > >+ Result result = compile(); > >+ assertTrue(result.success); > >+ > >+ ClassReference ClassClass = model.getClassReference("Class"); > >+ assertNotNull(ClassClass); > >+ assertTrue(ClassClass.isDynamic()); > >+ } > >+ > >+ @Test > >+ public void test_int() throws IOException > >+ { > >+ Result result = compile(); > >+ assertTrue(result.success); > >+ > >+ ClassReference intClass = model.getClassReference("int"); > >+ assertNotNull(intClass); > >+ assertTrue(intClass.hasStaticField("MIN_VALUE")); > >+ assertTrue(intClass.hasStaticField("MAX_VALUE")); > >+ } > >+ > >+ @Test > >+ public void test_uint() throws IOException > >+ { > >+ Result result = compile(); > >+ assertTrue(result.success); > >+ > >+ ClassReference uintClass = model.getClassReference("uint"); > >+ assertNotNull(uintClass); > >+ assertTrue(uintClass.hasStaticField("MIN_VALUE")); > >+ assertTrue(uintClass.hasStaticField("MAX_VALUE")); > >+ } > >+ > >+ @Override > >+ protected void configure(ExternCConfiguration config) throws > >IOException > >+ { > >+ ExternalsTestUtils.init(); > >+ config.setASRoot(ExternalsTestUtils.AS_ROOT_DIR); > >+ > >+ config.addExternal(ExternalsTestUtils.MISSING_JS_FILE); > >+ } > >+} > > > >
