apparently, parseInt in JS should always specify the radix
Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo Commit: http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/46d54f82 Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/46d54f82 Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/46d54f82 Branch: refs/heads/feature/maven-migration Commit: 46d54f829d026f55359e652038d5135dd08378e4 Parents: aa6de08 Author: Alex Harui <[email protected]> Authored: Tue Mar 15 10:22:29 2016 -0700 Committer: Alex Harui <[email protected]> Committed: Tue Mar 15 10:22:29 2016 -0700 ---------------------------------------------------------------------- .../codegen/js/flexjs/TestFlexJSGlobalFunctions.java | 15 +++++++++++++++ .../internal/codegen/js/flexjs/JSFlexJSEmitter.java | 11 +++++++++++ 2 files changed, 26 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/46d54f82/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSGlobalFunctions.java ---------------------------------------------------------------------- diff --git a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSGlobalFunctions.java b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSGlobalFunctions.java index aaa9c92..f1be070 100644 --- a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSGlobalFunctions.java +++ b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSGlobalFunctions.java @@ -90,6 +90,21 @@ public class TestFlexJSGlobalFunctions extends TestGoogGlobalFunctions assertOut("var /** @type {Array} */ a = Array(['Hello', 'World'])"); } + @Test + public void testParseInt() + { + IVariableNode node = getVariable("var a:int = parseInt('1.8');"); + asBlockWalker.visitVariable(node); + assertOut("var /** @type {number} */ a = parseInt('1.8', 10)"); + } + + @Test + public void testParseIntTwoArgs() + { + IVariableNode node = getVariable("var a:int = parseInt('1.8', 16);"); + asBlockWalker.visitVariable(node); + assertOut("var /** @type {number} */ a = parseInt('1.8', 16)"); + } @Override @Test http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/46d54f82/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSEmitter.java ---------------------------------------------------------------------- diff --git a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSEmitter.java b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSEmitter.java index d4325a7..c4c72da 100644 --- a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSEmitter.java +++ b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSEmitter.java @@ -573,6 +573,17 @@ public class JSFlexJSEmitter extends JSGoogEmitter implements IJSFlexJSEmitter } } } + else if (def != null && def.getBaseName().equals("parseInt")) + { + IDefinition parentDef = def.getParent(); + if (parentDef == null) + { + if (nameNode instanceof IdentifierNode) + { + write(", 10"); + } + } + } } }
