You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by ah...@apache.org on 2017/08/24 04:16:04 UTC

[2/2] git commit: [flex-falcon] [refs/heads/develop] - add -js-compiler-option=--skip_type_inference to get around GCC flow analysis bugs

add -js-compiler-option=--skip_type_inference to get around GCC flow analysis bugs


Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/135b7492
Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/135b7492
Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/135b7492

Branch: refs/heads/develop
Commit: 135b74928af0e04f9d4f19c7843240f6329bf78a
Parents: 8ccd2b9
Author: Alex Harui <ah...@apache.org>
Authored: Wed Aug 23 21:15:42 2017 -0700
Committer: Alex Harui <ah...@apache.org>
Committed: Wed Aug 23 21:15:42 2017 -0700

----------------------------------------------------------------------
 .../utils/JSClosureCompilerWrapper.java         | 30 ++++++++++++++++----
 1 file changed, 24 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/135b7492/compiler-jx/src/main/java/org/apache/flex/compiler/utils/JSClosureCompilerWrapper.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/utils/JSClosureCompilerWrapper.java b/compiler-jx/src/main/java/org/apache/flex/compiler/utils/JSClosureCompilerWrapper.java
index eea622c..d50dc31 100644
--- a/compiler-jx/src/main/java/org/apache/flex/compiler/utils/JSClosureCompilerWrapper.java
+++ b/compiler-jx/src/main/java/org/apache/flex/compiler/utils/JSClosureCompilerWrapper.java
@@ -92,6 +92,7 @@ public class JSClosureCompilerWrapper
     private String propertyMapOutputPath;
     private String variableMapInputPath;
     private String propertyMapInputPath;
+    private boolean skipTypeInference;
     private Set<String> provideds;
     
     public String targetFilePath;
@@ -286,12 +287,14 @@ public class JSClosureCompilerWrapper
     
     private void filterOptions(List<String> args)
     {
+		final String SKIP_TYPE_INFERENCE = "--skip_type_inference";
 		final String PROPERTY_MAP = "--property_map_output_file ";
 		final String VARIABLE_MAP = "--variable_map_output_file ";
 		final String PROPERTY_INPUT_MAP = "--property_map_input_file ";
 		final String VARIABLE_INPUT_MAP = "--variable_map_input_file ";
 		String propEntry = null;
 		String varEntry = null;
+		String skipEntry = null;
 		String propInputEntry = null;
 		String varInputEntry = null;
 
@@ -320,6 +323,12 @@ public class JSClosureCompilerWrapper
     			varInputEntry = s;
     			variableMapInputPath = s.substring(VARIABLE_INPUT_MAP.length());
     		}
+    		
+    		if (s.equals(SKIP_TYPE_INFERENCE))
+    		{
+    			skipEntry = s;
+    			skipTypeInference = true;
+    		}
     	}
     	if (varEntry != null)
     		args.remove(varEntry);
@@ -329,6 +338,8 @@ public class JSClosureCompilerWrapper
     		args.remove(varInputEntry);
     	if (propInputEntry != null)
     		args.remove(propInputEntry);
+    	if (skipEntry != null)
+    		args.remove(skipEntry);
     		
     }
     
@@ -455,29 +466,29 @@ public class JSClosureCompilerWrapper
             options_.setWarningLevel(DiagnosticGroups.CHECK_EVENTFUL_OBJECT_DISPOSAL, CheckLevel.WARNING);
             options_.setWarningLevel(DiagnosticGroups.MISSING_PROVIDE, CheckLevel.WARNING);
             options_.setWarningLevel(DiagnosticGroups.CHECK_REGEXP, CheckLevel.WARNING);
-            options_.setWarningLevel(DiagnosticGroups.CHECK_TYPES, CheckLevel.WARNING);
+            options_.setWarningLevel(DiagnosticGroups.CHECK_TYPES, skipTypeInference ? CheckLevel.OFF : CheckLevel.WARNING);
             options_.setWarningLevel(DiagnosticGroups.CHECK_USELESS_CODE, CheckLevel.WARNING);
             options_.setWarningLevel(DiagnosticGroups.CHECK_VARIABLES, CheckLevel.WARNING);
             options_.setWarningLevel(DiagnosticGroups.DEBUGGER_STATEMENT_PRESENT, CheckLevel.WARNING);
             options_.setWarningLevel(DiagnosticGroups.DUPLICATE_MESSAGE, CheckLevel.WARNING);
