You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by jo...@apache.org on 2016/04/26 01:09:22 UTC

[1/2] git commit: [flex-falcon] [refs/heads/develop] - source maps for constants like int.MAX_VALUE

Repository: flex-falcon
Updated Branches:
  refs/heads/develop 986e5c191 -> b73e0ce50


source maps for constants like int.MAX_VALUE


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

Branch: refs/heads/develop
Commit: b8a6a80a79d227522e00a95256cfbcdd58b31059
Parents: 986e5c1
Author: Josh Tynjala <jo...@apache.org>
Authored: Mon Apr 25 15:33:15 2016 -0700
Committer: Josh Tynjala <jo...@apache.org>
Committed: Mon Apr 25 15:33:15 2016 -0700

----------------------------------------------------------------------
 .../sourcemaps/TestSourceMapGlobalClasses.java  | 89 ++++++++++++++++++++
 .../codegen/js/jx/IdentifierEmitter.java        | 22 ++++-
 2 files changed, 109 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/b8a6a80a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/sourcemaps/TestSourceMapGlobalClasses.java
----------------------------------------------------------------------
diff --git a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/sourcemaps/TestSourceMapGlobalClasses.java b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/sourcemaps/TestSourceMapGlobalClasses.java
new file mode 100644
index 0000000..32ad8d8
--- /dev/null
+++ b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/sourcemaps/TestSourceMapGlobalClasses.java
@@ -0,0 +1,89 @@
+/*
+ *
+ *  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.js.sourcemaps;
+
+import org.apache.flex.compiler.driver.IBackend;
+import org.apache.flex.compiler.internal.driver.js.flexjs.FlexJSBackend;
+import org.apache.flex.compiler.internal.test.SourceMapTestBase;
+import org.apache.flex.compiler.tree.as.IVariableNode;
+
+import org.junit.Test;
+
+public class TestSourceMapGlobalClasses extends SourceMapTestBase
+{
+    @Test
+    public void testArrayConstCaseInsensitive()
+    {
+        IVariableNode node = getVariable("var a:Number = Array.CASEINSENSITIVE");
+        asBlockWalker.visitVariable(node);
+        //var /** @type {number} */ a = 1
+        assertMapping(node, 0, 15, 0, 30, 0, 31);    // 1
+    }
+
+    @Test
+    public void testArrayConstNumeric()
+    {
+        IVariableNode node = getVariable("var a:Number = Array.NUMERIC");
+        asBlockWalker.visitVariable(node);
+        //var /** @type {number} */ a = 16
+        assertMapping(node, 0, 15, 0, 30, 0, 32);    // 16
+    }
+
+    @Test
+    public void testIntConstMaxValue()
+    {
+        IVariableNode node = getVariable("var a:Number = int.MAX_VALUE");
+        asBlockWalker.visitVariable(node);
+        //var /** @type {number} */ a = 2147483648
+        assertMapping(node, 0, 15, 0, 30, 0, 40);    // 2147483648
+    }
+
+    @Test
+    public void testIntConstMinValue()
+    {
+        IVariableNode node = getVariable("var a:Number = int.MIN_VALUE");
+        asBlockWalker.visitVariable(node);
+        //var /** @type {number} */ a = -2147483648
+        assertMapping(node, 0, 15, 0, 30, 0, 41);    // -2147483648
+    }
+
+    @Test
+    public void testUintConstMaxValue()
+    {
+        IVariableNode node = getVariable("var a:Number = uint.MAX_VALUE");
+        asBlockWalker.visitVariable(node);
+        //var /** @type {number} */ a = 4294967295
+        assertMapping(node, 0, 15, 0, 30, 0, 40);    // 4294967295
+    }
+
+    @Test
+    public void testUintConstMinValue()
+    {
+        IVariableNode node = getVariable("var a:Number = uint.MIN_VALUE");
+        asBlockWalker.visitVariable(node);
+        //var /** @type {number} */ a = 0
+        assertMapping(node, 0, 15, 0, 30, 0, 31);    // 0
+    }
+
+    protected IBackend createBackend()
+    {
+        return new FlexJSBackend();
+    }
+}

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/b8a6a80a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/jx/IdentifierEmitter.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/jx/IdentifierEmitter.java b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/jx/IdentifierEmitter.java
index 24df201..e5f10a1 100644
--- a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/jx/IdentifierEmitter.java
+++ b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/jx/IdentifierEmitter.java
@@ -81,27 +81,37 @@ public class IdentifierEmitter extends JSSubEmitter implements
             	String baseName = nodeDef.getBaseName();
             	if (baseName.equals("CASEINSENSITIVE"))
             	{
+                    startMapping(parentNode);
             		write("1");
+                    endMapping(parentNode);
             		return;
             	}
             	else if (baseName.equals("DESCENDING"))
             	{
+                    startMapping(parentNode);
             		write("2");
+                    endMapping(parentNode);
             		return;
             	}
             	else if (baseName.equals("UNIQUESORT"))
             	{
+                    startMapping(parentNode);
             		write("4");
+                    endMapping(parentNode);
             		return;
             	}
             	else if (baseName.equals("RETURNINDEXEDARRAY"))
             	{
+                    startMapping(parentNode);
             		write("8");
+                    endMapping(parentNode);
             		return;
             	}
             	else if (baseName.equals("NUMERIC"))
             	{
+                    startMapping(parentNode);
             		write("16");
+                    endMapping(parentNode);
             		return;
             	}
             }
