Removing the setter for caller makes us less strict when assigning to .caller for generators and other restricted functions. That causes a number of test262 failures.
I think most (probably all) of these failures for our implementation in bug 1616378 are caused by this.
test262/built-ins/Function/prototype/bind/15.3.4.5-20-3.js
test262/built-ins/Function/prototype/bind/BoundFunction_restricted-properties.js
test262/built-ins/GeneratorFunction/instance-restricted-properties.js
test262/language/statements/function/13.2-22-s.js
test262/language/statements/function/13.2-6-s.js
test262/language/statements/function/13.2-30-s.js
test262/language/statements/function/13.2-10-s.js
test262/language/statements/class/restricted-properties.js
test262/language/statements/class/definition/methods-restricted-properties.js
test262/language/statements/generators/restricted-properties.js
test262/language/expressions/arrow-function/ArrowFunction_restricted-properties.js
test262/language/expressions/class/restricted-properties.js
I am not sure if becoming less strict is really desirable, most of these would probably still throw in strict-mode, which often isn't used.
Removing the setter for
callermakes us less strict when assigning to.callerfor generators and other restricted functions. That causes a number of test262 failures.I think most (probably all) of these failures for our implementation in bug 1616378 are caused by this.
I am not sure if becoming less strict is really desirable, most of these would probably still throw in strict-mode, which often isn't used.