Summary: If the current module is used in a mixed environment, loaded as part of a CommonJS style module, but where the scopechain contains an AMD style 'defined' function, this function would wrongfully use this to define itself instead of exporting using the module/exports variables. This diff changes the order of the tests so that it prefers exporting to the `module` object, then the `exports` object and finally using `define`. Test Plan: Ran the test suite, and loaded the module inside a local CommonJS environment running in a page also hosting an AMD style loader. Reviewers: kitcambridge
…e the source string and scanner position.
…and number. Closes #11.
…ary assignment in the `JSON.parse` feature test. `walk` should use the `delete` operator when removing elements from arrays, instead of `Array#splice` (closes #10).
…plementations. Closes #9.
…ompressing JSON 3; the compressed output is already wrapped in one.
…ip`. Merge `invoke()` into `readSource()`.
…ronous module loaders and CommonJS environments. Closes #6.
…JS Optimizer. Rename `isPropertyOf` to `isProperty`.
…erializing dates in Safari < 2.0.2 and Opera >= 10.53. Use strict equality when checking for cyclic structures. Lazy-define `isPropertyOf` only if `Object#hasOwnProperty` is not present.
…plit lines at 500 characters.
…ine comments. Closes #5.
…rEach` and `isPropertyOf`.
…y#splice` to the list of required native methods.
…s if they are not used within an object member list, and supports passing negative arguments to `String#slice`.