Continue to use the native functions when defineProperty and defineProperties can assign a value to a function's prototype, otherwise use their shim.