<import src="../resources/run-after-display.sky" />
<script>
import '../resources/dom_serializer.dart';
import 'dart:sky';
import 'dart:sky.internals' as internals;
import 'resources/basic.dart';

void main() {
  new TestApp();
  runAfterDisplay(() {
    document.firstChild.remove();
    document.firstChild.remove();
    var result = serializeNode(document);
    try {
      internals.notifyTestComplete(result);
    } catch (e) {
      print(e);
      print(result);
    }
  });
}
</script>
