You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flex.apache.org by "Andy Dufilie (JIRA)" <ji...@apache.org> on 2015/12/11 22:42:46 UTC
[jira] [Updated] (FLEX-34992) Missing FLEXJS_CLASS_INFO in class
internal to a file
[ https://issues.apache.org/jira/browse/FLEX-34992?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Andy Dufilie updated FLEX-34992:
--------------------------------
Description:
In the example below, notice that the InternalClass output does not include FLEXJS_CLASS_INFO, so the "as" operator in testFunction() will return null and iti.test() will crash.
AS input:
{code}
package foo.bar {
public class TestMissingFlexClassInfo {
public function testFunction():void {
var iti:ITestInterface = new InternalClass() as ITestInterface;
iti.test();
}
}
}
import foo.bar.ITestInterface;
internal class InternalClass implements ITestInterface {
public function test():void { }
}
{code}
JS output:
{code}
/**
* Generated by Apache Flex Cross-Compiler from foo\bar\TestMissingFlexClassInfo.as
* foo.bar.TestMissingFlexClassInfo
*
* @fileoverview
*
* @suppress {checkTypes}
*/
goog.provide('foo.bar.TestMissingFlexClassInfo');
goog.require('foo.bar.ITestInterface');
/**
* @constructor
*/
foo.bar.TestMissingFlexClassInfo = function() {
};
/**
* @export
*/
foo.bar.TestMissingFlexClassInfo.prototype.testFunction = function() {
var /** @type {foo.bar.ITestInterface} */ iti = org.apache.flex.utils.Language.as(new InternalClass(), foo.bar.ITestInterface);
iti.test();
};
/**
* Metadata
*
* @type {Object.<string, Array.<Object>>}
*/
foo.bar.TestMissingFlexClassInfo.prototype.FLEXJS_CLASS_INFO = { names: [{ name: 'TestMissingFlexClassInfo', qName: 'foo.bar.TestMissingFlexClassInfo'}] };
/**
* @constructor
* @implements {foo.bar.ITestInterface}
*/
InternalClass = function() {
};
/**
* @export
*/
InternalClass.prototype.test = function() {
};
{code}
was:
In the example below, notice that the InternalClass output does not include FLEX_CLASS_INFO, so the "as" operator in testFunction() will return null and iti.test() will crash.
AS input:
{code}
package foo.bar {
public class TestMissingFlexClassInfo {
public function testFunction():void {
var iti:ITestInterface = new InternalClass() as ITestInterface;
iti.test();
}
}
}
import foo.bar.ITestInterface;
internal class InternalClass implements ITestInterface {
public function test():void { }
}
{code}
JS output:
{code}
/**
* Generated by Apache Flex Cross-Compiler from foo\bar\TestMissingFlexClassInfo.as
* foo.bar.TestMissingFlexClassInfo
*
* @fileoverview
*
* @suppress {checkTypes}
*/
goog.provide('foo.bar.TestMissingFlexClassInfo');
goog.require('foo.bar.ITestInterface');
/**
* @constructor
*/
foo.bar.TestMissingFlexClassInfo = function() {
};
/**
* @export
*/
foo.bar.TestMissingFlexClassInfo.prototype.testFunction = function() {
var /** @type {foo.bar.ITestInterface} */ iti = org.apache.flex.utils.Language.as(new InternalClass(), foo.bar.ITestInterface);
iti.test();
};
/**
* Metadata
*
* @type {Object.<string, Array.<Object>>}
*/
foo.bar.TestMissingFlexClassInfo.prototype.FLEXJS_CLASS_INFO = { names: [{ name: 'TestMissingFlexClassInfo', qName: 'foo.bar.TestMissingFlexClassInfo'}] };
/**
* @constructor
* @implements {foo.bar.ITestInterface}
*/
InternalClass = function() {
};
/**
* @export
*/
InternalClass.prototype.test = function() {
};
{code}
> Missing FLEXJS_CLASS_INFO in class internal to a file
> -----------------------------------------------------
>
> Key: FLEX-34992
> URL: https://issues.apache.org/jira/browse/FLEX-34992
> Project: Apache Flex
> Issue Type: Bug
> Components: Falcon, FlexJS
> Affects Versions: Apache FlexJS 0.5.0
> Reporter: Andy Dufilie
> Priority: Minor
>
> In the example below, notice that the InternalClass output does not include FLEXJS_CLASS_INFO, so the "as" operator in testFunction() will return null and iti.test() will crash.
> AS input:
> {code}
> package foo.bar {
> public class TestMissingFlexClassInfo {
> public function testFunction():void {
> var iti:ITestInterface = new InternalClass() as ITestInterface;
> iti.test();
> }
> }
> }
> import foo.bar.ITestInterface;
> internal class InternalClass implements ITestInterface {
> public function test():void { }
> }
> {code}
> JS output:
> {code}
> /**
> * Generated by Apache Flex Cross-Compiler from foo\bar\TestMissingFlexClassInfo.as
> * foo.bar.TestMissingFlexClassInfo
> *
> * @fileoverview
> *
> * @suppress {checkTypes}
> */
> goog.provide('foo.bar.TestMissingFlexClassInfo');
> goog.require('foo.bar.ITestInterface');
> /**
> * @constructor
> */
> foo.bar.TestMissingFlexClassInfo = function() {
> };
> /**
> * @export
> */
> foo.bar.TestMissingFlexClassInfo.prototype.testFunction = function() {
> var /** @type {foo.bar.ITestInterface} */ iti = org.apache.flex.utils.Language.as(new InternalClass(), foo.bar.ITestInterface);
> iti.test();
> };
> /**
> * Metadata
> *
> * @type {Object.<string, Array.<Object>>}
> */
> foo.bar.TestMissingFlexClassInfo.prototype.FLEXJS_CLASS_INFO = { names: [{ name: 'TestMissingFlexClassInfo', qName: 'foo.bar.TestMissingFlexClassInfo'}] };
> /**
> * @constructor
> * @implements {foo.bar.ITestInterface}
> */
> InternalClass = function() {
> };
> /**
> * @export
> */
> InternalClass.prototype.test = function() {
> };
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)