test262/test/language/statements/class/elements/private-method-not-writable.js
André Bargull d00039593d Add various private field and private method tests
This adds tests for implementation bugs in SpiderMonkey [1], plus
additional tests for implementation bugs in V8 and JSC.

[1] https://bugzilla.mozilla.org/show_bug.cgi?id=1723155
2021-08-04 15:06:38 -04:00

34 lines
702 B
JavaScript

// Copyright (C) 2021 André Bargull. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
description: >
Throws TypeError when attempting to overwrite a private method.
esid: sec-privateset
info: |
7.3.30 PrivateSet ( P, O, value )
1. Let entry be ! PrivateElementFind(P, O).
2. If entry is empty, throw a TypeError exception.
3. If entry.[[Kind]] is field, then
...
4. Else if entry.[[Kind]] is method, then
a. Throw a TypeError exception.
5. ...
features: [class, class-methods-private]
---*/
class C {
#m() {}
assign() {
this.#m = 0;
}
}
var obj = new C();
assert.throws(TypeError, function() {
obj.assign();
});