-            options_.setWarningLevel(DiagnosticGroups.DUPLICATE_VARS, CheckLevel.WARNING);
+            options_.setWarningLevel(DiagnosticGroups.DUPLICATE_VARS, skipTypeInference ? CheckLevel.OFF : CheckLevel.WARNING);
             options_.setWarningLevel(DiagnosticGroups.ES3, CheckLevel.WARNING);
             options_.setWarningLevel(DiagnosticGroups.ES5_STRICT, CheckLevel.WARNING);
             options_.setWarningLevel(DiagnosticGroups.EXTERNS_VALIDATION, CheckLevel.WARNING);
             options_.setWarningLevel(DiagnosticGroups.GLOBAL_THIS, CheckLevel.WARNING);
             options_.setWarningLevel(DiagnosticGroups.FILEOVERVIEW_JSDOC, CheckLevel.WARNING);
             options_.setWarningLevel(DiagnosticGroups.INTERNET_EXPLORER_CHECKS, CheckLevel.WARNING);
-            options_.setWarningLevel(DiagnosticGroups.INVALID_CASTS, CheckLevel.WARNING);
+            options_.setWarningLevel(DiagnosticGroups.INVALID_CASTS, skipTypeInference ? CheckLevel.OFF : CheckLevel.WARNING);
             options_.setWarningLevel(DiagnosticGroups.LINT_CHECKS, CheckLevel.OFF); // OFF
             options_.setWarningLevel(DiagnosticGroups.MISPLACED_TYPE_ANNOTATION, CheckLevel.WARNING);
-            options_.setWarningLevel(DiagnosticGroups.MISSING_PROPERTIES, CheckLevel.WARNING);
+            options_.setWarningLevel(DiagnosticGroups.MISSING_PROPERTIES, skipTypeInference ? CheckLevel.OFF : CheckLevel.WARNING);
             options_.setWarningLevel(DiagnosticGroups.MISSING_PROVIDE, CheckLevel.WARNING);
             options_.setWarningLevel(DiagnosticGroups.MISSING_REQUIRE, CheckLevel.WARNING);
             options_.setWarningLevel(DiagnosticGroups.MISSING_RETURN, CheckLevel.WARNING);
-            options_.setWarningLevel(DiagnosticGroups.NEW_CHECK_TYPES, CheckLevel.WARNING);
+            options_.setWarningLevel(DiagnosticGroups.NEW_CHECK_TYPES, skipTypeInference ? CheckLevel.OFF : CheckLevel.WARNING);
             options_.setWarningLevel(DiagnosticGroups.NON_STANDARD_JSDOC, CheckLevel.WARNING);
             options_.setWarningLevel(DiagnosticGroups.REPORT_UNKNOWN_TYPES, CheckLevel.OFF); // OFF
-            options_.setWarningLevel(DiagnosticGroups.SUSPICIOUS_CODE, CheckLevel.WARNING);
+            options_.setWarningLevel(DiagnosticGroups.SUSPICIOUS_CODE, skipTypeInference ? CheckLevel.OFF : CheckLevel.WARNING);
             options_.setWarningLevel(DiagnosticGroups.TWEAKS, CheckLevel.WARNING);
             options_.setWarningLevel(DiagnosticGroups.TYPE_INVALIDATION, CheckLevel.WARNING);
             options_.setWarningLevel(DiagnosticGroups.UNDEFINED_NAMES, CheckLevel.WARNING);
@@ -499,6 +510,13 @@ public class JSClosureCompilerWrapper
         
         options_.sourceMapFormat = SourceMap.Format.V3;
         options_.sourceMapOutputPath = sourceMapPath + ".map";
+        if (skipTypeInference)
+        {
+        	options_.setCheckTypes(false);
+        	options_.setInferTypes(false);
+        	options_.setNewTypeInference(false);
+        }
+        
     }
 
     private static class CompilerOptionsParser extends CommandLineRunner