RFR 8170565: JSObject call() is passed undefined for the argument 'thiz'
Sundararajan Athijegannathan
sundararajan.athijegannathan at oracle.com
Thu Dec 1 12:48:15 UTC 2016
Good catch Hannes! Please review the updated webrev :
http://cr.openjdk.java.net/~sundar/8170565/webrev.01/
PS. Had to use Function.prototype.call.call to pass undefined this
explicitly (as JSObject.call can't be called from script).
-Sundar
On 01/12/16, 3:13 PM, Hannes Wallnöfer wrote:
> Hi Sundar,
>
> The problem with this approach is that it will replace any occurrence of undefined this with the global object. However, this should only occur for scope calls. For example, the following call would see undefined replaced with global:
>
> func.call(undefined)
>
> This is probably not a problem that will occur very often, but ideally I think we should do the check and replacement on the linking side, i.e. in JSObjectLinker.findCallMethod.
>
> On the other hand we can’t check for function strictness that way. Maybe do it your way but add a boolean isScope parameter and bind that at link time?
>
> Hannes
>
>
>> Am 01.12.2016 um 07:21 schrieb Sundararajan Athijegannathan<sundararajan.athijegannathan at oracle.com>:
>>
>> Please review http://cr.openjdk.java.net/~sundar/8170565/webrev.00/ for https://bugs.openjdk.java.net/browse/JDK-8170565
>>
>> Thanks,
>> -Sundar
More information about the nashorn-dev
mailing list