diff --git a/dev/core/src/com/google/gwt/dev/util/arg/ArgHandlerDraftCompile.java b/dev/core/src/com/google/gwt/dev/util/arg/ArgHandlerDraftCompile.java index 940e9e5afd0..88f08791e40 100644 --- a/dev/core/src/com/google/gwt/dev/util/arg/ArgHandlerDraftCompile.java +++ b/dev/core/src/com/google/gwt/dev/util/arg/ArgHandlerDraftCompile.java @@ -63,7 +63,7 @@ public boolean setFlag(boolean value) { clusterSimilarFunctionsOption.setClusterSimilarFunctions(!value); inlineLiteralParametersOption.setInlineLiteralParameters(!value); - namespaceOption.setNamespace(JsNamespaceOption.PACKAGE); + namespaceOption.setNamespace(value ? JsNamespaceOption.PACKAGE : JsNamespaceOption.NONE); if (value) { optimizeDataflowOption.setOptimizeDataflow(false); } diff --git a/dev/core/test/com/google/gwt/dev/ArgProcessorBaseTest.java b/dev/core/test/com/google/gwt/dev/ArgProcessorBaseTest.java index ece89dd407b..750097e10eb 100644 --- a/dev/core/test/com/google/gwt/dev/ArgProcessorBaseTest.java +++ b/dev/core/test/com/google/gwt/dev/ArgProcessorBaseTest.java @@ -16,8 +16,12 @@ package com.google.gwt.dev; import com.google.gwt.dev.jjs.JJSOptionsImpl; +import com.google.gwt.dev.jjs.JsOutputOption; +import com.google.gwt.dev.js.JsNamespaceOption; import com.google.gwt.dev.util.arg.ArgHandlerDraftCompile; import com.google.gwt.dev.util.arg.ArgHandlerOptimize; +import com.google.gwt.dev.util.arg.OptionMethodNameDisplayMode; +import com.google.gwt.dev.util.arg.SourceLevel; /** * Test for {@link ArgProcessorBase}. @@ -44,17 +48,58 @@ public ArgProcessorBaseTest() { } public void testOptionOrderIsPrecedenceArgs() { - assertProcessSuccess(argProcessor, new String[0]); + assertProcessSuccess(argProcessor); assertEquals(9, options.getOptimizationLevel()); - assertProcessSuccess(argProcessor, new String[] {"-optimize", "5"}); + assertProcessSuccess(argProcessor, "-optimize", "5"); assertEquals(5, options.getOptimizationLevel()); - assertProcessSuccess(argProcessor, new String[] {"-optimize", "5", "-draftCompile"}); + assertProcessSuccess(argProcessor, "-optimize", "5", "-draftCompile"); assertEquals(0, options.getOptimizationLevel()); assertProcessSuccess(argProcessor, - new String[] {"-optimize", "5", "-draftCompile", "-optimize", "9"}); + "-optimize", "5", "-draftCompile", "-optimize", "9"); assertEquals(9, options.getOptimizationLevel()); } + + public void testNoDraftMeansDefaults() { + assertProcessSuccess(argProcessor); + assertDefaults(); + + assertProcessSuccess(argProcessor, "-nodraftCompile"); + assertDefaults(); + } + + /** + * For each field in JJSOptionsImpl, verify it is set to the default value. + */ + private void assertDefaults() { + assertEquals(false, options.shouldAddRuntimeChecks()); + assertEquals(true, options.shouldClusterSimilarFunctions()); + assertEquals(false, options.isIncrementalCompileEnabled()); + assertEquals(false, options.isCompilerMetricsEnabled()); + assertEquals(false, options.isClassMetadataDisabled()); + assertEquals(false, options.isEnableAssertions()); + assertEquals(-1, options.getFragmentCount()); + assertEquals(true, options.shouldInlineLiteralParameters()); + assertEquals(false, options.isJsonSoycEnabled()); + assertEquals(JsNamespaceOption.NONE, options.getNamespace()); + assertEquals(9, options.getOptimizationLevel()); + assertEquals(false, options.shouldOptimizeDataflow()); + assertEquals(true, options.shouldOrdinalizeEnums()); + assertEquals(JsOutputOption.OBFUSCATED, options.getOutput()); + assertEquals(true, options.shouldRemoveDuplicateFunctions()); + assertEquals(true, options.isRunAsyncEnabled()); + assertEquals(SourceLevel.DEFAULT_SOURCE_LEVEL, options.getSourceLevel()); + assertEquals(false, options.isSoycEnabled()); + assertEquals(false, options.isSoycExtra()); + assertEquals(false, options.isSoycHtmlDisabled()); + assertEquals(false, options.isStrict()); + assertEquals(false, options.shouldGenerateJsInteropExports()); + assertEquals(false, options.useDetailedTypeIds()); + assertEquals(OptionMethodNameDisplayMode.Mode.NONE, + options.getMethodNameDisplayMode()); + // deliberately skipping the jsInteropExportFilter field, empty state isn't exposed + assertEquals(false, options.isClosureCompilerFormatEnabled()); + } } diff --git a/dev/core/test/com/google/gwt/dev/ArgProcessorTestBase.java b/dev/core/test/com/google/gwt/dev/ArgProcessorTestBase.java index 7aa5369b0b7..becabf3b47f 100644 --- a/dev/core/test/com/google/gwt/dev/ArgProcessorTestBase.java +++ b/dev/core/test/com/google/gwt/dev/ArgProcessorTestBase.java @@ -44,7 +44,7 @@ protected static void assertProcessFailure(ArgProcessorBase argProcessor, } protected static void assertProcessSuccess(ArgProcessorBase argProcessor, - String[] args) { + String... args) { PrintStream oldErrStream = System.err; ByteArrayOutputStream myErrStream = new ByteArrayOutputStream(); try {