RFR 8170565: JSObject call() is passed undefined for the argument 'thiz'

Attila Szegedi szegedia at gmail.com
Thu Dec 1 12:55:17 UTC 2016


+1

> On 01 Dec 2016, at 13:48, Sundararajan Athijegannathan <sundararajan.athijegannathan at oracle.com> wrote:
> 
> 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