I have the following code in an app which uses Node.js:

var cr:* = require('crypto');
var decipher:Decipher = cr.createDecipher('aes-256-ctr',KEY);

(The reason cr is untyped is because crypto.createDecipher is not recognized in 
the typedefs.)

This used to work fine, but it currently gets compiled as:

  var /** @type {*} */ cr = require('crypto');
  var /** @type {crypto.Decipher} */ decipher = /* implicit cast */ 
org.apache.royale.utils.Language.as(cr["createDecipher"]('aes-256-ctr', 
com.printui.utils.PrefUtils.KEY), crypto.Decipher, true);

The Language.as cast fails because the rightOperand.constructor is undefined. 
Constructors for typedefs will **always** be undefined because they don’t exist 
at runtime, so implicit casts on typedef types like this will always fail.

Presumably, I can use:
var decipher:Decipher = cr.createDecipher('aes-256-ctr',KEY) as Decipher; and 
it’ll work as long as I ignore as coercions as a compiler option, but this 
feels like a step backwards.

Thoughts?
Harbs

Reply via email to