tree a5e097475a7c80717815afe5c765dfcfdaa373f9
parent a61952ffbdd4d322bb67d90b214e3eca842cb96b
author Raphael von der Grün <raphinesse@gmail.com> 1556477727 +0200
committer GitHub <noreply@github.com> 1556477727 +0200
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJcxfcfCRBK7hj4Ov3rIwAAdHIIAAAFvHbXpirb797p5Ip0upKA
 gS/u3D8EzDVdiNO5x0k0bFDfhAZGUYpQai6E50ensGw9Le5ccjDbh1DWRw5dgBRy
 sYPOS9Z+2aYxEdtaBfUQDPi5pyztv2Yd0KI6SS+e7RKcGjx8A/0+iJjRHwnIBGCG
 07sW2bgMUGHsoEEWcG1S8V1qHhrGFFyK2ZZ1rfU9FC8MH90eX6dZBeYQekt5dC9s
 AhEHcFUEEOaOdeITGm1S/ILZEeGqLMPfvIOc4f54QAJWSSha5FbJXbH7wVdWWKER
 sealm0b5JSKlPWOYZi8pHb/ZqQoXT5jh737KxCvDiv3kbeLVCKgqF8kaqGRx+ww=
 =H29b
 -----END PGP SIGNATURE-----
 

Integrate unused CommonJS tests where applicable (#195)

There has been an unused copy of [The Official Specs for CommonJS][1]
lying around in our repository for who knows how long. They needed to be
built using a python script and then manually executed in a browser.
This commit integrates all of those tests that also apply to our module
system into our existing test suite for `require` & `define`.

Adds adapted versions of the following CommonJs tests to our
`test.require.js`:

    absolute, transitive, determinism, method, nested, hasOwnProperty

The hasOwnProperty test actually uncovered a bug in our module system
implementation and thus is deactivated right now.

The following CommonJS tests were not applicable to Cordova's module
system since it does not support cyclic dependencies at all:

    cyclic, monkeys

The following CommonJS tests were already covered by tests in
`test.require.js`:

- missing: covered by Test#005
- relative: covered by Test#012
- exactExports: covered by multiple tests

[1]: https://github.com/commonjs/commonjs