Files
sdk/tests/standalone_2/entrypoints_verification_test.dart
T
Samir Jindel 3b2144fa93 [vm] Respect entry-point annotation on constructors during obfuscation.
Change-Id: Ia61d582fb6dd647b8fcab051b57ff08682076d9d
Cq-Include-Trybots: luci.dart.try:vm-kernel-optcounter-threshold-linux-release-x64-try, vm-kernel-precomp-linux-debug-x64-try, vm-kernel-precomp-linux-release-simarm-try, vm-kernel-precomp-linux-release-simarm64-try, vm-kernel-precomp-linux-release-x64-try, vm-kernel-precomp-mac-release-simarm64-try, vm-kernel-precomp-win-release-x64-try, vm-kernel-precomp-obfuscate-linux-release-x64-try
Reviewed-on: https://dart-review.googlesource.com/c/93225
Commit-Queue: Samir Jindel <sjindel@google.com>
Reviewed-by: Alexander Markov <alexmarkov@google.com>
2019-02-14 20:18:19 +00:00

108 lines
1.9 KiB
Dart

// Copyright (c) 2019, 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.
//
// VMOptions=--verify-entry-points=true
import 'dart:io';
import 'dart:convert';
import 'dart:math';
import 'package:path/path.dart';
import 'package:expect/expect.dart';
import 'dart-ext:entrypoints_verification_test_extension';
void RunTest() native "RunTest";
main() {
RunTest();
new C();
new D();
}
class C {}
@pragma("vm:entry-point")
class D {
D();
@pragma("vm:entry-point")
D.defined();
@pragma("vm:entry-point")
factory D.fact() => E.ctor();
void fn0() {}
@pragma("vm:entry-point")
void fn1() {}
@pragma("vm:entry-point", "get")
void fn1_get() {}
@pragma("vm:entry-point", "call")
void fn1_call() {}
static void fn2() {}
@pragma("vm:entry-point")
static void fn3() {}
@pragma("vm:entry-point", "call")
static void fn3_call() {}
@pragma("vm:entry-point", "get")
static void fn3_get() {}
void Function() fld0;
@pragma("vm:entry-point")
void Function() fld1;
@pragma("vm:entry-point", "get")
void Function() fld2;
@pragma("vm:entry-point", "set")
void Function() fld3;
}
void fn0() {}
@pragma("vm:entry-point")
void fn1() {}
@pragma("vm:entry-point", "get")
void fn1_get() {}
@pragma("vm:entry-point", "call")
void fn1_call() {}
class E extends D {
E.ctor();
}
@pragma("vm:entry-point")
class F {
static void Function() fld0;
@pragma("vm:entry-point")
static void Function() fld1;
@pragma("vm:entry-point", "get")
static void Function() fld2;
@pragma("vm:entry-point", "set")
static void Function() fld3;
}
void Function() fld0;
@pragma("vm:entry-point")
void Function() fld1;
@pragma("vm:entry-point", "get")
void Function() fld2;
@pragma("vm:entry-point", "set")
void Function() fld3;