medikoo/cli-color — pull request #10 by jas (2014-02-15 17:33:33+00:00)
Title: Fix compatibility issue with modules that have google/traceur-compiler as a dependency

[traceur-compiler](https://github.com/google/traceur-compiler) adds a polyfill for `Object.defineProperty`, which breaks `cli-color` by causing the color functions on the `clc` object to be `undefined`.

Example:

```
TypeError: Property 'green' of object function (/*…msg*/) {
var data = fn._cliColorData, close = '';
return reduce(data, function (str, mod) {
close = '\x1b[' + mod[1] + 'm' + close;
return str + '\x1b[' + mod[0] + 'm';
}, '', true) + join.call(arguments, ' ') + close;
} is not a function
```

It appears that the polyfill doesn't properly return an object. This commit rearranges `cli-color`'s use of `Object.defineProperty` slightly in order to fix this rather unfortunate compatibility issue.

`Object.defineProperties` isn't affected.

I realize this is not an issue with `cli-color` in itself, but given how far down the dependency chain the real issue is, I'm hoping this change is trivial and will be acceptable here.

I opened several issues on other repos as I searched to figure out what exactly was causing this. Here they are for reference:
* https://github.com/shakyShane/browser-sync/issues/73
* https://github.com/jackfranklin/gulp-load-plugins/issues/11
* https://github.com/square/es6-module-transpiler/issues/94