From the list of remaining breaking changes, this PR removes the JsFunction type parameter. This is safe for the following reasons:
Neon functions are non-strict, which means when they are invoked with a non-object (e.g. with f.call(null) or f.call(17)) the primitive is replaced by an object.
The JsObject type does not assume the object inherits from Object.prototype, so it works for any JS objects, even exotic objects like Object.create(null), proxies, module objects, etc.
From the list of remaining breaking changes, this PR removes the
JsFunction
type parameter. This is safe for the following reasons:f.call(null)
orf.call(17)
) the primitive is replaced by an object.JsObject
type does not assume the object inherits fromObject.prototype
, so it works for any JS objects, even exotic objects likeObject.create(null)
, proxies, module objects, etc.