PolymerElements / iron-test-helpers

Utility classes to make testing easier
26 stars 25 forks source link

Just use `window` to define globals to avoid complicated iife stuff #86

Open brad4d opened 7 years ago

brad4d commented 7 years ago

This is an offshoot of #85

test-helpers.js and other files use a complicated pass-global-and-scope-object-to-an-iife method of defining things in an effort to support both some complex loading situations and closure-compiler compilation.

An explanation and understandable emotional reaction may be found here. https://github.com/PolymerElements/iron-test-helpers/pull/69

As a member of the closure-compiler team, I'd like to suggest that you just use window.foo = ... to define your globals. My rationale is this:

  1. You are polymer. You must be running in a browser environment, so you know window is always available.
  2. You're already using window in lots of the implementations anyway.
  3. We're moving rapidly toward a strict-mode-only world. In strict mode this isn't even defined in global scope.