While we're at it, use assert() instead of assert.sameValue() for brevity,
if we are not specifically testing that the return value of hasOwnProperty
is the value true or false; and add more informative assertion messages to
help with debugging.
In some cases, the Object.hasOwnProperty.call could be replaced with
verifyProperty(), if the property descriptor was also being verified at
the same time.
This fixes some tests that were faulty to begin with: a common mistake was
Object.hasOwnProperty(obj, prop) which is probably going to return false
when that's not what you want.
The only instances left of `Object.hasOwnProperty` are one regression test
in implementation-contributed which I can't tell if it was intentionally
needed to trigger the regression, and a few instances of
`Object.hasOwnProperty('prototype')` which would defeat the purpose to
convert into `Object.prototype.hasOwnProperty.call(Object, 'prototype')`
form.
Closes: #3524
This reverts commit b690cb67be9b487eb10156c03e2c00869e88cc9d, reversing
changes made to 50dd431dffe5cf86e9064a652d6b01dbbe542cf0. This is
necessary because the reverted changeset reduced coverage by an unknown
extent.
* Added missing cases for name into variations of private method definition
* Generated tests
* Fixing broken case 'private-async-generator-method-name'
This came up with a V8 bug where private fields weren't resolved
properly from nested classes where both the inner and the outer class
had private fields.
* Added cases to cover public static field initializer operations with 'this' biding.
* Added initializer that throws.
* Adding missing ';'
* Fixing broken test static-field-initializer-error.js. 'function' keyword
was missing.
* Adding case where PrivateName is used inside computed property.
* Adding proper description to early errors on usage of undeclared private names inside computed property.
The template file violated the conventions from "src/class-elements/conventions.md".
Specifically there must be a global `C` variable, but default exports don't
create a global variable binding. There is no easy way to refer to the current
module and by that retrieve the default export, therefore the template was
removed.