flex-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Harbs <harbs.li...@gmail.com>
Subject Re: [FlexJS] Use of typeof
Date Tue, 04 Jul 2017 21:00:46 GMT
Looks like it.

I see this in missing.js:

/**
 * @export
 * This gets mapped to org.apache.flex.utils.Language.trace() by the compiler
 * @param {...} rest
 */
function trace(rest) {}

/**
 * @type {!Console}
 * @const
 */
var console;


I guess I can add another one like so:

/**
 * @type {!Process}
 * @const
 */
var process;

However, it seems like a drag to have to add a typedef every time a developer needs to check
for the existence of a global that we did not think of.

> On Jul 4, 2017, at 9:13 PM, Harbs <harbs.lists@gmail.com> wrote:
> 
> Thanks. Here’s what I see:
> 
> if(typeof window !== "undefined")
> {
> 	theConsole = window.console;
> }
> else if(typeof console !== "undefined")
> {
> 	theConsole = console;
> }
> 
> Did you define console in a typedef maybe?
> 
> I’m thinking that Falcon should really allow undefined variables when used with “typeof”.
> 
> Truth be told, I really need to do something like one of these:
> if(typeof (process) != 'undefined' && {}.toString.call(process) == '[object process]’)
> or:
> if(typeof process != 'undefined' && process && process.constructor.name
== "process”)
> 
> Of course every reference to process causes a compiler error. I wonder if there’s some
way to tell the compiler to accept it without complaining…
> 
>> On Jul 4, 2017, at 8:54 PM, Josh Tynjala <joshtynjala@gmail.com> wrote:
>> 
>> I don't remember exactly what I did, but in order to get trace() working in
>> Node.js, I had to figure out how to find the console object on window
>> versus global. I feel like I remember using typeof, but maybe it was
>> something else. Take a look at the implementation of Language.trace() to
>> see what I did.
>> 
>> - Josh
>> 
>> On Jul 4, 2017 5:26 AM, "Harbs" <harbs.lists@gmail.com> wrote:
>> 
>>> I’m trying to figure out how to solve this dilemma:
>>> 
>>> Browsers attach global variables to window.
>>> 
>>> Node.js attaches globals to global.
>>> 
>>> I’m trying to check for the existence of a global called process. In JS,
>>> you’d generally do that by checking typeof process == ‘undefined’. Falcon
>>> does not allow you to do that and complains that process is an undefined
>>> property. In the browser you can use window[“process”] == undefined and in
>>> node you can (theoretically) use global[“process”] == undefined. I can’t
>>> think of a generic way to do this though.
>>> 
>>> Thoughts?
>>> Harbs
> 


Mime
View raw message