Proposal: allow primitives to be explicitly returned from constructors
Isiah Meadows
isiahmeadows at gmail.com
Thu Apr 19 22:49:54 UTC 2018
Here's my proposal:
In constructors, currently, non-objects are replaced with `this`.
Here's what I think it should be replaced with:
1. When calling the constructor, if `undefined` is returned and
`new.target` is not `undefined`, return `this` instead. This is for
compatibility and ease of implementation.
1. When calling the constructor, if anything else is returned, return
that value in raw form.
I know this is very *likely* very breaking, but I wonder if it would
be possible.
In case you're curious what this would change in the spec, it would
change [section 9.2.2][1], step 13.a-13.c to this:
a. If result.[[Value]] is not `undefined`, return
NormalCompletion(`result.[[Value]]`).
b. If kind is `"base"`, return NormalCompletion(thisArgument).
[1]: https://tc39.github.io/ecma262/#sec-ecmascript-function-objects-construct-argumentslist-newtarget
-----
Isiah Meadows
me at isiahmeadows.com
Looking for web consulting? Or a new website?
Send me an email and we can get started.
www.isiahmeadows.com
More information about the es-discuss
mailing list