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 <joshtynj...@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.li...@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