 debug = require 'debug'
 
 class IEVM
+
   # ## Class Properties
 
   # A list of all available IE versions.

      debug "ievms: #{l}" for l in out.toString().trim().split "\n" if out?
    deferred.promise

  # Build a list with an IEVM instance of each available type.
  @all: -> new @ n for n in @names

  # Build a list of all IEVM instances that match the given name, which may be
  # a specific VM (`IE6 - WinXP`), an IE version number (`9` or `7`) or an OS
  # name (`WinXP` or `Vista`).
  @find: (name) ->
    throw new Error "No name specified" unless name?
    if typeof name isnt 'string' and typeof name isnt 'number'
      throw new Error "Invalid name: '#{name}'"
    return [new IEVM name] if name.match /^IE/

  ievmsEnv: ->
    IEVMS_VERSIONS: @version
    REUSE_XP: if @version in [7, 8] and @os is 'WinXP' then 'yes' else 'no'
    INSTALL_PATH: @constructor.ievmsHome
    HOME: process.env.HOME
    PATH: process.env.PATH

