// 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.

// Similar to native_exception_test.dart but also defines a native
// class.  This exercises a different code path in emitter.dart.

library native_exception2_test;

import 'native_exception_test.dart' as other;
import 'native_testing.dart';

@Native("NativeClass")
class NativeClass {
  foo() => 'oof';
}

makeNativeClass() native;

setup() native """
function NativeClass() {}
makeNativeClass = function() { return new NativeClass; }
self.nativeConstructor(NativeClass);
""";

main() {
  nativeTesting();
  setup();
  Expect.equals('oof', makeNativeClass().foo());
  other.main();
}
