Skip to content

Commit

Permalink
Version 3.5.0-289.0.dev
Browse files Browse the repository at this point in the history
Merge 844ced8 into dev
  • Loading branch information
Dart CI committed Jun 21, 2024
2 parents fc1e591 + 844ced8 commit b1d1af1
Show file tree
Hide file tree
Showing 37 changed files with 646 additions and 604 deletions.
2 changes: 1 addition & 1 deletion pkg/dart2wasm/lib/class_info.dart
Original file line number Diff line number Diff line change
Expand Up @@ -228,7 +228,7 @@ class ClassInfoCollector {
translator.coreTypes.functionClass,
translator.coreTypes.recordClass,
translator.index.getClass("dart:core", "_Type"),
translator.index.getClass("dart:core", "_ListBase"),
translator.index.getClass("dart:_list", "WasmListBase"),
};
for (final name in const <String>[
"ByteBuffer",
Expand Down
1 change: 1 addition & 0 deletions pkg/dart2wasm/lib/compile.dart
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,7 @@ Future<CompilerOutput?> compileToModule(compiler.WasmCompilerOptions options,
"dart:_internal",
"dart:_js_helper",
"dart:_js_types",
"dart:_list",
"dart:_string",
"dart:_wasm",
"dart:async",
Expand Down
2 changes: 1 addition & 1 deletion pkg/dart2wasm/lib/dynamic_forwarders.dart
Original file line number Diff line number Diff line change
Expand Up @@ -646,7 +646,7 @@ enum _ForwarderKind {
///
/// [typeArgsLocal], [posArgsLocal], [namedArgsLocal] are the locals for type,
/// positional, and named arguments, respectively. Types of these locals must
/// be `ref _ListBase`.
/// be `ref WasmListBase`.
///
/// [noSuchMethodBlock] is used as the `br` target when the shape check fails.
void generateDynamicFunctionCall(
Expand Down
4 changes: 2 additions & 2 deletions pkg/dart2wasm/lib/intrinsics.dart
Original file line number Diff line number Diff line change
Expand Up @@ -1601,8 +1601,8 @@ class Intrinsifier {
function, translator.nullableObjectArrayType, 0, (_, __) {});

b.else_();
// List argument may be a custom list type, convert it to `_ListBase`
// with `_List.of`.
// List argument may be a custom list type, convert it to `WasmListBase`
// with `WasmListBase.of`.
translator.constants.instantiateConstant(
function,
b,
Expand Down
16 changes: 9 additions & 7 deletions pkg/dart2wasm/lib/kernel_nodes.dart
Original file line number Diff line number Diff line change
Expand Up @@ -33,12 +33,13 @@ mixin KernelNodes {
index.getClass("dart:core", "_BoxedDouble");
late final Class boxedIntClass = index.getClass("dart:core", "_BoxedInt");
late final Class closureClass = index.getClass("dart:core", "_Closure");
late final Class listBaseClass = index.getClass("dart:core", "_ListBase");
late final Class fixedLengthListClass = index.getClass("dart:core", "_List");
late final Class listBaseClass = index.getClass("dart:_list", "WasmListBase");
late final Class fixedLengthListClass =
index.getClass("dart:_list", "ModifiableFixedLengthList");
late final Class growableListClass =
index.getClass("dart:core", "_GrowableList");
index.getClass("dart:_list", "GrowableList");
late final Class immutableListClass =
index.getClass("dart:core", "_ImmutableList");
index.getClass("dart:_list", "ImmutableList");
late final Class wasmStringBaseClass =
index.getClass("dart:_internal", "WasmStringBase");
late final Class stringBaseClass =
Expand Down Expand Up @@ -209,9 +210,9 @@ mixin KernelNodes {
late final Procedure setFromWasmArray =
index.getProcedure("dart:collection", "_WasmDefaultSet", "fromWasmArray");
late final Procedure growableListEmpty =
index.getProcedure("dart:core", "_GrowableList", "empty");
index.getProcedure("dart:_list", "GrowableList", "empty");
late final Constructor growableListFromWasmArray =
index.getConstructor("dart:core", "_GrowableList", "_withData");
index.getConstructor("dart:_list", "GrowableList", "_withData");
late final Procedure hashImmutableIndexNullable = index.getProcedure(
"dart:collection", "_HashAbstractImmutableBase", "get:_indexNullable");
late final Field hashFieldBaseIndexField =
Expand Down Expand Up @@ -346,7 +347,8 @@ mixin KernelNodes {
index.getTopLevelProcedure("dart:core", "_namedParametersToMap");
late final Procedure namedParameterMapToArray =
index.getTopLevelProcedure("dart:core", "_namedParameterMapToArray");
late final Procedure listOf = index.getProcedure("dart:core", "_List", "of");
late final Procedure listOf =
index.getProcedure("dart:_list", "ModifiableFixedLengthList", "of");

// dart:_wasm procedures
late final Procedure wasmFunctionCall =
Expand Down
24 changes: 12 additions & 12 deletions pkg/dart2wasm/lib/list_factory_specializer.dart
Original file line number Diff line number Diff line change
Expand Up @@ -43,21 +43,21 @@ class ListFactorySpecializer {
_listGenerateFactory =
coreTypes.index.getProcedure('dart:core', 'List', 'generate'),
_growableListFactory =
coreTypes.index.getProcedure('dart:core', '_GrowableList', ''),
coreTypes.index.getProcedure('dart:_list', 'GrowableList', ''),
_growableListEmptyFactory =
coreTypes.index.getProcedure('dart:core', '_GrowableList', 'empty'),
coreTypes.index.getProcedure('dart:_list', 'GrowableList', 'empty'),
_growableListFilledFactory = coreTypes.index
.getProcedure('dart:core', '_GrowableList', 'filled'),
.getProcedure('dart:_list', 'GrowableList', 'filled'),
_growableListGenerateFactory = coreTypes.index
.getProcedure('dart:core', '_GrowableList', 'generate'),
_fixedListFactory =
coreTypes.index.getProcedure('dart:core', '_List', ''),
_fixedListEmptyFactory =
coreTypes.index.getProcedure('dart:core', '_List', 'empty'),
_fixedListFilledFactory =
coreTypes.index.getProcedure('dart:core', '_List', 'filled'),
_fixedListGenerateFactory =
coreTypes.index.getProcedure('dart:core', '_List', 'generate') {
.getProcedure('dart:_list', 'GrowableList', 'generate'),
_fixedListFactory = coreTypes.index
.getProcedure('dart:_list', 'ModifiableFixedLengthList', ''),
_fixedListEmptyFactory = coreTypes.index
.getProcedure('dart:_list', 'ModifiableFixedLengthList', 'empty'),
_fixedListFilledFactory = coreTypes.index
.getProcedure('dart:_list', 'ModifiableFixedLengthList', 'filled'),
_fixedListGenerateFactory = coreTypes.index.getProcedure(
'dart:_list', 'ModifiableFixedLengthList', 'generate') {
_transformers[_listFilledFactory] = _transformListFilledFactory;
_transformers[_listEmptyFactory] = _transformListEmptyFactory;
_transformers[_listGenerateFactory] = _transformListGenerateFactory;
Expand Down
6 changes: 4 additions & 2 deletions pkg/dart2wasm/lib/target.dart
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,7 @@ class WasmTarget extends Target {
'dart:_internal',
'dart:_js_helper',
'dart:_js_types',
'dart:_list',
'dart:_string',
'dart:_wasm',
'dart:async',
Expand All @@ -164,6 +165,7 @@ class WasmTarget extends Target {
List<String> get extraIndexedLibraries => [
'dart:_js_helper',
'dart:_js_types',
'dart:_list',
'dart:_string',
'dart:_wasm',
'dart:collection',
Expand Down Expand Up @@ -453,13 +455,13 @@ class WasmTarget extends Target {
@override
Class concreteListLiteralClass(CoreTypes coreTypes) {
return _growableList ??=
coreTypes.index.getClass('dart:core', '_GrowableList');
coreTypes.index.getClass('dart:_list', 'GrowableList');
}

@override
Class concreteConstListLiteralClass(CoreTypes coreTypes) {
return _immutableList ??=
coreTypes.index.getClass('dart:core', '_ImmutableList');
coreTypes.index.getClass('dart:_list', 'ImmutableList');
}

@override
Expand Down
4 changes: 2 additions & 2 deletions pkg/dart2wasm/lib/translator.dart
Original file line number Diff line number Diff line change
Expand Up @@ -1145,7 +1145,7 @@ class Translator with KernelNodes {
return arrayTypeRef;
}

/// Indexes a Dart `_ListBase` on the stack.
/// Indexes a Dart `WasmListBase` on the stack.
void indexList(w.InstructionsBuilder b,
void Function(w.InstructionsBuilder b) pushIndex) {
getListBaseArray(b);
Expand All @@ -1160,7 +1160,7 @@ class Translator with KernelNodes {
b.i32_wrap_i64();
}

/// Get the _ListBase._array field of type WasmArray<Object?>.
/// Get the WasmListBase._data field of type WasmArray<Object?>.
void getListBaseArray(w.InstructionsBuilder b) {
ClassInfo info = classInfo[listBaseClass]!;
b.struct_get(info.struct, FieldIndex.listArray);
Expand Down
19 changes: 0 additions & 19 deletions pkg/front_end/lib/src/fasta/builder/library_builder.dart
Original file line number Diff line number Diff line change
Expand Up @@ -583,12 +583,6 @@ abstract class LibraryBuilder implements Builder {

void becomeCoreLibrary();

void addSyntheticDeclarationOfDynamic();

void addSyntheticDeclarationOfNever();

void addSyntheticDeclarationOfNull();

/// Lookups the member [name] declared in this library.
///
/// If [required] is `true` and no member is found an internal problem is
Expand Down Expand Up @@ -763,19 +757,6 @@ abstract class LibraryBuilderImpl extends ModifierBuilderImpl
null);
}

@override
void becomeCoreLibrary() {
if (scope.lookupLocalMember("dynamic", setter: false) == null) {
addSyntheticDeclarationOfDynamic();
}
if (scope.lookupLocalMember("Never", setter: false) == null) {
addSyntheticDeclarationOfNever();
}
if (scope.lookupLocalMember("Null", setter: false) == null) {
addSyntheticDeclarationOfNull();
}
}

@override
Builder? lookupLocalMember(String name, {bool required = false}) {
Builder? builder = scope.lookupLocalMember(name, setter: false);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import 'library_builder.dart';
import 'nullability_builder.dart';
import 'type_builder.dart';

// TODO(johnniwinther): Remove this.
class NullTypeDeclarationBuilder extends BuiltinTypeDeclarationBuilder {
NullTypeDeclarationBuilder(
DartType type, LibraryBuilder compilationUnit, int charOffset)
Expand Down
29 changes: 13 additions & 16 deletions pkg/front_end/lib/src/fasta/dill/dill_library_builder.dart
Original file line number Diff line number Diff line change
Expand Up @@ -225,22 +225,19 @@ class DillLibraryBuilder extends LibraryBuilderImpl {
LibraryBuilder get nameOriginBuilder => this;

@override
void addSyntheticDeclarationOfDynamic() {
_addBuilder("dynamic",
new DynamicTypeDeclarationBuilder(const DynamicType(), this, -1));
}

@override
void addSyntheticDeclarationOfNever() {
_addBuilder(
"Never",
new NeverTypeDeclarationBuilder(
const NeverType.nonNullable(), this, -1));
}

@override
void addSyntheticDeclarationOfNull() {
// The name "Null" is declared by the class Null.
void becomeCoreLibrary() {
if (scope.lookupLocalMember("dynamic", setter: false) == null) {
_addBuilder("dynamic",
new DynamicTypeDeclarationBuilder(const DynamicType(), this, -1));
}
if (scope.lookupLocalMember("Never", setter: false) == null) {
_addBuilder(
"Never",
new NeverTypeDeclarationBuilder(
const NeverType.nonNullable(), this, -1));
}
assert(scope.lookupLocalMember("Null", setter: false) != null,
"No class 'Null' found in dart:core.");
}

void _addClass(Class cls) {
Expand Down
6 changes: 3 additions & 3 deletions pkg/front_end/lib/src/fasta/kernel/kernel_target.dart
Original file line number Diff line number Diff line change
Expand Up @@ -335,12 +335,12 @@ class KernelTarget {
benchmarker?.enterPhase(BenchmarkPhases.outline_kernelBuildOutlines);
await loader.buildOutlines();

benchmarker?.enterPhase(BenchmarkPhases.outline_becomeCoreLibrary);
loader.coreLibrary.becomeCoreLibrary();

benchmarker?.enterPhase(BenchmarkPhases.outline_resolveParts);
loader.resolveParts();

benchmarker?.enterPhase(BenchmarkPhases.outline_becomeCoreLibrary);
loader.coreLibrary.becomeCoreLibrary();

benchmarker?.enterPhase(BenchmarkPhases.outline_computeMacroDeclarations);
NeededPrecompilations? result =
context.options.globalFeatures.macros.isEnabled
Expand Down
33 changes: 14 additions & 19 deletions pkg/front_end/lib/src/fasta/source/source_library_builder.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3864,25 +3864,20 @@ class SourceLibraryBuilder extends LibraryBuilderImpl {
final Uri importUri;

@override
void addSyntheticDeclarationOfDynamic() {
addBuilder("dynamic",
new DynamicTypeDeclarationBuilder(const DynamicType(), this, -1), -1);
}

@override
void addSyntheticDeclarationOfNever() {
addBuilder(
"Never",
new NeverTypeDeclarationBuilder(
const NeverType.nonNullable(), this, -1),
-1);
}

@override
void addSyntheticDeclarationOfNull() {
// TODO(cstefantsova): Uncomment the following when the Null class is
// removed from the SDK.
//addBuilder("Null", new NullTypeBuilder(const NullType(), this, -1), -1);
void becomeCoreLibrary() {
if (scope.lookupLocalMember("dynamic", setter: false) == null) {
addBuilder("dynamic",
new DynamicTypeDeclarationBuilder(const DynamicType(), this, -1), -1);
}
if (scope.lookupLocalMember("Never", setter: false) == null) {
addBuilder(
"Never",
new NeverTypeDeclarationBuilder(
const NeverType.nonNullable(), this, -1),
-1);
}
assert(scope.lookupLocalMember("Null", setter: false) != null,
"No class 'Null' found in dart:core.");
}

List<InferableType>? _inferableTypes = [];
Expand Down
16 changes: 8 additions & 8 deletions pkg/front_end/test/coverage_suite_expected.dart
Original file line number Diff line number Diff line change
Expand Up @@ -195,10 +195,10 @@ const Map<String, ({int hitCount, int missCount})> _expect = {
hitCount: 17,
missCount: 3,
),
// 79.7752808988764%.
// 78.48101265822784%.
"package:front_end/src/fasta/builder/library_builder.dart": (
hitCount: 71,
missCount: 18,
hitCount: 62,
missCount: 17,
),
// 97.38562091503267%.
"package:front_end/src/fasta/builder/member_builder.dart": (
Expand Down Expand Up @@ -346,10 +346,10 @@ const Map<String, ({int hitCount, int missCount})> _expect = {
hitCount: 129,
missCount: 25,
),
// 82.69720101781171%.
// 83.12342569269522%.
"package:front_end/src/fasta/dill/dill_library_builder.dart": (
hitCount: 325,
missCount: 68,
hitCount: 330,
missCount: 67,
),
// 77.03349282296651%.
"package:front_end/src/fasta/dill/dill_loader.dart": (
Expand Down Expand Up @@ -762,10 +762,10 @@ const Map<String, ({int hitCount, int missCount})> _expect = {
hitCount: 293,
missCount: 35,
),
// 85.37240537240537%.
// 85.28909490119541%.
"package:front_end/src/fasta/source/source_library_builder.dart": (
hitCount: 3496,
missCount: 599,
missCount: 603,
),
// 81.8988464951198%.
"package:front_end/src/fasta/source/source_loader.dart": (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,17 +22,17 @@ static method expect(dynamic expected, dynamic actual) → dynamic {
if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))
throw "Expected ${expected}, actual ${actual}";
}
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm_shared/lib/array_patch.dart */ _#MyList#filled#tearOff<T extends core::num>(core::int length, self::_#MyList#filled#tearOff::T fill, {core::bool growable = #C2}) → core::List<self::_#MyList#filled#tearOff::T>
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#MyList#filled#tearOff<T extends core::num>(core::int length, self::_#MyList#filled#tearOff::T fill, {core::bool growable = #C2}) → core::List<self::_#MyList#filled#tearOff::T>
return core::List::filled<self::_#MyList#filled#tearOff::T>(length, fill, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm_shared/lib/array_patch.dart */ _#MyList#empty#tearOff<T extends core::num>({core::bool growable = #C2}) → core::List<self::_#MyList#empty#tearOff::T>
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#MyList#empty#tearOff<T extends core::num>({core::bool growable = #C2}) → core::List<self::_#MyList#empty#tearOff::T>
return core::List::empty<self::_#MyList#empty#tearOff::T>(growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm_shared/lib/array_patch.dart */ _#MyList#from#tearOff<T extends core::num>(core::Iterable<dynamic> elements, {core::bool growable = #C1}) → core::List<self::_#MyList#from#tearOff::T>
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#MyList#from#tearOff<T extends core::num>(core::Iterable<dynamic> elements, {core::bool growable = #C1}) → core::List<self::_#MyList#from#tearOff::T>
return core::List::from<self::_#MyList#from#tearOff::T>(elements, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm_shared/lib/array_patch.dart */ _#MyList#of#tearOff<T extends core::num>(core::Iterable<self::_#MyList#of#tearOff::T> elements, {core::bool growable = #C1}) → core::List<self::_#MyList#of#tearOff::T>
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#MyList#of#tearOff<T extends core::num>(core::Iterable<self::_#MyList#of#tearOff::T> elements, {core::bool growable = #C1}) → core::List<self::_#MyList#of#tearOff::T>
return core::List::of<self::_#MyList#of#tearOff::T>(elements, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm_shared/lib/array_patch.dart */ _#MyList#generate#tearOff<T extends core::num>(core::int length, (core::int) → self::_#MyList#generate#tearOff::T generator, {core::bool growable = #C1}) → core::List<self::_#MyList#generate#tearOff::T>
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#MyList#generate#tearOff<T extends core::num>(core::int length, (core::int) → self::_#MyList#generate#tearOff::T generator, {core::bool growable = #C1}) → core::List<self::_#MyList#generate#tearOff::T>
return core::List::generate<self::_#MyList#generate#tearOff::T>(length, generator, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm_shared/lib/array_patch.dart */ _#MyList#unmodifiable#tearOff<T extends core::num>(core::Iterable<dynamic> elements) → core::List<self::_#MyList#unmodifiable#tearOff::T>
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#MyList#unmodifiable#tearOff<T extends core::num>(core::Iterable<dynamic> elements) → core::List<self::_#MyList#unmodifiable#tearOff::T>
return core::List::unmodifiable<self::_#MyList#unmodifiable#tearOff::T>(elements);

constants {
Expand Down
Loading

0 comments on commit b1d1af1

Please sign in to comment.