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/12/09 22:46:13 UTC
git commit: [flex-falcon] [refs/heads/develop] - compiler-jx:
LiteralEmitter treats JSX ref attribute as a special case that should not be
renamed
Repository: flex-falcon
Updated Branches:
refs/heads/develop 0be066f5d -> acde07cdc
compiler-jx: LiteralEmitter treats JSX ref attribute as a special case that should not be renamed
Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/acde07cd
Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/acde07cd
Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/acde07cd
Branch: refs/heads/develop
Commit: acde07cdc6ca9152cbf4c16863a77cc940b61be0
Parents: 0be066f
Author: Josh Tynjala <jo...@gmail.com>
Authored: Fri Dec 9 14:46:07 2016 -0800
Committer: Josh Tynjala <jo...@gmail.com>
Committed: Fri Dec 9 14:46:07 2016 -0800
----------------------------------------------------------------------
.../internal/codegen/js/jx/LiteralEmitter.java | 7 +++++--
.../internal/codegen/js/flexjs/TestFlexJSJSX.java | 16 ++++++++++++++++
2 files changed, 21 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/acde07cd/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/LiteralEmitter.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/LiteralEmitter.java b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/LiteralEmitter.java
index 12c0925..876e995 100644
--- a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/LiteralEmitter.java
+++ b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/LiteralEmitter.java
@@ -385,9 +385,12 @@ public class LiteralEmitter extends JSSubEmitter implements
{
writeToken(ASEmitterTokens.BLOCK_OPEN);
}
- if (isHTML)
+ attributeName = attributeName.trim();
+ //if it's HTML, we don't want anything to be renamed by Closure
+ //compiler. if the attribute is "ref", it's a special built-in
+ //attribute that we never want to be renamed.
+ if (isHTML || attributeName.equals("ref"))
{
- attributeName = attributeName.trim();
emitJSXText(attributeName);
}
else
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/acde07cd/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSJSX.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSJSX.java b/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSJSX.java
index f3b8720..f2484fe 100644
--- a/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSJSX.java
+++ b/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSJSX.java
@@ -346,6 +346,22 @@ public class TestFlexJSJSX extends ASTestBase
assertOut("FalconTest_A.prototype.foo = function() {\n return React.createElement(flash.events.EventDispatcher, null);\n}");
}
+ @Test
+ public void tesClassWithAttribute()
+ {
+ IFunctionNode node = getMethod("[JSX]\nfunction foo() {\n import flash.events.EventDispatcher;\n return <EventDispatcher id=\"hello\"/>;\n}");
+ asBlockWalker.visitFunction(node);
+ assertOut("FalconTest_A.prototype.foo = function() {\n return React.createElement(flash.events.EventDispatcher, { id: 'hello' });\n}");
+ }
+
+ @Test
+ public void tesClassWithRef()
+ {
+ IFunctionNode node = getMethod("[JSX]\nfunction foo() {\n import flash.events.EventDispatcher;\n return <EventDispatcher ref=\"hello\"/>;\n}");
+ asBlockWalker.visitFunction(node);
+ assertOut("FalconTest_A.prototype.foo = function() {\n return React.createElement(flash.events.EventDispatcher, { 'ref': 'hello' });\n}");
+ }
+
@Override
protected IBackend createBackend()
{