Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[idlharness.js] remove support for implements statements #28619

Merged
merged 1 commit into from
Apr 22, 2021

Conversation

foolip
Copy link
Member

@foolip foolip commented Apr 21, 2021

The last of these were removed in #17060.

@foolip foolip changed the title [idlharness.js] remove support from implements statements [idlharness.js] remove support for implements statements Apr 21, 2021
@foolip foolip force-pushed the foolip/idlharness-implements branch from 82f08a7 to 3acb18c Compare April 21, 2021 11:59
@foolip foolip marked this pull request as ready for review April 21, 2021 14:09
@wpt-pr-bot wpt-pr-bot requested a review from jgraham April 21, 2021 14:09
@foolip
Copy link
Member Author

foolip commented Apr 21, 2021

It looks like I got this right, there are no differences in the results (see wpt.fyi checks) except for one in Safari explained by https://bugs.webkit.org/show_bug.cgi?id=214166.

@foolip foolip requested a review from Ms2ger April 21, 2021 15:53
Copy link
Contributor

@Ms2ger Ms2ger left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Takk!

@foolip
Copy link
Member Author

foolip commented Apr 22, 2021

Thanks for the reviews @Ms2ger!

@foolip foolip merged commit 684b773 into master Apr 22, 2021
@foolip foolip deleted the foolip/idlharness-implements branch April 22, 2021 08:06
foolip added a commit that referenced this pull request Apr 23, 2021
Handling of these concepts was more complicated than (now) necessary.

Inheritance:

There's no reason to record inheritance separately in `IdlArray`'s
`this.["inheritance"]`, since it can be determined just as easily
from `this.members` via the `member.base` attributes.

The concept of "consequential interfaces" in Web IDL went away with
`implements` statements in whatwg/webidl#433
and here in #28619.
`traverse_inherited_and_consequential_interfaces()` can be replaced
with just `get_inheritance_stack()`.

Mixins:

For valid `A includes B` statements, `A` is always an interface and
`B` is always an interface mixin, so there are no include chains or
the possibility of cycles. `recursively_get_includes()` assumed this.

Instead just save the `includes` statements found in `this.includes`
and apply them in `merge_includes`, similar to partials.

The handling of partials isn't changed, but  `collapse_partials` is
renamed to `merge_partials` to match the above.

No observable differences in test results whatsoever are intended.
foolip added a commit that referenced this pull request Apr 23, 2021
Handling of these concepts was more complicated than (now) necessary.

Inheritance:

There's no reason to record inheritance separately in `IdlArray`'s
`this.["inheritance"]`, since it can be determined just as easily
from `this.members` via the `member.base` attributes.

The concept of "consequential interfaces" in Web IDL went away with
`implements` statements in whatwg/webidl#433
and here in #28619.
`traverse_inherited_and_consequential_interfaces()` can be replaced
with just `get_inheritance_stack()`.

Mixins:

For valid `A includes B` statements, `A` is always an interface and
`B` is always an interface mixin, so there are no include chains or
the possibility of cycles. `recursively_get_includes()` assumed this.

Instead just save the `includes` statements found in `this.includes`
and apply them in `merge_includes`, similar to partials.

The handling of partials isn't changed, but  `collapse_partials` is
renamed to `merge_partials` to match the above.

No observable differences in test results whatsoever are intended.
foolip added a commit that referenced this pull request Apr 24, 2021
Handling of these concepts was more complicated than (now) necessary.

No changes in the actual test results are intended.

Inheritance:

There's no reason to record inheritance separately in `IdlArray`'s
`this.["inheritance"]`, since it can be determined just as easily
from `this.members` via the `member.base` attributes.

The concept of "consequential interfaces" in Web IDL went away with
`implements` statements in whatwg/webidl#433
and here in #28619.
`traverse_inherited_and_consequential_interfaces()` can be replaced
with just `get_inheritance_stack()`.

While this changes the behavior of `default_to_json_operation()`, there
is no `toJSON` operation declared in a mixin in interfaces/, only in
resources/ tests, so this change should not affect real tests.

default_to_json_operation.html was updated along the lines of simplified
examples in the spec: whatwg/webidl#980

Mixins:

For valid `A includes B` statements, `A` is always an interface and
`B` is always an interface mixin, so there are no include chains or
the possibility of cycles. `recursively_get_includes()` assumed this.

Instead just save the `includes` statements found in `this.includes`
and apply them in `merge_mixins`, similar to partials.

The handling of partials isn't changed, but `collapse_partials` is
renamed to `merge_partials` to match the above.

Not today:

Further unification of partials and mixins is possible, and the handling
of [Exposed] is missing for mixins, but this is left for later.
foolip added a commit that referenced this pull request Apr 26, 2021
Handling of these concepts was more complicated than (now) necessary.

No changes in the actual test results are intended.

Inheritance:

There's no reason to record inheritance separately in `IdlArray`'s
`this.["inheritance"]`, since it can be determined just as easily
from `this.members` via the `member.base` attributes.

The concept of "consequential interfaces" in Web IDL went away with
`implements` statements in whatwg/webidl#433
and here in #28619.
`traverse_inherited_and_consequential_interfaces()` can be replaced
with just `get_inheritance_stack()`.

While this changes the behavior of `default_to_json_operation()`, there
is no `toJSON` operation declared in a mixin in interfaces/, only in
resources/ tests, so this change should not affect real tests.

default_to_json_operation.html was updated along the lines of simplified
examples in the spec: whatwg/webidl#980

Mixins:

For valid `A includes B` statements, `A` is always an interface and
`B` is always an interface mixin, so there are no include chains or
the possibility of cycles. `recursively_get_includes()` assumed this.

Instead just save the `includes` statements found in `this.includes`
and apply them in `merge_mixins`, similar to partials.

The handling of partials isn't changed, but `collapse_partials` is
renamed to `merge_partials` to match the above.

Not today:

Further unification of partials and mixins is possible, and the handling
of [Exposed] is missing for mixins, but this is left for later.
moz-v2v-gh pushed a commit to mozilla/gecko-dev that referenced this pull request Apr 27, 2021
…eritance and mixins, a=testonly

Automatic update from web-platform-tests
[idlharness.js] Simplify handling of inheritance and mixins (#28650)

Handling of these concepts was more complicated than (now) necessary.

No changes in the actual test results are intended.

Inheritance:

There's no reason to record inheritance separately in `IdlArray`'s
`this.["inheritance"]`, since it can be determined just as easily
from `this.members` via the `member.base` attributes.

The concept of "consequential interfaces" in Web IDL went away with
`implements` statements in whatwg/webidl#433
and here in web-platform-tests/wpt#28619.
`traverse_inherited_and_consequential_interfaces()` can be replaced
with just `get_inheritance_stack()`.

While this changes the behavior of `default_to_json_operation()`, there
is no `toJSON` operation declared in a mixin in interfaces/, only in
resources/ tests, so this change should not affect real tests.

default_to_json_operation.html was updated along the lines of simplified
examples in the spec: whatwg/webidl#980

Mixins:

For valid `A includes B` statements, `A` is always an interface and
`B` is always an interface mixin, so there are no include chains or
the possibility of cycles. `recursively_get_includes()` assumed this.

Instead just save the `includes` statements found in `this.includes`
and apply them in `merge_mixins`, similar to partials.

The handling of partials isn't changed, but `collapse_partials` is
renamed to `merge_partials` to match the above.

Not today:

Further unification of partials and mixins is possible, and the handling
of [Exposed] is missing for mixins, but this is left for later.
--

wpt-commits: b1f27e8ebbac23edecd374e6ea23f3c395498822
wpt-pr: 28650
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants