Test: test/built-ins/Function/prototype/bind/15.3.4.5-15-5.js
The test at a78650fde is currently:
/*---
es5id: 15.3.4.5-15-5
description: >
Function.prototype.bind - The [[Configurable]] attribute of length
property in F set as false
---*/
var canConfigurable = false;
var hasProperty = false;
function foo() { }
var obj = foo.bind({});
hasProperty = obj.hasOwnProperty("length");
delete obj.caller;
canConfigurable = !obj.hasOwnProperty("length");
assert(hasProperty, 'hasProperty !== true');
assert.sameValue(canConfigurable, false, 'canConfigurable');
There are a number of pieces that don't seem to make sense:
-
The comment says [[Configurable]] should be false. The spec says [[Configurable]] should be true:
https://tc39.github.io/ecma262/#sec-function.prototype.bind
- Perform ! DefinePropertyOrThrow(F, "length", PropertyDescriptor {[[Value]]: L, [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: true}).
-
The test is performing delete obj.caller, and not doing anything with the length property. Is caller somehow related to length? I suspect this should be delete obj.length.
Test: test/built-ins/Function/prototype/bind/15.3.4.5-15-5.js
The test at a78650fde is currently:
There are a number of pieces that don't seem to make sense:
The comment says [[Configurable]] should be false. The spec says [[Configurable]] should be true:
https://tc39.github.io/ecma262/#sec-function.prototype.bind
The test is performing
delete obj.caller, and not doing anything with the length property. Is caller somehow related to length? I suspect this should bedelete obj.length.