@@ -110,28 +120,36 @@ public class IdentifierEmitter extends JSSubEmitter implements
             	String baseName = nodeDef.getBaseName();
             	if (baseName.equals("MAX_VALUE"))
             	{
+                    startMapping(parentNode);
             		write("2147483648");
+                    endMapping(parentNode);
             		return;
             	}
             	else if (baseName.equals("MIN_VALUE"))
             	{
+                    startMapping(parentNode);
             		write("-2147483648");
+                    endMapping(parentNode);
             		return;
-            	}            	
+            	}
             }
             else if (sname.equals("uint"))
             {
             	String baseName = nodeDef.getBaseName();
             	if (baseName.equals("MAX_VALUE"))
             	{
+                    startMapping(parentNode);
             		write("4294967295");
+                    endMapping(parentNode);
             		return;
             	}
             	else if (baseName.equals("MIN_VALUE"))
             	{
+                    startMapping(parentNode);
             		write("0");
+                    endMapping(parentNode);
             		return;
-            	}            	
+            	}
             }
             if (sname.length() > 0)
             {


[2/2] git commit: [flex-falcon] [refs/heads/develop] - source maps for the class and member access operator for static members

Posted by jo...@apache.org.
source maps for the class and member access operator for static members


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

Branch: refs/heads/develop
Commit: b73e0ce5009104144e94c8e22e0ff393a596a428
Parents: b8a6a80
Author: Josh Tynjala <jo...@apache.org>
Authored: Mon Apr 25 15:50:34 2016 -0700
Committer: Josh Tynjala <jo...@apache.org>
Committed: Mon Apr 25 15:50:34 2016 -0700

----------------------------------------------------------------------
 .../internal/codegen/js/jx/IdentifierEmitter.java    | 15 +++++++++++++++
 1 file changed, 15 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/b73e0ce5/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/jx/IdentifierEmitter.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/jx/IdentifierEmitter.java b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/jx/IdentifierEmitter.java
index e5f10a1..4d14bad 100644
--- a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/jx/IdentifierEmitter.java
+++ b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/jx/IdentifierEmitter.java
@@ -153,8 +153,23 @@ public class IdentifierEmitter extends JSSubEmitter implements
             }
             if (sname.length() > 0)
             {
+                IASNode prevSibling = parentNode.getChild(0);
+                if(prevSibling == node)
+                {
+                    startMapping(parentNode);
+                }
+                else
+                {
+                    startMapping(prevSibling);
+                }
                 write(getEmitter().formatQualifiedName(sname));
+                if(prevSibling != node)
+                {
+                    endMapping(prevSibling);
+                    startMapping(parentNode, prevSibling);
+                }
                 write(ASEmitterTokens.MEMBER_ACCESS);
+                endMapping(parentNode);
             }
         }
         else if (!NativeUtils.isNative(node.getName()))