Skip to content

Dart2's ResizeObserverEntry being broken by minifier #40975

Open
@janvladimirmostert

Description

@janvladimirmostert

I've logged a bug for ResizeObserver that was breaking when building with release mode (#40961), that is working now in 2.8 dev-13, but ResizeObserverEntry is still breaking.

import "dart:html";
import "dart:js";

void main() {
  final DivElement div1 = querySelector("div.div1");
  final DivElement div2 = querySelector("div.div2");

  final void Function(List blah1, ResizeObserver blah2) callback = (blah1, _) {
    print("inside divResizeObserverCallback");
    blah1.forEach((entry) {
      context["console"].callMethod("log", [entry]);
      div2.style.height = "${entry.target.clientHeight}px";
    });
  };
  final ResizeObserver divResizeObserver = ResizeObserver(callback);
  divResizeObserver.observe(div1);
}

the console.log outputs that entry is of type DartObject which contains ResizeObserverEntry, casting entry to that however fails with a cast error and trying to access target from entry.target fails with:

Uncaught TypeError: J.d8(...).gv is not a function
    at Object.dD (bug_resize_observer.dart.js:1114)
    at c7.$1 (bug_resize_observer.dart.js:1995)
    at r.u (bug_resize_observer.dart.js:1419)
    at Object.dB (bug_resize_observer.dart.js:1109)
    at c8.$2 (bug_resize_observer.dart.js:1986)
    at eW (bug_resize_observer.dart.js:227)
    at ResizeObserver.<anonymous> (bug_resize_observer.dart.js:232)
dD @ bug_resize_observer.dart.js:1114
$1 @ bug_resize_observer.dart.js:1995
u @ bug_resize_observer.dart.js:1419
dB @ bug_resize_observer.dart.js:1109
$2 @ bug_resize_observer.dart.js:1986
eW @ bug_resize_observer.dart.js:227
(anonymous) @ bug_resize_observer.dart.js:232

Casting:

      div2.style.height = "${(entry as ResizeObserverEntry).target.clientHeight}px";
Uncaught CastError: Instance of 'ResizeObserverEntry': type 'minified:aC' is not a subtype of type 'minified:f7'

Metadata

Metadata

Assignees

No one assigned

    Labels

    area-web-jsIssues related to JavaScript support for Dart Web, including DDC, dart2js, and JS interop.web-librariesIssues impacting dart:html, etc., libraries

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions