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/10/17 22:54:51 UTC
[1/5] git commit: [flex-falcon] [refs/heads/develop] -
ParameterEmitter: fixed issue where this wasn't called due to an old override
Repository: flex-falcon
Updated Branches:
refs/heads/develop 47cf23cd6 -> b36131959
ParameterEmitter: fixed issue where this wasn't called due to an old override
Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/626b617c
Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/626b617c
Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/626b617c
Branch: refs/heads/develop
Commit: 626b617cfb20d4c073775090ca7500d39eb32f48
Parents: 47cf23c
Author: Josh Tynjala <jo...@gmail.com>
Authored: Mon Oct 17 14:01:37 2016 -0700
Committer: Josh Tynjala <jo...@gmail.com>
Committed: Mon Oct 17 14:01:37 2016 -0700
----------------------------------------------------------------------
.../internal/codegen/js/goog/JSGoogEmitter.java | 6 ------
.../codegen/js/jx/ParameterEmitter.java | 21 +-------------------
2 files changed, 1 insertion(+), 26 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/626b617c/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/goog/JSGoogEmitter.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/goog/JSGoogEmitter.java b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/goog/JSGoogEmitter.java
index a4cbefc..b0af5b1 100644
--- a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/goog/JSGoogEmitter.java
+++ b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/goog/JSGoogEmitter.java
@@ -887,12 +887,6 @@ public class JSGoogEmitter extends JSEmitter implements IJSGoogEmitter
}
@Override
- public void emitParameter(IParameterNode node)
- {
- getWalker().walk(node.getNameExpressionNode());
- }
-
- @Override
public void emitAssignedValue(IExpressionNode node)
{
if (node == null)
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/626b617c/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/ParameterEmitter.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/ParameterEmitter.java b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/ParameterEmitter.java
index 832d691..e04e4ff 100644
--- a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/ParameterEmitter.java
+++ b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/ParameterEmitter.java
@@ -37,25 +37,6 @@ public class ParameterEmitter extends JSSubEmitter implements
@Override
public void emit(IParameterNode node)
{
- startMapping(node);
- if (node.isRest())
- {
- write(ASEmitterTokens.ELLIPSIS);
- write(node.getName());
- }
- else
- {
- getWalker().walk(node.getNameExpressionNode());
- write(ASEmitterTokens.COLON);
- getWalker().walk(node.getVariableTypeNode());
- IExpressionNode anode = node.getAssignedValueNode();
- if (anode != null)
- {
- write(ASEmitterTokens.SPACE);
- writeToken(ASEmitterTokens.EQUAL);
- getWalker().walk(anode);
- }
- }
- endMapping(node);
+ getWalker().walk(node.getNameExpressionNode());
}
}
[5/5] git commit: [flex-falcon] [refs/heads/develop] - compiler-jx:
increased timeout for Ant tests
Posted by jo...@apache.org.
compiler-jx: increased timeout for Ant tests
Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/b3613195
Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/b3613195
Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/b3613195
Branch: refs/heads/develop
Commit: b3613195936ec830cef032a1aca51c13c923da2c
Parents: 4543308
Author: Josh Tynjala <jo...@gmail.com>
Authored: Mon Oct 17 15:54:37 2016 -0700
Committer: Josh Tynjala <jo...@gmail.com>
Committed: Mon Oct 17 15:54:37 2016 -0700
----------------------------------------------------------------------
compiler-jx/src/test/build.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/b3613195/compiler-jx/src/test/build.xml
----------------------------------------------------------------------
diff --git a/compiler-jx/src/test/build.xml b/compiler-jx/src/test/build.xml
index 2452b16..771f3c8 100644
--- a/compiler-jx/src/test/build.xml
+++ b/compiler-jx/src/test/build.xml
@@ -27,7 +27,7 @@
<property environment="env"/>
<property file="unittest.properties" />
- <property name="test.timeout" value="300000" />
+ <property name="test.timeout" value="400000" />
<property name="maxmem" value="512" />
<property name="compiler" value="${compiler.tests}/../.."/>
[2/5] git commit: [flex-falcon] [refs/heads/develop] - IJSEmitter: no
longer has pushSourceMapName() and popSourceMapName() because they were
confusing Chrome and they don't appear to be necessary
Posted by jo...@apache.org.
IJSEmitter: no longer has pushSourceMapName() and popSourceMapName() because they were confusing Chrome and they don't appear to be necessary
Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/838a0fcd
Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/838a0fcd
Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/838a0fcd
Branch: refs/heads/develop
Commit: 838a0fcd6925c38ec5927ae0c385e9561da22cff
Parents: 626b617
Author: Josh Tynjala <jo...@gmail.com>
Authored: Mon Oct 17 14:18:36 2016 -0700
Committer: Josh Tynjala <jo...@gmail.com>
Committed: Mon Oct 17 14:18:36 2016 -0700
----------------------------------------------------------------------
.../flex/compiler/codegen/js/IJSEmitter.java | 3 --
.../compiler/internal/codegen/js/JSEmitter.java | 49 +-------------------
.../internal/codegen/js/jx/ClassEmitter.java | 3 --
.../internal/codegen/js/jx/MethodEmitter.java | 2 -
.../codegen/js/jx/PackageFooterEmitter.java | 1 -
.../codegen/js/jx/PackageHeaderEmitter.java | 2 -
6 files changed, 1 insertion(+), 59 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/838a0fcd/compiler-jx/src/main/java/org/apache/flex/compiler/codegen/js/IJSEmitter.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/codegen/js/IJSEmitter.java b/compiler-jx/src/main/java/org/apache/flex/compiler/codegen/js/IJSEmitter.java
index eb0d748..b686a3a 100644
--- a/compiler-jx/src/main/java/org/apache/flex/compiler/codegen/js/IJSEmitter.java
+++ b/compiler-jx/src/main/java/org/apache/flex/compiler/codegen/js/IJSEmitter.java
@@ -66,9 +66,6 @@ public interface IJSEmitter extends IASEmitter
* Commits a mapping to the source map.
*/
void endMapping(ISourceLocation node);
-
- void pushSourceMapName(ISourceLocation node);
- void popSourceMapName();
void emitSourceMapDirective(ITypeNode node);
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/838a0fcd/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/JSEmitter.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/JSEmitter.java b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/JSEmitter.java
index 7824a87..94155df 100644
--- a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/JSEmitter.java
+++ b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/JSEmitter.java
@@ -132,8 +132,6 @@ public class JSEmitter extends ASEmitter implements IJSEmitter
private SourceMapMapping lastMapping;
- private Stack<String> nameStack = new Stack<String>();
-
private List<SourceMapMapping> sourceMapMappings;
public List<SourceMapMapping> getSourceMapMappings()
@@ -382,45 +380,6 @@ public class JSEmitter extends ASEmitter implements IJSEmitter
blockCloseEmitter.emit(node);
}
- public void pushSourceMapName(ISourceLocation node)
- {
- boolean isValidMappingScope = node instanceof ITypeNode
- || node instanceof IPackageNode
- || node instanceof IFunctionNode;
- if(!isValidMappingScope)
- {
- throw new IllegalStateException("A source mapping scope must be a package, type, or function.");
- }
-
- IDefinitionNode definitionNode = (IDefinitionNode) node;
- String nodeName = definitionNode.getQualifiedName();
- ITypeDefinition typeDef = EmitterUtils.getTypeDefinition(definitionNode);
- if (typeDef != null)
- {
- boolean isConstructor = node instanceof IFunctionNode &&
- ((IFunctionNode) node).isConstructor();
- boolean isStatic = definitionNode.hasModifier(ASModifier.STATIC);
- if (isConstructor)
- {
- nodeName = typeDef.getQualifiedName() + ".constructor";
- }
- else if (isStatic)
- {
- nodeName = typeDef.getQualifiedName() + "." + nodeName;
- }
- else
- {
- nodeName = typeDef.getQualifiedName() + ".prototype." + nodeName;
- }
- }
- nameStack.push(nodeName);
- }
-
- public void popSourceMapName()
- {
- nameStack.pop();
- }
-
public void startMapping(ISourceLocation node)
{
startMapping(node, node.getLine(), node.getColumn());
@@ -454,15 +413,9 @@ public class JSEmitter extends ASEmitter implements IJSEmitter
}
}
}
-
- String nodeName = null;
- if (nameStack.size() > 0)
- {
- nodeName = nameStack.lastElement();
- }
+
SourceMapMapping mapping = new SourceMapMapping();
mapping.sourcePath = sourcePath;
- mapping.name = nodeName;
mapping.sourceStartPosition = new FilePosition(line, column);
mapping.destStartPosition = new FilePosition(getCurrentLine(), getCurrentColumn());
lastMapping = mapping;
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/838a0fcd/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/ClassEmitter.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/ClassEmitter.java b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/ClassEmitter.java
index d629b5d..5cb397c 100644
--- a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/ClassEmitter.java
+++ b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/ClassEmitter.java
@@ -58,8 +58,6 @@ public class ClassEmitter extends JSSubEmitter implements
// TODO (mschmalle) will remove this cast as more things get abstracted
JSFlexJSEmitter fjs = (JSFlexJSEmitter) getEmitter();
- getEmitter().pushSourceMapName(node);
-
ASDocComment asDoc = (ASDocComment) node.getASDocComment();
if (asDoc != null && MXMLJSC.keepASDoc)
DocEmitterUtils.loadImportIgnores(fjs, asDoc.commentNoEnd());
@@ -204,7 +202,6 @@ public class ClassEmitter extends JSSubEmitter implements
fjs.getPackageFooterEmitter().emitClassInfo(node);
- getEmitter().popSourceMapName();
getModel().popClass();
}
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/838a0fcd/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/MethodEmitter.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/MethodEmitter.java b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/MethodEmitter.java
index d26f9f5..85078fd 100644
--- a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/MethodEmitter.java
+++ b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/MethodEmitter.java
@@ -142,9 +142,7 @@ public class MethodEmitter extends JSSubEmitter implements
if (!isConstructor || node.getScopedNode().getChildCount() > 0)
{
- getEmitter().pushSourceMapName(node);
fjs.emitMethodScope(node.getScopedNode());
- getEmitter().popSourceMapName();
}
if (isConstructor)
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/838a0fcd/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/PackageFooterEmitter.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/PackageFooterEmitter.java b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/PackageFooterEmitter.java
index feaceb0..57393e9 100644
--- a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/PackageFooterEmitter.java
+++ b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/PackageFooterEmitter.java
@@ -59,7 +59,6 @@ public class PackageFooterEmitter extends JSSubEmitter implements
@Override
public void emit(IPackageDefinition definition)
{
- getEmitter().popSourceMapName();
IASScope containedScope = definition.getContainedScope();
ITypeDefinition type = EmitterUtils.findType(containedScope
.getAllLocalDefinitions());
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/838a0fcd/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/PackageHeaderEmitter.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/PackageHeaderEmitter.java b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/PackageHeaderEmitter.java
index 56bfeb8..e71d497 100644
--- a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/PackageHeaderEmitter.java
+++ b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/PackageHeaderEmitter.java
@@ -142,8 +142,6 @@ public class PackageHeaderEmitter extends JSSubEmitter implements
// TODO (mschmalle) will remove this cast as more things get abstracted
JSFlexJSEmitter fjs = (JSFlexJSEmitter) getEmitter();
- getEmitter().pushSourceMapName(definition.getNode());
-
PackageScope containedScope = (PackageScope) definition
.getContainedScope();
[4/5] git commit: [flex-falcon] [refs/heads/develop] - FieldEmitter:
improved source map output for fields
Posted by jo...@apache.org.
FieldEmitter: improved source map output for fields
Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/45433083
Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/45433083
Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/45433083
Branch: refs/heads/develop
Commit: 454330835b2748e167bb2e8a9714a0a546486b16
Parents: 1753f4e
Author: Josh Tynjala <jo...@gmail.com>
Authored: Mon Oct 17 15:20:25 2016 -0700
Committer: Josh Tynjala <jo...@gmail.com>
Committed: Mon Oct 17 15:20:25 2016 -0700
----------------------------------------------------------------------
.../internal/codegen/js/jx/FieldEmitter.java | 9 +-
.../sourcemaps/TestSourceMapFieldMembers.java | 205 +++++++++++++++++++
2 files changed, 213 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/45433083/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/FieldEmitter.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/FieldEmitter.java b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/FieldEmitter.java
index c330c56..1b0d579 100644
--- a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/FieldEmitter.java
+++ b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/FieldEmitter.java
@@ -113,11 +113,18 @@ public class FieldEmitter extends JSSubEmitter implements
(!ndef.isStatic() && EmitterUtils.isScalar(vnode)) ||
isPackageOrFileMember)
{
- startMapping(node);
+ IExpressionNode beforeNode = node.getVariableTypeNode();
+ if (beforeNode.getAbsoluteStart() == -1)
+ {
+ beforeNode = node.getNameExpressionNode();
+ }
+ startMapping(node, beforeNode);
write(ASEmitterTokens.SPACE);
writeToken(ASEmitterTokens.EQUAL);
endMapping(node);
+ startMapping(vnode);
write(vnodeString);
+ endMapping(vnode);
}
else if (ndef.isStatic() && EmitterUtils.needsStaticInitializer(vnodeString, className))
{
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/45433083/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/sourcemaps/TestSourceMapFieldMembers.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/sourcemaps/TestSourceMapFieldMembers.java b/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/sourcemaps/TestSourceMapFieldMembers.java
new file mode 100644
index 0000000..55bbb46
--- /dev/null
+++ b/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/sourcemaps/TestSourceMapFieldMembers.java
@@ -0,0 +1,205 @@
+/*
+ *
+ * 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 TestSourceMapFieldMembers extends SourceMapTestBase
+{
+ @Test
+ public void testField()
+ {
+ IVariableNode node = getField("var foo;");
+ asBlockWalker.visitVariable(node);
+ ///**\n * @export\n * @type {*}\n */\nFalconTest_A.prototype.foo
+ assertMapping(node, 0, 4, 4, 0, 4, 26); // foo
+ }
+
+ @Test
+ public void testField_withStringSetToNull()
+ {
+ IVariableNode node = getField("var foo:String = null;");
+ asBlockWalker.visitVariable(node);
+ //**\n * @export\n * @type {string}\n */\nFalconTest_A.prototype.foo = null
+ assertMapping(node, 0, 4, 4, 0, 4, 26); // foo
+ assertMapping(node, 0, 14, 4, 26, 4, 29); // =
+ assertMapping(node, 0, 17, 4, 29, 4, 33); // null
+ }
+
+ @Test
+ public void testField_withType()
+ {
+ IVariableNode node = getField("var foo:int;");
+ asBlockWalker.visitVariable(node);
+ ///**\n * @export\n * @type {number}\n */\nFalconTest_A.prototype.foo = 0
+ assertMapping(node, 0, 4, 4, 0, 4, 26); // foo
+ }
+
+ @Test
+ public void testField_withValue()
+ {
+ IVariableNode node = getField("var foo = 420;");
+ asBlockWalker.visitVariable(node);
+ ///**\n * @export\n * @type {*}\n */\nFalconTest_A.prototype.foo = 420
+ assertMapping(node, 0, 4, 4, 0, 4, 26); // foo
+ assertMapping(node, 0, 7, 4, 26, 4, 29); // =
+ assertMapping(node, 0, 10, 4, 29, 4, 32); // 420
+ }
+
+ @Test
+ public void testField_withTypeValue()
+ {
+ IVariableNode node = getField("var foo:int = 420;");
+ asBlockWalker.visitVariable(node);
+ ///**\n * @export\n * @type {number}\n */\nFalconTest_A.prototype.foo = 420
+ assertMapping(node, 0, 4, 4, 0, 4, 26); // foo
+ assertMapping(node, 0, 11, 4, 26, 4, 29); // =
+ assertMapping(node, 0, 14, 4, 29, 4, 32); // 420
+ }
+
+ @Test
+ public void testStaticField()
+ {
+ IVariableNode node = getField("static var foo;");
+ asBlockWalker.visitVariable(node);
+ ////**\n * @export\n * @type {*}\n */\nFalconTest_A.foo
+ assertMapping(node, 0, 11, 4, 0, 4, 16); // foo
+ }
+
+ @Test
+ public void testStaticField_withType()
+ {
+ IVariableNode node = getField("static var foo:int;");
+ asBlockWalker.visitVariable(node);
+ ///**\n * @export\n * @type {number}\n */\nFalconTest_A.foo = 0
+ assertMapping(node, 0, 11, 4, 0, 4, 16); // foo
+ }
+
+ @Test
+ public void testStaticField_withValue()
+ {
+ IVariableNode node = getField("static var foo = 420;");
+ asBlockWalker.visitVariable(node);
+ ///**\n * @export\n * @type {*}\n */\nFalconTest_A.foo = 420
+ assertMapping(node, 0, 11, 4, 0, 4, 16); // foo
+ assertMapping(node, 0, 14, 4, 16, 4, 19); // =
+ assertMapping(node, 0, 17, 4, 19, 4, 22); // 420
+ }
+
+ @Test
+ public void testStaticField_withTypeValue()
+ {
+ IVariableNode node = getField("static var foo:int = 420;");
+ asBlockWalker.visitVariable(node);
+ ///**\n * @export\n * @type {number}\n */\nFalconTest_A.foo = 420
+ assertMapping(node, 0, 11, 4, 0, 4, 16); // foo
+ assertMapping(node, 0, 18, 4, 16, 4, 19); // =
+ assertMapping(node, 0, 21, 4, 19, 4, 22); // 420
+ }
+
+ @Test
+ public void testConstant()
+ {
+ IVariableNode node = getField("const foo;");
+ asBlockWalker.visitVariable(node);
+ ///**\n * @export\n * @const\n * @type {*}\n */\nFalconTest_A.prototype.foo
+ assertMapping(node, 0, 6, 5, 0, 5, 26); // foo
+ }
+
+ @Test
+ public void testConstant_withType()
+ {
+ IVariableNode node = getField("const foo:int;");
+ asBlockWalker.visitVariable(node);
+ ///**\n * @export\n * @const\n * @type {number}\n */\nFalconTest_A.prototype.foo = 0
+ assertMapping(node, 0, 6, 5, 0, 5, 26); // foo
+ }
+
+ @Test
+ public void testConstant_withValue()
+ {
+ IVariableNode node = getField("const foo = 420;");
+ asBlockWalker.visitVariable(node);
+ ///**\n * @export\n * @const\n * @type {*}\n */\nFalconTest_A.prototype.foo = 420
+ assertMapping(node, 0, 6, 5, 0, 5, 26); // foo
+ assertMapping(node, 0, 9, 5, 26, 5, 29); // =
+ assertMapping(node, 0, 12, 5, 29, 5, 32); // 420
+ }
+
+ @Test
+ public void testConstant_withTypeValue()
+ {
+ IVariableNode node = getField("const foo:int = 420;");
+ asBlockWalker.visitVariable(node);
+ ///**\n * @export\n * @const\n * @type {number}\n */\nFalconTest_A.prototype.foo = 420
+ assertMapping(node, 0, 6, 5, 0, 5, 26); // foo
+ assertMapping(node, 0, 13, 5, 26, 5, 29); // =
+ assertMapping(node, 0, 16, 5, 29, 5, 32); // 420
+ }
+
+ @Test
+ public void testStaticConstant()
+ {
+ IVariableNode node = getField("static const foo;");
+ asBlockWalker.visitVariable(node);
+ ///**\n * @export\n * @const\n * @type {*}\n */\nFalconTest_A.foo
+ assertMapping(node, 0, 13, 5, 0, 5, 16); // foo
+ }
+
+ @Test
+ public void testStaticConstant_withType()
+ {
+ IVariableNode node = getField("static const foo:int;");
+ asBlockWalker.visitVariable(node);
+ ///**\n * @export\n * @const\n * @type {number}\n */\nFalconTest_A.foo = 0
+ assertMapping(node, 0, 13, 5, 0, 5, 16); // foo
+ }
+
+ @Test
+ public void testStaticConstant_withValue()
+ {
+ IVariableNode node = getField("static const foo = 420;");
+ asBlockWalker.visitVariable(node);
+ ///**\n * @export\n * @const\n * @type {*}\n */\nFalconTest_A.foo = 420
+ assertMapping(node, 0, 13, 5, 0, 5, 16); // foo
+ assertMapping(node, 0, 16, 5, 16, 5, 19); // =
+ assertMapping(node, 0, 19, 5, 19, 5, 22); // 420
+ }
+
+ @Test
+ public void testStaticConstant_withTypeValue()
+ {
+ IVariableNode node = getField("static const foo:int = 420;");
+ asBlockWalker.visitVariable(node);
+ ///**\n * @export\n * @const\n * @type {number}\n */\nFalconTest_A.foo = 420
+ assertMapping(node, 0, 13, 5, 0, 5, 16); // foo
+ assertMapping(node, 0, 20, 5, 16, 5, 19); // =
+ assertMapping(node, 0, 23, 5, 19, 5, 22); // 420
+ }
+
+ protected IBackend createBackend()
+ {
+ return new FlexJSBackend();
+ }
+}
[3/5] git commit: [flex-falcon] [refs/heads/develop] - ASEmitter,
JSEmitter: fixed issue where line and column numbers could be wrong
when stringifyNode() is used and source map offset could be wrong too
Posted by jo...@apache.org.
ASEmitter, JSEmitter: fixed issue where line and column numbers could be wrong when stringifyNode() is used and source map offset could be wrong too
Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/1753f4e2
Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/1753f4e2
Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/1753f4e2
Branch: refs/heads/develop
Commit: 1753f4e238f8523b5f3fb367d8ba745cb54d268d
Parents: 838a0fc
Author: Josh Tynjala <jo...@gmail.com>
Authored: Mon Oct 17 15:18:43 2016 -0700
Committer: Josh Tynjala <jo...@gmail.com>
Committed: Mon Oct 17 15:18:43 2016 -0700
----------------------------------------------------------------------
.../compiler/internal/codegen/as/ASEmitter.java | 22 ++++++++++++--------
.../compiler/internal/codegen/js/JSEmitter.java | 8 +++++++
2 files changed, 21 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/1753f4e2/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/as/ASEmitter.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/as/ASEmitter.java b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/as/ASEmitter.java
index 6f48f8e..f25d6c9 100644
--- a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/as/ASEmitter.java
+++ b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/as/ASEmitter.java
@@ -220,20 +220,24 @@ public class ASEmitter implements IASEmitter, IEmitter
{
try
{
- int newLineCount = value.length() - value.replace("\n", "").length();
- currentLine += newLineCount;
- if (newLineCount > 0)
+ if (!bufferWrite)
{
- currentColumn = value.length() - value.lastIndexOf("\n") - 1;
+ int newLineCount = value.length() - value.replace("\n", "").length();
+ currentLine += newLineCount;
+ if (newLineCount > 0)
+ {
+ currentColumn = value.length() - value.lastIndexOf("\n") - 1;
+ }
+ else
+ {
+ currentColumn += value.length();
+ }
+ out.write(value);
}
else
{
- currentColumn += value.length();
- }
- if (!bufferWrite)
- out.write(value);
- else
builder.append(value);
+ }
}
catch (IOException e)
{
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/1753f4e2/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/JSEmitter.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/JSEmitter.java b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/JSEmitter.java
index 94155df..5b1f770 100644
--- a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/JSEmitter.java
+++ b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/JSEmitter.java
@@ -387,6 +387,10 @@ public class JSEmitter extends ASEmitter implements IJSEmitter
public void startMapping(ISourceLocation node, int line, int column)
{
+ if (isBufferWrite())
+ {
+ return;
+ }
if (lastMapping != null)
{
FilePosition sourceStartPosition = lastMapping.sourceStartPosition;
@@ -428,6 +432,10 @@ public class JSEmitter extends ASEmitter implements IJSEmitter
public void endMapping(ISourceLocation node)
{
+ if (isBufferWrite())
+ {
+ return;
+ }
if (lastMapping == null)
{
throw new IllegalStateException("Cannot end mapping when a mapping has not been started");