blob: 5eb76d78b4857f93c8b162f2da8d73e3af3f55d0 [file] [log] [blame]
// Copyright (c) 2013, 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.
// Regression test for dart2js that used to crash when compiling
// [foo]. See http://code.google.com/p/dart/issues/detail?id=7448.
library ports_compilation;
import 'dart:html';
import 'dart:isolate';
import 'package:unittest/unittest.dart';
import 'package:unittest/html_config.dart';
void foo() {
// Create a "SendPortSync" object and access one of its members.
SendPortSync s_port;
s_port.callSync;
// Create a "ReceivePortSync" object (with the constructor) and
// access one of its members.
var r_port = new ReceivePortSync();
r_port.receive;
// Call getComputedStyle() from the HTML library.
query("").getComputedStyle("");
}
int inscrutable(int x) => x == 0 ? 0 : x | inscrutable(x & (x - 1));
void main() {
// Generate the call, but don't execute it.
if (inscrutable(1) != 1) foo();
useHtmlConfiguration();
bar();
// Also generate it here in case the compiler's worklist goes from
// last seen to first seen.
if (inscrutable(1) != 1) foo();
}
bar() {
test('compile', () { });
}