The spec says to use [[Put]], so no need to use defineProperty.
Add isCallable, and use it to properly check the mapping function.
Use a more explicit ToLength.
Adding a message to the first TypeError.
Rearrange the mapFn and thisArg steps to not rely on the `undefined` primitive, and remove the extra "mapping" variable.
Make sure that the constructed Array subclass is wrapped in Object.
The mapping function should not receive the third "list" parameter that most mapping functions receive.
Don't use Function#call if the thisArg is not provided.
Removing isConstructor - unfortunately, it's not safe to rely on constructors not having side effects. In addition, most any function is constructable.
Removing invalid tests about setters.
Merge pull request #7 from ljharb/mdn_polyfill

MDN polyfill