mirror of
https://github.com/dart-lang/sdk
synced 2024-09-18 22:01:19 +00:00
57 lines
1.2 KiB
Dart
57 lines
1.2 KiB
Dart
|
// Copyright (c) 2021, 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.
|
||
|
|
||
|
// See `StringPool.dart` for comments.
|
||
|
|
||
|
import 'StringPool.dart' show StringPoolBase, sink;
|
||
|
import 'version1a.dart';
|
||
|
import 'version1b.dart';
|
||
|
import 'version2.dart';
|
||
|
|
||
|
class V1 extends StringPoolBase {
|
||
|
V1() : super('100.pooled');
|
||
|
|
||
|
@override
|
||
|
late final functions = version1ax100();
|
||
|
}
|
||
|
|
||
|
class V1Copy extends StringPoolBase {
|
||
|
V1Copy() : super('100.pooled.copy');
|
||
|
|
||
|
@override
|
||
|
late final functions = version1bx100();
|
||
|
}
|
||
|
|
||
|
class V2 extends StringPoolBase {
|
||
|
V2() : super('100.unpooled');
|
||
|
|
||
|
@override
|
||
|
late final functions = version2x100();
|
||
|
}
|
||
|
|
||
|
void main() {
|
||
|
// Compare results of V1 and V1Copy to ensure both are in the program.
|
||
|
V1()
|
||
|
..setup()
|
||
|
..run()
|
||
|
..run();
|
||
|
final sink1a = sink;
|
||
|
V1Copy()
|
||
|
..setup()
|
||
|
..run()
|
||
|
..run();
|
||
|
final sink1b = sink;
|
||
|
if (sink1a.length != sink1b.length) throw StateError('Not same length');
|
||
|
|
||
|
V2()
|
||
|
..setup()
|
||
|
..run()
|
||
|
..run();
|
||
|
final sink2 = sink;
|
||
|
if (sink1a.length != sink2.length) throw StateError('Not same length');
|
||
|
|
||
|
V1().report();
|
||
|
V2().report();
|
||
|
}
|