- From: Juriy Zaytsev <kangax@gmail.com>
- Date: Fri, 20 Sep 2013 20:33:41 +0200
- To: Jürg Lehni <lists@scratchdisk.com>
- Cc: Dirk Schulze <dschulze@adobe.com>, "whatwg@lists.whatwg.org" <whatwg@lists.whatwg.org>, Rik Cabanier <cabanier@gmail.com>, Ian Hickson <ian@hixie.ch>, Simon Pieters <simonp@opera.com>
FWIW, in Fabric.js [1], everything is scoped under global `fabric` object.
`fabric.Path`, `fabric.Circle`, `fabric.Color`, etc. For any third-party
library in a cross-browser environment, this has been the only sane
strategy of avoiding conflicts and keeping things scalable.
We learned about "global everything" problems back in the Prototype.js [2]
days :)
After all, "injection" could always be done on a local level:
(function() {
  var Path = fabric.Path, Circle = fabric.Circle, etc.
  ...
  new Path();
  ...
})();
I also don't see much simplicity in using global names. It's just
irresponsible and asking for trouble.
[1] http://fabricjs.com
[2] http://prototypejs.org
-- 
kangax
On Fri, Sep 20, 2013 at 8:16 PM, Jürg Lehni <lists@scratchdisk.com> wrote:
> PS: iOS 7 is barely released, but the first bug reports are already coming
> in, because the new Mobile Safari now defines Path, and clashes:
>
> https://twitter.com/danetag/status/380636739251220480
>
>
Received on Friday, 20 September 2013 18:34:26 UTC