/*
 * Copyright (c) 2014, the Dart project authors.  Please see the AUTHORS file
 * for details. All rights reserved. Use of this source code is governed by a
 * BSD-style license that can be found in the LICENSE file.
 */
/**
 * @description 
 */
import "dart:html";
import "../../testcommon.dart";

main() {
  var style = document.createElement("style");
  document.body.append(style);
  var option = document.createElement("option");

  var newdoc = document.implementation.createDocument("", "", null);
  newdoc.append(document.body);
  style.append(option);

  document.body = document.createElement('body');
  document.body.innerHtml = 'PASS if no crash.';
}
