Version 2.15.0-113.0.dev
Merge commit 'd89e42bef5e5b8a5064790332adb8682977e4e86' into 'dev'
diff --git a/pkg/_fe_analyzer_shared/pubspec.yaml b/pkg/_fe_analyzer_shared/pubspec.yaml
index fe7fc3e..8ce5731 100644
--- a/pkg/_fe_analyzer_shared/pubspec.yaml
+++ b/pkg/_fe_analyzer_shared/pubspec.yaml
@@ -1,5 +1,5 @@
name: _fe_analyzer_shared
-version: 25.0.0
+version: 26.0.0
description: Logic that is shared between the front_end and analyzer packages.
homepage: https://github.com/dart-lang/sdk/tree/master/pkg/_fe_analyzer_shared
diff --git a/pkg/analyzer/CHANGELOG.md b/pkg/analyzer/CHANGELOG.md
index 1185171..665fe07 100644
--- a/pkg/analyzer/CHANGELOG.md
+++ b/pkg/analyzer/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 2.3.0
+* Enable `constructor-tearoffs` feature by default in `2.15`.
+* Improvements in constructors tear-off implementation.
+
## 2.2.0
* Improvements in constructors tear-off implementation.
diff --git a/pkg/analyzer/lib/src/dart/analysis/file_state.dart b/pkg/analyzer/lib/src/dart/analysis/file_state.dart
index 3132dfd..e3387ae 100644
--- a/pkg/analyzer/lib/src/dart/analysis/file_state.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/file_state.dart
@@ -201,19 +201,13 @@
/// The list of files this file exports.
List<FileState?> get exportedFiles {
- if (_exportedFiles == null) {
- _exportedFiles = <FileState?>[];
- for (var directive in _unlinked2!.exports) {
- var uri = _selectRelativeUri(directive);
- _fileForRelativeUri(uri).map(
- (file) {
- _exportedFiles!.add(file);
- },
- (_) {},
- );
- }
- }
- return _exportedFiles!;
+ return _exportedFiles ??= _unlinked2!.exports.map((directive) {
+ var uri = _selectRelativeUri(directive);
+ return _fileForRelativeUri(uri).map(
+ (file) => file,
+ (_) => null,
+ );
+ }).toList();
}
@override
@@ -221,19 +215,13 @@
/// The list of files this file imports.
List<FileState?> get importedFiles {
- if (_importedFiles == null) {
- _importedFiles = <FileState?>[];
- for (var directive in _unlinked2!.imports) {
- var uri = _selectRelativeUri(directive);
- _fileForRelativeUri(uri).map(
- (file) {
- _importedFiles!.add(file);
- },
- (_) {},
- );
- }
- }
- return _importedFiles!;
+ return _importedFiles ??= _unlinked2!.imports.map((directive) {
+ var uri = _selectRelativeUri(directive);
+ return _fileForRelativeUri(uri).map(
+ (file) => file,
+ (_) => null,
+ );
+ }).toList();
}
LibraryCycle? get internal_libraryCycle => _libraryCycle;
@@ -271,13 +259,6 @@
/// Return the [LibraryCycle] this file belongs to, even if it consists of
/// just this file. If the library cycle is not known yet, compute it.
LibraryCycle get libraryCycle {
- if (isPart) {
- final library = this.library;
- if (library != null && !identical(library, this)) {
- return library.libraryCycle;
- }
- }
-
if (_libraryCycle == null) {
computeLibraryCycle(_fsState._saltForElements, this);
}
@@ -299,23 +280,19 @@
/// The list of files this library file references as parts.
List<FileState?> get partedFiles {
- if (_partedFiles == null) {
- _partedFiles = <FileState?>[];
- for (var uri in _unlinked2!.parts) {
- _fileForRelativeUri(uri).map(
- (file) {
- _partedFiles!.add(file);
- if (file != null) {
- _fsState._partToLibraries
- .putIfAbsent(file, () => <FileState>[])
- .add(this);
- }
- },
- (_) {},
- );
- }
- }
- return _partedFiles!;
+ return _partedFiles ??= _unlinked2!.parts.map((uri) {
+ return _fileForRelativeUri(uri).map(
+ (file) {
+ if (file != null) {
+ _fsState._partToLibraries
+ .putIfAbsent(file, () => <FileState>[])
+ .add(this);
+ }
+ return file;
+ },
+ (_) => null,
+ );
+ }).toList();
}
/// The external names referenced by the file.
diff --git a/pkg/analyzer/pubspec.yaml b/pkg/analyzer/pubspec.yaml
index 17b5859..2f2abf2 100644
--- a/pkg/analyzer/pubspec.yaml
+++ b/pkg/analyzer/pubspec.yaml
@@ -1,5 +1,5 @@
name: analyzer
-version: 2.2.0
+version: 2.3.0
description: This package provides a library that performs static analysis of Dart code.
homepage: https://github.com/dart-lang/sdk/tree/main/pkg/analyzer
@@ -7,7 +7,7 @@
sdk: '>=2.12.0 <3.0.0'
dependencies:
- _fe_analyzer_shared: ^25.0.0
+ _fe_analyzer_shared: ^26.0.0
cli_util: ^0.3.0
collection: ^1.15.0
convert: ^3.0.0
diff --git a/pkg/analyzer/test/generated/test_analysis_context.dart b/pkg/analyzer/test/generated/test_analysis_context.dart
index 6702b63..840d225 100644
--- a/pkg/analyzer/test/generated/test_analysis_context.dart
+++ b/pkg/analyzer/test/generated/test_analysis_context.dart
@@ -2,7 +2,6 @@
// 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.
-import 'package:analyzer/dart/analysis/features.dart';
import 'package:analyzer/src/dart/analysis/session.dart';
import 'package:analyzer/src/dart/element/class_hierarchy.dart';
import 'package:analyzer/src/dart/element/element.dart';
@@ -18,7 +17,7 @@
final SourceFactory sourceFactory = _MockSourceFactory();
final _MockAnalysisSession _analysisSession = _MockAnalysisSession();
- late AnalysisOptionsImpl _analysisOptions;
+ final AnalysisOptionsImpl _analysisOptions = AnalysisOptionsImpl();
late TypeProviderImpl _typeProviderLegacy;
late TypeProviderImpl _typeProviderNonNullableByDefault;
@@ -26,10 +25,7 @@
late TypeSystemImpl _typeSystemLegacy;
late TypeSystemImpl _typeSystemNonNullableByDefault;
- TestAnalysisContext({FeatureSet? featureSet}) {
- _analysisOptions = AnalysisOptionsImpl()
- ..contextFeatures = featureSet ?? FeatureSet.latestLanguageVersion();
-
+ TestAnalysisContext() {
var sdkElements = MockSdkElements(this, _analysisSession);
_typeProviderLegacy = TypeProviderImpl(
diff --git a/pkg/analyzer/test/generated/type_system_test.dart b/pkg/analyzer/test/generated/type_system_test.dart
index 1f36c75..a0f6b1e 100644
--- a/pkg/analyzer/test/generated/type_system_test.dart
+++ b/pkg/analyzer/test/generated/type_system_test.dart
@@ -2,7 +2,6 @@
// 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.
-import 'package:analyzer/dart/analysis/features.dart';
import 'package:analyzer/dart/element/element.dart';
import 'package:analyzer/dart/element/nullability_suffix.dart';
import 'package:analyzer/dart/element/type.dart';
@@ -35,14 +34,8 @@
late TypeSystemImpl typeSystem;
- FeatureSet get testFeatureSet {
- return FeatureSet.latestLanguageVersion();
- }
-
void setUp() {
- analysisContext = TestAnalysisContext(
- featureSet: testFeatureSet,
- );
+ analysisContext = TestAnalysisContext();
typeProvider = analysisContext.typeProviderNonNullableByDefault;
typeSystem = analysisContext.typeSystemNonNullableByDefault;
@@ -66,14 +59,8 @@
late TypeSystemImpl typeSystem;
- FeatureSet get testFeatureSet {
- return FeatureSet.latestLanguageVersion();
- }
-
void setUp() {
- analysisContext = TestAnalysisContext(
- featureSet: testFeatureSet,
- );
+ analysisContext = TestAnalysisContext();
typeProvider = analysisContext.typeProviderLegacy;
typeSystem = analysisContext.typeSystemLegacy;
diff --git a/pkg/analyzer/test/source/analysis_options_provider_test.dart b/pkg/analyzer/test/source/analysis_options_provider_test.dart
index 1c9d463..8cb98e3 100644
--- a/pkg/analyzer/test/source/analysis_options_provider_test.dart
+++ b/pkg/analyzer/test/source/analysis_options_provider_test.dart
@@ -3,16 +3,15 @@
// BSD-style license that can be found in the LICENSE file.
import 'package:analyzer/file_system/file_system.dart';
-import 'package:analyzer/file_system/memory_file_system.dart';
import 'package:analyzer/src/analysis_options/analysis_options_provider.dart';
import 'package:analyzer/src/generated/source.dart';
+import 'package:analyzer/src/test_utilities/resource_provider_mixin.dart';
import 'package:analyzer/src/util/file_paths.dart' as file_paths;
import 'package:analyzer/src/util/yaml.dart';
import 'package:test/test.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
import 'package:yaml/yaml.dart';
-import '../resource_utils.dart';
import '../src/util/yaml_test.dart';
main() {
@@ -97,31 +96,17 @@
}
@reflectiveTest
-class AnalysisOptionsProviderTest {
- late final TestPathTranslator pathTranslator;
- late final ResourceProvider resourceProvider;
-
- late final AnalysisOptionsProvider provider;
-
+class AnalysisOptionsProviderTest with ResourceProviderMixin {
String get analysisOptionsYaml => file_paths.analysisOptionsYaml;
- void setUp() {
- var rawProvider = MemoryResourceProvider();
- resourceProvider = TestResourceProvider(rawProvider);
- pathTranslator = TestPathTranslator(rawProvider);
- provider = AnalysisOptionsProvider(SourceFactory([
- ResourceUriResolver(rawProvider),
- ]));
- }
-
void test_getOptions_crawlUp_hasInFolder() {
- pathTranslator.newFolder('/foo/bar');
- pathTranslator.newFile('/foo/$analysisOptionsYaml', r'''
+ newFolder('/foo/bar');
+ newFile('/foo/$analysisOptionsYaml', content: r'''
analyzer:
ignore:
- foo
''');
- pathTranslator.newFile('/foo/bar/$analysisOptionsYaml', r'''
+ newFile('/foo/bar/$analysisOptionsYaml', content: r'''
analyzer:
ignore:
- bar
@@ -136,13 +121,13 @@
}
void test_getOptions_crawlUp_hasInParent() {
- pathTranslator.newFolder('/foo/bar/baz');
- pathTranslator.newFile('/foo/$analysisOptionsYaml', r'''
+ newFolder('/foo/bar/baz');
+ newFile('/foo/$analysisOptionsYaml', content: r'''
analyzer:
ignore:
- foo
''');
- pathTranslator.newFile('/foo/bar/$analysisOptionsYaml', r'''
+ newFile('/foo/bar/$analysisOptionsYaml', content: r'''
analyzer:
ignore:
- bar
@@ -157,26 +142,26 @@
}
void test_getOptions_doesNotExist() {
- pathTranslator.newFolder('/notFile');
+ newFolder('/notFile');
YamlMap options = _getOptions('/notFile');
expect(options, isEmpty);
}
void test_getOptions_empty() {
- pathTranslator.newFile('/$analysisOptionsYaml', r'''#empty''');
+ newFile('/$analysisOptionsYaml', content: r'''#empty''');
YamlMap options = _getOptions('/');
expect(options, isNotNull);
expect(options, isEmpty);
}
void test_getOptions_include() {
- pathTranslator.newFile('/foo.include', r'''
+ newFile('/foo.include', content: r'''
analyzer:
ignore:
- ignoreme.dart
- 'sdk_ext/**'
''');
- pathTranslator.newFile('/$analysisOptionsYaml', r'''
+ newFile('/$analysisOptionsYaml', content: r'''
include: foo.include
''');
YamlMap options = _getOptions('/');
@@ -194,12 +179,12 @@
}
void test_getOptions_include_emptyLints() {
- pathTranslator.newFile('/foo.include', r'''
+ newFile('/foo.include', content: r'''
linter:
rules:
- prefer_single_quotes
''');
- pathTranslator.newFile('/$analysisOptionsYaml', r'''
+ newFile('/$analysisOptionsYaml', content: r'''
include: foo.include
linter:
rules:
@@ -219,7 +204,7 @@
}
void test_getOptions_include_missing() {
- pathTranslator.newFile('/$analysisOptionsYaml', r'''
+ newFile('/$analysisOptionsYaml', content: r'''
include: /foo.include
''');
YamlMap options = _getOptions('/');
@@ -227,13 +212,13 @@
}
void test_getOptions_invalid() {
- pathTranslator.newFile('/$analysisOptionsYaml', r''':''');
+ newFile('/$analysisOptionsYaml', content: r''':''');
YamlMap options = _getOptions('/');
expect(options, hasLength(1));
}
void test_getOptions_simple() {
- pathTranslator.newFile('/$analysisOptionsYaml', r'''
+ newFile('/$analysisOptionsYaml', content: r'''
analyzer:
ignore:
- ignoreme.dart
@@ -254,7 +239,10 @@
}
YamlMap _getOptions(String posixPath) {
- var resource = pathTranslator.getResource(posixPath) as Folder;
- return provider.getOptions(resource);
+ var folder = getFolder(posixPath);
+ var provider = AnalysisOptionsProvider(SourceFactory([
+ ResourceUriResolver(resourceProvider),
+ ]));
+ return provider.getOptions(folder);
}
}
diff --git a/pkg/analyzer/test/src/dart/analysis/file_state_test.dart b/pkg/analyzer/test/src/dart/analysis/file_state_test.dart
index d307683..29fcbe1 100644
--- a/pkg/analyzer/test/src/dart/analysis/file_state_test.dart
+++ b/pkg/analyzer/test/src/dart/analysis/file_state_test.dart
@@ -498,6 +498,7 @@
// It's a cycle.
_assertLibraryCycle(fa, [fa, fb], []);
_assertLibraryCycle(fb, [fa, fb], []);
+ expect(fa.libraryCycle, same(fb.libraryCycle));
// Update a.dart so that it does not import b.dart anymore.
newFile(pa);
@@ -520,6 +521,36 @@
_assertLibraryCycle(fa, [fa], []);
}
+ test_libraryCycle_part() {
+ var a_path = convertPath('/aaa/lib/a.dart');
+ var b_path = convertPath('/aaa/lib/b.dart');
+
+ newFile(a_path, content: r'''
+part 'b.dart';
+''');
+ newFile(b_path, content: r'''
+part of 'a.dart';
+''');
+
+ var a_file = fileSystemState.getFileForPath(a_path);
+ var b_file = fileSystemState.getFileForPath(b_path);
+ _assertFilesWithoutLibraryCycle([a_file, b_file]);
+
+ // Compute the library cycle for 'a.dart', the library.
+ var a_libraryCycle = a_file.libraryCycle;
+ _assertFilesWithoutLibraryCycle([b_file]);
+
+ // The part 'b.dart' has its own library cycle.
+ // If the user chooses to import a part, it is a compile-time error.
+ // We could handle this in different ways:
+ // 1. Completely ignore an import of a file with a `part of` directive.
+ // 2. Treat such file as a library anyway.
+ // By giving a part its own library cycle we support (2).
+ var b_libraryCycle = b_file.libraryCycle;
+ expect(b_libraryCycle, isNot(same(a_libraryCycle)));
+ _assertFilesWithoutLibraryCycle([]);
+ }
+
test_referencedNames() {
String path = convertPath('/aaa/lib/a.dart');
newFile(path, content: r'''
diff --git a/pkg/analyzer/test/src/dart/element/factor_type_test.dart b/pkg/analyzer/test/src/dart/element/factor_type_test.dart
index fee6ba8..a67d57e 100644
--- a/pkg/analyzer/test/src/dart/element/factor_type_test.dart
+++ b/pkg/analyzer/test/src/dart/element/factor_type_test.dart
@@ -3,7 +3,6 @@
// BSD-style license that can be found in the LICENSE file.
import 'package:_fe_analyzer_shared/src/flow_analysis/factory_type_test_helper.dart';
-import 'package:analyzer/dart/analysis/features.dart';
import 'package:analyzer/dart/element/type.dart';
import 'package:analyzer/dart/element/type_provider.dart';
import 'package:analyzer/src/dart/element/type.dart';
@@ -42,9 +41,7 @@
}
void setUp() {
- var analysisContext = TestAnalysisContext(
- featureSet: FeatureSet.latestLanguageVersion(),
- );
+ var analysisContext = TestAnalysisContext();
typeProvider = analysisContext.typeProviderNonNullableByDefault;
typeSystem = analysisContext.typeSystemNonNullableByDefault;
}
diff --git a/runtime/docs/index.md b/runtime/docs/index.md
index 934ea63..4a63f9e 100644
--- a/runtime/docs/index.md
+++ b/runtime/docs/index.md
@@ -266,7 +266,7 @@
![Snapshots](images/snapshot-with-code.png)
!!! sourcecode "Source to read"
- @{runtime/vm/clustered_snapshot.cc} handles serialization and deserialization of snapshots. A family of API functions `Dart_CreateXyzSnapshot[AsAssembly]` are responsible for writing out snapshots of the heap (e.g. @{Dart_CreateAppJITSnapshotAsBlobs} and @{Dart_CreateAppAOTSnapshotAsAssembly}). On the other hand @{Dart_CreateIsolateGroup} optionally takes snapshot data to start an isolate from.
+ @{runtime/vm/app_snapshot.cc} handles serialization and deserialization of snapshots. A family of API functions `Dart_CreateXyzSnapshot[AsAssembly]` are responsible for writing out snapshots of the heap (e.g. @{Dart_CreateAppJITSnapshotAsBlobs} and @{Dart_CreateAppAOTSnapshotAsAssembly}). On the other hand @{Dart_CreateIsolateGroup} optionally takes snapshot data to start an isolate from.
### Running from AppJIT snapshots
@@ -390,4 +390,4 @@
## TODO
1. Document the difference between CoreJIT and AppJIT snapshots.
-2. Document that switchable calls are used in the unoptimized code as well.
\ No newline at end of file
+2. Document that switchable calls are used in the unoptimized code as well.
diff --git a/runtime/vm/clustered_snapshot.cc b/runtime/vm/app_snapshot.cc
similarity index 99%
rename from runtime/vm/clustered_snapshot.cc
rename to runtime/vm/app_snapshot.cc
index cf5473e..21399b7 100644
--- a/runtime/vm/clustered_snapshot.cc
+++ b/runtime/vm/app_snapshot.cc
@@ -5,7 +5,7 @@
#include <memory>
#include <utility>
-#include "vm/clustered_snapshot.h"
+#include "vm/app_snapshot.h"
#include "platform/assert.h"
#include "vm/bootstrap.h"
@@ -2920,10 +2920,10 @@
ContextPtr context = Context::RawCast(object);
objects_.Add(context);
- s->Push(context->untag()->parent_);
+ s->Push(context->untag()->parent());
const intptr_t length = context->untag()->num_variables_;
for (intptr_t i = 0; i < length; i++) {
- s->Push(context->untag()->data()[i]);
+ s->Push(context->untag()->element(i));
}
}
@@ -2947,9 +2947,9 @@
AutoTraceObject(context);
const intptr_t length = context->untag()->num_variables_;
s->WriteUnsigned(length);
- WriteField(context, parent_);
+ WriteField(context, parent());
for (intptr_t j = 0; j < length; j++) {
- s->WriteElementRef(context->untag()->data()[j], j);
+ s->WriteElementRef(context->untag()->element(j), j);
}
}
}
diff --git a/runtime/vm/clustered_snapshot.h b/runtime/vm/app_snapshot.h
similarity index 99%
rename from runtime/vm/clustered_snapshot.h
rename to runtime/vm/app_snapshot.h
index d80cb7453..da96ab4 100644
--- a/runtime/vm/clustered_snapshot.h
+++ b/runtime/vm/app_snapshot.h
@@ -2,8 +2,8 @@
// 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.
-#ifndef RUNTIME_VM_CLUSTERED_SNAPSHOT_H_
-#define RUNTIME_VM_CLUSTERED_SNAPSHOT_H_
+#ifndef RUNTIME_VM_APP_SNAPSHOT_H_
+#define RUNTIME_VM_APP_SNAPSHOT_H_
#include "platform/assert.h"
#include "vm/allocation.h"
@@ -820,4 +820,4 @@
} // namespace dart
-#endif // RUNTIME_VM_CLUSTERED_SNAPSHOT_H_
+#endif // RUNTIME_VM_APP_SNAPSHOT_H_
diff --git a/runtime/vm/benchmark_test.cc b/runtime/vm/benchmark_test.cc
index 45da2e8..3c2345e 100644
--- a/runtime/vm/benchmark_test.cc
+++ b/runtime/vm/benchmark_test.cc
@@ -15,7 +15,7 @@
#include "platform/globals.h"
#include "platform/utils.h"
-#include "vm/clustered_snapshot.h"
+#include "vm/app_snapshot.h"
#include "vm/dart_api_impl.h"
#include "vm/datastream.h"
#include "vm/message_snapshot.h"
diff --git a/runtime/vm/compiler/backend/flow_graph_compiler_arm.cc b/runtime/vm/compiler/backend/flow_graph_compiler_arm.cc
index 35dcb71..fbe3e61 100644
--- a/runtime/vm/compiler/backend/flow_graph_compiler_arm.cc
+++ b/runtime/vm/compiler/backend/flow_graph_compiler_arm.cc
@@ -582,7 +582,7 @@
if (FLAG_precompiled_mode) {
if (FLAG_use_bare_instructions) {
// The AOT runtime will replace the slot in the object pool with the
- // entrypoint address - see clustered_snapshot.cc.
+ // entrypoint address - see app_snapshot.cc.
CLOBBERS_LR(__ LoadUniqueObject(LR, StubCode::MegamorphicCall()));
} else {
__ LoadUniqueObject(CODE_REG, StubCode::MegamorphicCall());
@@ -643,7 +643,7 @@
(ic_data.SizeWithoutTypeArgs() - 1) * compiler::target::kWordSize);
if (FLAG_precompiled_mode && FLAG_use_bare_instructions) {
// The AOT runtime will replace the slot in the object pool with the
- // entrypoint address - see clustered_snapshot.cc.
+ // entrypoint address - see app_snapshot.cc.
CLOBBERS_LR(__ LoadUniqueObject(LR, initial_stub));
} else {
__ LoadUniqueObject(CODE_REG, initial_stub);
diff --git a/runtime/vm/compiler/backend/flow_graph_compiler_arm64.cc b/runtime/vm/compiler/backend/flow_graph_compiler_arm64.cc
index b3e65ad..da37d86 100644
--- a/runtime/vm/compiler/backend/flow_graph_compiler_arm64.cc
+++ b/runtime/vm/compiler/backend/flow_graph_compiler_arm64.cc
@@ -578,7 +578,7 @@
ASSERT((data_index + 1) == stub_index);
if (FLAG_precompiled_mode && FLAG_use_bare_instructions) {
// The AOT runtime will replace the slot in the object pool with the
- // entrypoint address - see clustered_snapshot.cc.
+ // entrypoint address - see app_snapshot.cc.
CLOBBERS_LR(__ LoadDoubleWordFromPoolIndex(R5, LR, data_index));
} else {
__ LoadDoubleWordFromPoolIndex(R5, CODE_REG, data_index);
@@ -638,7 +638,7 @@
if (FLAG_precompiled_mode && FLAG_use_bare_instructions) {
// The AOT runtime will replace the slot in the object pool with the
- // entrypoint address - see clustered_snapshot.cc.
+ // entrypoint address - see app_snapshot.cc.
CLOBBERS_LR(__ LoadDoubleWordFromPoolIndex(R5, LR, data_index));
} else {
__ LoadDoubleWordFromPoolIndex(R5, CODE_REG, data_index);
diff --git a/runtime/vm/compiler/backend/flow_graph_compiler_x64.cc b/runtime/vm/compiler/backend/flow_graph_compiler_x64.cc
index 81c4cac..573add6 100644
--- a/runtime/vm/compiler/backend/flow_graph_compiler_x64.cc
+++ b/runtime/vm/compiler/backend/flow_graph_compiler_x64.cc
@@ -581,7 +581,7 @@
if (FLAG_precompiled_mode) {
if (FLAG_use_bare_instructions) {
// The AOT runtime will replace the slot in the object pool with the
- // entrypoint address - see clustered_snapshot.cc.
+ // entrypoint address - see app_snapshot.cc.
__ LoadUniqueObject(RCX, StubCode::MegamorphicCall());
} else {
__ LoadUniqueObject(CODE_REG, StubCode::MegamorphicCall());
@@ -639,7 +639,7 @@
RSP, (ic_data.SizeWithoutTypeArgs() - 1) * kWordSize));
if (FLAG_precompiled_mode && FLAG_use_bare_instructions) {
// The AOT runtime will replace the slot in the object pool with the
- // entrypoint address - see clustered_snapshot.cc.
+ // entrypoint address - see app_snapshot.cc.
__ LoadUniqueObject(RCX, initial_stub);
} else {
const intptr_t entry_point_offset =
diff --git a/runtime/vm/compiler/runtime_api.cc b/runtime/vm/compiler/runtime_api.cc
index 65efc13..5bc2fff 100644
--- a/runtime/vm/compiler/runtime_api.cc
+++ b/runtime/vm/compiler/runtime_api.cc
@@ -1003,6 +1003,7 @@
namespace target {
const word Array::kMaxElements = Array_kMaxElements;
+const word Context::kMaxElements = Context_kMaxElements;
} // namespace target
} // namespace compiler
diff --git a/runtime/vm/compiler/runtime_api.h b/runtime/vm/compiler/runtime_api.h
index beff8e5..85c8181 100644
--- a/runtime/vm/compiler/runtime_api.h
+++ b/runtime/vm/compiler/runtime_api.h
@@ -1324,6 +1324,8 @@
static word InstanceSize(intptr_t length);
static word InstanceSize();
FINAL_CLASS();
+
+ static const word kMaxElements;
};
class Closure : public AllStatic {
diff --git a/runtime/vm/compiler/runtime_offsets_extracted.h b/runtime/vm/compiler/runtime_offsets_extracted.h
index 9cb8a94..6341678 100644
--- a/runtime/vm/compiler/runtime_offsets_extracted.h
+++ b/runtime/vm/compiler/runtime_offsets_extracted.h
@@ -58,6 +58,7 @@
static constexpr dart::compiler::target::word Array_kMaxElements = 268435455;
static constexpr dart::compiler::target::word Array_kMaxNewSpaceElements =
65533;
+static constexpr dart::compiler::target::word Context_kMaxElements = 268435455;
static constexpr dart::compiler::target::word
Instructions_kMonomorphicEntryOffsetJIT = 0;
static constexpr dart::compiler::target::word
@@ -605,6 +606,8 @@
576460752303423487;
static constexpr dart::compiler::target::word Array_kMaxNewSpaceElements =
32765;
+static constexpr dart::compiler::target::word Context_kMaxElements =
+ 576460752303423487;
static constexpr dart::compiler::target::word
Instructions_kMonomorphicEntryOffsetJIT = 8;
static constexpr dart::compiler::target::word
@@ -1160,6 +1163,7 @@
static constexpr dart::compiler::target::word Array_kMaxElements = 268435455;
static constexpr dart::compiler::target::word Array_kMaxNewSpaceElements =
65533;
+static constexpr dart::compiler::target::word Context_kMaxElements = 268435455;
static constexpr dart::compiler::target::word
Instructions_kMonomorphicEntryOffsetJIT = 6;
static constexpr dart::compiler::target::word
@@ -1704,6 +1708,8 @@
576460752303423487;
static constexpr dart::compiler::target::word Array_kMaxNewSpaceElements =
32765;
+static constexpr dart::compiler::target::word Context_kMaxElements =
+ 576460752303423487;
static constexpr dart::compiler::target::word
Instructions_kMonomorphicEntryOffsetJIT = 8;
static constexpr dart::compiler::target::word
@@ -2232,8 +2238,8 @@
static constexpr dart::compiler::target::word Code_elements_start_offset = 176;
static constexpr dart::compiler::target::word Code_element_size = 4;
static constexpr dart::compiler::target::word Context_elements_start_offset =
- 24;
-static constexpr dart::compiler::target::word Context_element_size = 8;
+ 16;
+static constexpr dart::compiler::target::word Context_element_size = 4;
static constexpr dart::compiler::target::word
ContextScope_elements_start_offset = 16;
static constexpr dart::compiler::target::word ContextScope_element_size = 32;
@@ -2260,6 +2266,7 @@
static constexpr dart::compiler::target::word Array_kMaxElements = 268435455;
static constexpr dart::compiler::target::word Array_kMaxNewSpaceElements =
65532;
+static constexpr dart::compiler::target::word Context_kMaxElements = 268435455;
static constexpr dart::compiler::target::word
Instructions_kMonomorphicEntryOffsetJIT = 8;
static constexpr dart::compiler::target::word
@@ -2342,7 +2349,7 @@
48;
static constexpr dart::compiler::target::word Code_owner_offset = 56;
static constexpr dart::compiler::target::word Context_num_variables_offset = 8;
-static constexpr dart::compiler::target::word Context_parent_offset = 16;
+static constexpr dart::compiler::target::word Context_parent_offset = 12;
static constexpr dart::compiler::target::word Double_value_offset = 8;
static constexpr dart::compiler::target::word
ExternalOneByteString_external_data_offset = 16;
@@ -2696,7 +2703,7 @@
static constexpr dart::compiler::target::word CodeSourceMap_HeaderSize = 16;
static constexpr dart::compiler::target::word CompressedStackMaps_HeaderSize =
16;
-static constexpr dart::compiler::target::word Context_header_size = 24;
+static constexpr dart::compiler::target::word Context_header_size = 16;
static constexpr dart::compiler::target::word Double_InstanceSize = 16;
static constexpr dart::compiler::target::word DynamicLibrary_InstanceSize = 16;
static constexpr dart::compiler::target::word
@@ -2786,8 +2793,8 @@
static constexpr dart::compiler::target::word Code_elements_start_offset = 176;
static constexpr dart::compiler::target::word Code_element_size = 4;
static constexpr dart::compiler::target::word Context_elements_start_offset =
- 24;
-static constexpr dart::compiler::target::word Context_element_size = 8;
+ 16;
+static constexpr dart::compiler::target::word Context_element_size = 4;
static constexpr dart::compiler::target::word
ContextScope_elements_start_offset = 16;
static constexpr dart::compiler::target::word ContextScope_element_size = 32;
@@ -2814,6 +2821,7 @@
static constexpr dart::compiler::target::word Array_kMaxElements = 268435455;
static constexpr dart::compiler::target::word Array_kMaxNewSpaceElements =
65532;
+static constexpr dart::compiler::target::word Context_kMaxElements = 268435455;
static constexpr dart::compiler::target::word
Instructions_kMonomorphicEntryOffsetJIT = 8;
static constexpr dart::compiler::target::word
@@ -2896,7 +2904,7 @@
48;
static constexpr dart::compiler::target::word Code_owner_offset = 56;
static constexpr dart::compiler::target::word Context_num_variables_offset = 8;
-static constexpr dart::compiler::target::word Context_parent_offset = 16;
+static constexpr dart::compiler::target::word Context_parent_offset = 12;
static constexpr dart::compiler::target::word Double_value_offset = 8;
static constexpr dart::compiler::target::word
ExternalOneByteString_external_data_offset = 16;
@@ -3251,7 +3259,7 @@
static constexpr dart::compiler::target::word CodeSourceMap_HeaderSize = 16;
static constexpr dart::compiler::target::word CompressedStackMaps_HeaderSize =
16;
-static constexpr dart::compiler::target::word Context_header_size = 24;
+static constexpr dart::compiler::target::word Context_header_size = 16;
static constexpr dart::compiler::target::word Double_InstanceSize = 16;
static constexpr dart::compiler::target::word DynamicLibrary_InstanceSize = 16;
static constexpr dart::compiler::target::word
@@ -3368,6 +3376,7 @@
static constexpr dart::compiler::target::word Array_kMaxElements = 268435455;
static constexpr dart::compiler::target::word Array_kMaxNewSpaceElements =
65533;
+static constexpr dart::compiler::target::word Context_kMaxElements = 268435455;
static constexpr dart::compiler::target::word
Instructions_kMonomorphicEntryOffsetJIT = 0;
static constexpr dart::compiler::target::word
@@ -3909,6 +3918,8 @@
576460752303423487;
static constexpr dart::compiler::target::word Array_kMaxNewSpaceElements =
32765;
+static constexpr dart::compiler::target::word Context_kMaxElements =
+ 576460752303423487;
static constexpr dart::compiler::target::word
Instructions_kMonomorphicEntryOffsetJIT = 8;
static constexpr dart::compiler::target::word
@@ -4458,6 +4469,7 @@
static constexpr dart::compiler::target::word Array_kMaxElements = 268435455;
static constexpr dart::compiler::target::word Array_kMaxNewSpaceElements =
65533;
+static constexpr dart::compiler::target::word Context_kMaxElements = 268435455;
static constexpr dart::compiler::target::word
Instructions_kMonomorphicEntryOffsetJIT = 6;
static constexpr dart::compiler::target::word
@@ -4996,6 +5008,8 @@
576460752303423487;
static constexpr dart::compiler::target::word Array_kMaxNewSpaceElements =
32765;
+static constexpr dart::compiler::target::word Context_kMaxElements =
+ 576460752303423487;
static constexpr dart::compiler::target::word
Instructions_kMonomorphicEntryOffsetJIT = 8;
static constexpr dart::compiler::target::word
@@ -5518,8 +5532,8 @@
static constexpr dart::compiler::target::word Code_elements_start_offset = 144;
static constexpr dart::compiler::target::word Code_element_size = 4;
static constexpr dart::compiler::target::word Context_elements_start_offset =
- 24;
-static constexpr dart::compiler::target::word Context_element_size = 8;
+ 16;
+static constexpr dart::compiler::target::word Context_element_size = 4;
static constexpr dart::compiler::target::word
ContextScope_elements_start_offset = 16;
static constexpr dart::compiler::target::word ContextScope_element_size = 32;
@@ -5546,6 +5560,7 @@
static constexpr dart::compiler::target::word Array_kMaxElements = 268435455;
static constexpr dart::compiler::target::word Array_kMaxNewSpaceElements =
65532;
+static constexpr dart::compiler::target::word Context_kMaxElements = 268435455;
static constexpr dart::compiler::target::word
Instructions_kMonomorphicEntryOffsetJIT = 8;
static constexpr dart::compiler::target::word
@@ -5626,7 +5641,7 @@
48;
static constexpr dart::compiler::target::word Code_owner_offset = 56;
static constexpr dart::compiler::target::word Context_num_variables_offset = 8;
-static constexpr dart::compiler::target::word Context_parent_offset = 16;
+static constexpr dart::compiler::target::word Context_parent_offset = 12;
static constexpr dart::compiler::target::word Double_value_offset = 8;
static constexpr dart::compiler::target::word
ExternalOneByteString_external_data_offset = 16;
@@ -5979,7 +5994,7 @@
static constexpr dart::compiler::target::word CodeSourceMap_HeaderSize = 16;
static constexpr dart::compiler::target::word CompressedStackMaps_HeaderSize =
16;
-static constexpr dart::compiler::target::word Context_header_size = 24;
+static constexpr dart::compiler::target::word Context_header_size = 16;
static constexpr dart::compiler::target::word Double_InstanceSize = 16;
static constexpr dart::compiler::target::word DynamicLibrary_InstanceSize = 16;
static constexpr dart::compiler::target::word
@@ -6066,8 +6081,8 @@
static constexpr dart::compiler::target::word Code_elements_start_offset = 144;
static constexpr dart::compiler::target::word Code_element_size = 4;
static constexpr dart::compiler::target::word Context_elements_start_offset =
- 24;
-static constexpr dart::compiler::target::word Context_element_size = 8;
+ 16;
+static constexpr dart::compiler::target::word Context_element_size = 4;
static constexpr dart::compiler::target::word
ContextScope_elements_start_offset = 16;
static constexpr dart::compiler::target::word ContextScope_element_size = 32;
@@ -6094,6 +6109,7 @@
static constexpr dart::compiler::target::word Array_kMaxElements = 268435455;
static constexpr dart::compiler::target::word Array_kMaxNewSpaceElements =
65532;
+static constexpr dart::compiler::target::word Context_kMaxElements = 268435455;
static constexpr dart::compiler::target::word
Instructions_kMonomorphicEntryOffsetJIT = 8;
static constexpr dart::compiler::target::word
@@ -6174,7 +6190,7 @@
48;
static constexpr dart::compiler::target::word Code_owner_offset = 56;
static constexpr dart::compiler::target::word Context_num_variables_offset = 8;
-static constexpr dart::compiler::target::word Context_parent_offset = 16;
+static constexpr dart::compiler::target::word Context_parent_offset = 12;
static constexpr dart::compiler::target::word Double_value_offset = 8;
static constexpr dart::compiler::target::word
ExternalOneByteString_external_data_offset = 16;
@@ -6528,7 +6544,7 @@
static constexpr dart::compiler::target::word CodeSourceMap_HeaderSize = 16;
static constexpr dart::compiler::target::word CompressedStackMaps_HeaderSize =
16;
-static constexpr dart::compiler::target::word Context_header_size = 24;
+static constexpr dart::compiler::target::word Context_header_size = 16;
static constexpr dart::compiler::target::word Double_InstanceSize = 16;
static constexpr dart::compiler::target::word DynamicLibrary_InstanceSize = 16;
static constexpr dart::compiler::target::word
@@ -6655,6 +6671,8 @@
268435455;
static constexpr dart::compiler::target::word AOT_Array_kMaxNewSpaceElements =
65533;
+static constexpr dart::compiler::target::word AOT_Context_kMaxElements =
+ 268435455;
static constexpr dart::compiler::target::word
AOT_Instructions_kMonomorphicEntryOffsetJIT = 0;
static constexpr dart::compiler::target::word
@@ -7267,6 +7285,8 @@
576460752303423487;
static constexpr dart::compiler::target::word AOT_Array_kMaxNewSpaceElements =
32765;
+static constexpr dart::compiler::target::word AOT_Context_kMaxElements =
+ 576460752303423487;
static constexpr dart::compiler::target::word
AOT_Instructions_kMonomorphicEntryOffsetJIT = 8;
static constexpr dart::compiler::target::word
@@ -7886,6 +7906,8 @@
576460752303423487;
static constexpr dart::compiler::target::word AOT_Array_kMaxNewSpaceElements =
32765;
+static constexpr dart::compiler::target::word AOT_Context_kMaxElements =
+ 576460752303423487;
static constexpr dart::compiler::target::word
AOT_Instructions_kMonomorphicEntryOffsetJIT = 8;
static constexpr dart::compiler::target::word
@@ -8470,8 +8492,8 @@
152;
static constexpr dart::compiler::target::word AOT_Code_element_size = 4;
static constexpr dart::compiler::target::word
- AOT_Context_elements_start_offset = 24;
-static constexpr dart::compiler::target::word AOT_Context_element_size = 8;
+ AOT_Context_elements_start_offset = 16;
+static constexpr dart::compiler::target::word AOT_Context_element_size = 4;
static constexpr dart::compiler::target::word
AOT_ContextScope_elements_start_offset = 16;
static constexpr dart::compiler::target::word AOT_ContextScope_element_size =
@@ -8503,6 +8525,8 @@
268435455;
static constexpr dart::compiler::target::word AOT_Array_kMaxNewSpaceElements =
65532;
+static constexpr dart::compiler::target::word AOT_Context_kMaxElements =
+ 268435455;
static constexpr dart::compiler::target::word
AOT_Instructions_kMonomorphicEntryOffsetJIT = 8;
static constexpr dart::compiler::target::word
@@ -8589,7 +8613,7 @@
static constexpr dart::compiler::target::word AOT_Code_owner_offset = 56;
static constexpr dart::compiler::target::word AOT_Context_num_variables_offset =
8;
-static constexpr dart::compiler::target::word AOT_Context_parent_offset = 16;
+static constexpr dart::compiler::target::word AOT_Context_parent_offset = 12;
static constexpr dart::compiler::target::word AOT_Double_value_offset = 8;
static constexpr dart::compiler::target::word
AOT_ExternalOneByteString_external_data_offset = 16;
@@ -8982,7 +9006,7 @@
static constexpr dart::compiler::target::word AOT_CodeSourceMap_HeaderSize = 16;
static constexpr dart::compiler::target::word
AOT_CompressedStackMaps_HeaderSize = 16;
-static constexpr dart::compiler::target::word AOT_Context_header_size = 24;
+static constexpr dart::compiler::target::word AOT_Context_header_size = 16;
static constexpr dart::compiler::target::word AOT_Double_InstanceSize = 16;
static constexpr dart::compiler::target::word AOT_DynamicLibrary_InstanceSize =
16;
@@ -9085,8 +9109,8 @@
152;
static constexpr dart::compiler::target::word AOT_Code_element_size = 4;
static constexpr dart::compiler::target::word
- AOT_Context_elements_start_offset = 24;
-static constexpr dart::compiler::target::word AOT_Context_element_size = 8;
+ AOT_Context_elements_start_offset = 16;
+static constexpr dart::compiler::target::word AOT_Context_element_size = 4;
static constexpr dart::compiler::target::word
AOT_ContextScope_elements_start_offset = 16;
static constexpr dart::compiler::target::word AOT_ContextScope_element_size =
@@ -9118,6 +9142,8 @@
268435455;
static constexpr dart::compiler::target::word AOT_Array_kMaxNewSpaceElements =
65532;
+static constexpr dart::compiler::target::word AOT_Context_kMaxElements =
+ 268435455;
static constexpr dart::compiler::target::word
AOT_Instructions_kMonomorphicEntryOffsetJIT = 8;
static constexpr dart::compiler::target::word
@@ -9204,7 +9230,7 @@
static constexpr dart::compiler::target::word AOT_Code_owner_offset = 56;
static constexpr dart::compiler::target::word AOT_Context_num_variables_offset =
8;
-static constexpr dart::compiler::target::word AOT_Context_parent_offset = 16;
+static constexpr dart::compiler::target::word AOT_Context_parent_offset = 12;
static constexpr dart::compiler::target::word AOT_Double_value_offset = 8;
static constexpr dart::compiler::target::word
AOT_ExternalOneByteString_external_data_offset = 16;
@@ -9598,7 +9624,7 @@
static constexpr dart::compiler::target::word AOT_CodeSourceMap_HeaderSize = 16;
static constexpr dart::compiler::target::word
AOT_CompressedStackMaps_HeaderSize = 16;
-static constexpr dart::compiler::target::word AOT_Context_header_size = 24;
+static constexpr dart::compiler::target::word AOT_Context_header_size = 16;
static constexpr dart::compiler::target::word AOT_Double_InstanceSize = 16;
static constexpr dart::compiler::target::word AOT_DynamicLibrary_InstanceSize =
16;
@@ -9733,6 +9759,8 @@
268435455;
static constexpr dart::compiler::target::word AOT_Array_kMaxNewSpaceElements =
65533;
+static constexpr dart::compiler::target::word AOT_Context_kMaxElements =
+ 268435455;
static constexpr dart::compiler::target::word
AOT_Instructions_kMonomorphicEntryOffsetJIT = 0;
static constexpr dart::compiler::target::word
@@ -10338,6 +10366,8 @@
576460752303423487;
static constexpr dart::compiler::target::word AOT_Array_kMaxNewSpaceElements =
32765;
+static constexpr dart::compiler::target::word AOT_Context_kMaxElements =
+ 576460752303423487;
static constexpr dart::compiler::target::word
AOT_Instructions_kMonomorphicEntryOffsetJIT = 8;
static constexpr dart::compiler::target::word
@@ -10950,6 +10980,8 @@
576460752303423487;
static constexpr dart::compiler::target::word AOT_Array_kMaxNewSpaceElements =
32765;
+static constexpr dart::compiler::target::word AOT_Context_kMaxElements =
+ 576460752303423487;
static constexpr dart::compiler::target::word
AOT_Instructions_kMonomorphicEntryOffsetJIT = 8;
static constexpr dart::compiler::target::word
@@ -11527,8 +11559,8 @@
120;
static constexpr dart::compiler::target::word AOT_Code_element_size = 4;
static constexpr dart::compiler::target::word
- AOT_Context_elements_start_offset = 24;
-static constexpr dart::compiler::target::word AOT_Context_element_size = 8;
+ AOT_Context_elements_start_offset = 16;
+static constexpr dart::compiler::target::word AOT_Context_element_size = 4;
static constexpr dart::compiler::target::word
AOT_ContextScope_elements_start_offset = 16;
static constexpr dart::compiler::target::word AOT_ContextScope_element_size =
@@ -11560,6 +11592,8 @@
268435455;
static constexpr dart::compiler::target::word AOT_Array_kMaxNewSpaceElements =
65532;
+static constexpr dart::compiler::target::word AOT_Context_kMaxElements =
+ 268435455;
static constexpr dart::compiler::target::word
AOT_Instructions_kMonomorphicEntryOffsetJIT = 8;
static constexpr dart::compiler::target::word
@@ -11644,7 +11678,7 @@
static constexpr dart::compiler::target::word AOT_Code_owner_offset = 56;
static constexpr dart::compiler::target::word AOT_Context_num_variables_offset =
8;
-static constexpr dart::compiler::target::word AOT_Context_parent_offset = 16;
+static constexpr dart::compiler::target::word AOT_Context_parent_offset = 12;
static constexpr dart::compiler::target::word AOT_Double_value_offset = 8;
static constexpr dart::compiler::target::word
AOT_ExternalOneByteString_external_data_offset = 16;
@@ -12035,7 +12069,7 @@
static constexpr dart::compiler::target::word AOT_CodeSourceMap_HeaderSize = 16;
static constexpr dart::compiler::target::word
AOT_CompressedStackMaps_HeaderSize = 16;
-static constexpr dart::compiler::target::word AOT_Context_header_size = 24;
+static constexpr dart::compiler::target::word AOT_Context_header_size = 16;
static constexpr dart::compiler::target::word AOT_Double_InstanceSize = 16;
static constexpr dart::compiler::target::word AOT_DynamicLibrary_InstanceSize =
16;
@@ -12135,8 +12169,8 @@
120;
static constexpr dart::compiler::target::word AOT_Code_element_size = 4;
static constexpr dart::compiler::target::word
- AOT_Context_elements_start_offset = 24;
-static constexpr dart::compiler::target::word AOT_Context_element_size = 8;
+ AOT_Context_elements_start_offset = 16;
+static constexpr dart::compiler::target::word AOT_Context_element_size = 4;
static constexpr dart::compiler::target::word
AOT_ContextScope_elements_start_offset = 16;
static constexpr dart::compiler::target::word AOT_ContextScope_element_size =
@@ -12168,6 +12202,8 @@
268435455;
static constexpr dart::compiler::target::word AOT_Array_kMaxNewSpaceElements =
65532;
+static constexpr dart::compiler::target::word AOT_Context_kMaxElements =
+ 268435455;
static constexpr dart::compiler::target::word
AOT_Instructions_kMonomorphicEntryOffsetJIT = 8;
static constexpr dart::compiler::target::word
@@ -12252,7 +12288,7 @@
static constexpr dart::compiler::target::word AOT_Code_owner_offset = 56;
static constexpr dart::compiler::target::word AOT_Context_num_variables_offset =
8;
-static constexpr dart::compiler::target::word AOT_Context_parent_offset = 16;
+static constexpr dart::compiler::target::word AOT_Context_parent_offset = 12;
static constexpr dart::compiler::target::word AOT_Double_value_offset = 8;
static constexpr dart::compiler::target::word
AOT_ExternalOneByteString_external_data_offset = 16;
@@ -12644,7 +12680,7 @@
static constexpr dart::compiler::target::word AOT_CodeSourceMap_HeaderSize = 16;
static constexpr dart::compiler::target::word
AOT_CompressedStackMaps_HeaderSize = 16;
-static constexpr dart::compiler::target::word AOT_Context_header_size = 24;
+static constexpr dart::compiler::target::word AOT_Context_header_size = 16;
static constexpr dart::compiler::target::word AOT_Double_InstanceSize = 16;
static constexpr dart::compiler::target::word AOT_DynamicLibrary_InstanceSize =
16;
diff --git a/runtime/vm/compiler/runtime_offsets_list.h b/runtime/vm/compiler/runtime_offsets_list.h
index 2e97ede..510ef0e 100644
--- a/runtime/vm/compiler/runtime_offsets_list.h
+++ b/runtime/vm/compiler/runtime_offsets_list.h
@@ -68,6 +68,7 @@
ARRAY_SIZEOF(TwoByteString, InstanceSize, element_offset) \
CONSTANT(Array, kMaxElements) \
CONSTANT(Array, kMaxNewSpaceElements) \
+ CONSTANT(Context, kMaxElements) \
CONSTANT(Instructions, kMonomorphicEntryOffsetJIT) \
CONSTANT(Instructions, kPolymorphicEntryOffsetJIT) \
CONSTANT(Instructions, kMonomorphicEntryOffsetAOT) \
diff --git a/runtime/vm/compiler/stub_code_compiler_arm64.cc b/runtime/vm/compiler/stub_code_compiler_arm64.cc
index 128d968..9af7272 100644
--- a/runtime/vm/compiler/stub_code_compiler_arm64.cc
+++ b/runtime/vm/compiler/stub_code_compiler_arm64.cc
@@ -488,10 +488,11 @@
R0, // instance
R1, // end address
R2, R3);
- __ ldr(R1, Address(THR, target::Thread::object_null_offset()));
- __ str(R1, FieldAddress(R0, target::Context::parent_offset()));
+ __ StoreCompressedIntoObjectNoBarrier(
+ R0, FieldAddress(R0, target::Context::parent_offset()), NULL_REG);
__ LoadImmediate(R1, 1);
- __ str(R1, FieldAddress(R0, target::Context::num_variables_offset()));
+ __ str(R1, FieldAddress(R0, target::Context::num_variables_offset()),
+ kFourBytes);
__ b(&done);
}
@@ -511,10 +512,11 @@
// Store receiver in context
__ ldr(AllocateClosureABI::kScratchReg,
Address(FP, target::kWordSize * kReceiverOffset));
- __ StoreIntoObject(AllocateClosureABI::kContextReg,
- FieldAddress(AllocateClosureABI::kContextReg,
- target::Context::variable_offset(0)),
- AllocateClosureABI::kScratchReg);
+ __ StoreCompressedIntoObject(
+ AllocateClosureABI::kContextReg,
+ FieldAddress(AllocateClosureABI::kContextReg,
+ target::Context::variable_offset(0)),
+ AllocateClosureABI::kScratchReg);
// Pop function before pushing context.
__ Pop(AllocateClosureABI::kFunctionReg);
@@ -1487,7 +1489,7 @@
target::Context::header_size() +
target::ObjectAlignment::kObjectAlignment - 1;
__ LoadImmediate(R2, fixed_size_plus_alignment_padding);
- __ add(R2, R2, Operand(R1, LSL, 3));
+ __ add(R2, R2, Operand(R1, LSL, kCompressedWordSizeLog2));
ASSERT(kSmiTagShift == 1);
__ andi(R2, R2, Immediate(~(target::ObjectAlignment::kObjectAlignment - 1)));
@@ -1539,7 +1541,8 @@
// Setup up number of context variables field.
// R0: new object.
// R1: number of context variables as integer value (not object).
- __ StoreFieldToOffset(R1, R0, target::Context::num_variables_offset());
+ __ StoreFieldToOffset(R1, R0, target::Context::num_variables_offset(),
+ kFourBytes);
}
// Called for inline allocation of contexts.
@@ -1558,13 +1561,12 @@
// Setup the parent field.
// R0: new object.
// R1: number of context variables.
- __ LoadObject(R2, NullObject());
- __ StoreFieldToOffset(R2, R0, target::Context::parent_offset());
+ __ StoreCompressedIntoObjectOffset(R0, target::Context::parent_offset(),
+ NULL_REG);
// Initialize the context variables.
// R0: new object.
// R1: number of context variables.
- // R2: raw null.
{
Label loop, done;
__ AddImmediate(R3, R0,
@@ -1572,7 +1574,7 @@
__ Bind(&loop);
__ subs(R1, R1, Operand(1));
__ b(&done, MI);
- __ str(R2, Address(R3, R1, UXTX, Address::Scaled));
+ __ str(NULL_REG, Address(R3, R1, UXTX, Address::Scaled), kObjectBytes);
__ b(&loop, NE); // Loop if R1 not zero.
__ Bind(&done);
}
@@ -1626,10 +1628,10 @@
GenerateAllocateContextSpaceStub(assembler, &slow_case);
// Load parent in the existing context.
- __ ldr(R3, FieldAddress(R5, target::Context::parent_offset()));
+ __ LoadCompressed(R3, FieldAddress(R5, target::Context::parent_offset()));
// Setup the parent field.
// R0: new context.
- __ StoreIntoObjectNoBarrier(
+ __ StoreCompressedIntoObjectNoBarrier(
R0, FieldAddress(R0, target::Context::parent_offset()), R3);
// Clone the context variables.
@@ -1648,8 +1650,8 @@
__ subs(R1, R1, Operand(1));
__ b(&done, MI);
- __ ldr(R5, Address(R4, R1, UXTX, Address::Scaled));
- __ str(R5, Address(R3, R1, UXTX, Address::Scaled));
+ __ ldr(R5, Address(R4, R1, UXTX, Address::Scaled), kObjectBytes);
+ __ str(R5, Address(R3, R1, UXTX, Address::Scaled), kObjectBytes);
__ b(&loop, NE); // Loop if R1 not zero.
__ Bind(&done);
diff --git a/runtime/vm/compiler/stub_code_compiler_x64.cc b/runtime/vm/compiler/stub_code_compiler_x64.cc
index 096d3c7..4017ed4 100644
--- a/runtime/vm/compiler/stub_code_compiler_x64.cc
+++ b/runtime/vm/compiler/stub_code_compiler_x64.cc
@@ -434,8 +434,9 @@
RSI, // end address
RDI);
__ movq(RSI, Address(THR, target::Thread::object_null_offset()));
- __ movq(FieldAddress(RAX, target::Context::parent_offset()), RSI);
- __ movq(FieldAddress(RAX, target::Context::num_variables_offset()),
+ __ StoreCompressedIntoObjectNoBarrier(
+ RAX, FieldAddress(RAX, target::Context::parent_offset()), RSI);
+ __ movl(FieldAddress(RAX, target::Context::num_variables_offset()),
Immediate(1));
__ jmp(&done);
}
@@ -455,10 +456,11 @@
// Store receiver in context
__ movq(AllocateClosureABI::kScratchReg,
Address(RBP, target::kWordSize * kReceiverOffsetInWords));
- __ StoreIntoObject(AllocateClosureABI::kContextReg,
- FieldAddress(AllocateClosureABI::kContextReg,
- target::Context::variable_offset(0)),
- AllocateClosureABI::kScratchReg);
+ __ StoreCompressedIntoObject(
+ AllocateClosureABI::kContextReg,
+ FieldAddress(AllocateClosureABI::kContextReg,
+ target::Context::variable_offset(0)),
+ AllocateClosureABI::kScratchReg);
// Pop function.
__ popq(AllocateClosureABI::kFunctionReg);
@@ -1420,7 +1422,8 @@
intptr_t fixed_size_plus_alignment_padding =
(target::Context::header_size() +
target::ObjectAlignment::kObjectAlignment - 1);
- __ leaq(R13, Address(R10, TIMES_8, fixed_size_plus_alignment_padding));
+ __ leaq(R13, Address(R10, TIMES_COMPRESSED_WORD_SIZE,
+ fixed_size_plus_alignment_padding));
__ andq(R13, Immediate(-target::ObjectAlignment::kObjectAlignment));
// Check for allocation tracing.
@@ -1454,7 +1457,8 @@
// R10: number of context variables.
{
Label size_tag_overflow, done;
- __ leaq(R13, Address(R10, TIMES_8, fixed_size_plus_alignment_padding));
+ __ leaq(R13, Address(R10, TIMES_COMPRESSED_WORD_SIZE,
+ fixed_size_plus_alignment_padding));
__ andq(R13, Immediate(-target::ObjectAlignment::kObjectAlignment));
__ cmpq(R13, Immediate(target::UntaggedObject::kSizeTagMaxSizeTag));
__ j(ABOVE, &size_tag_overflow, Assembler::kNearJump);
@@ -1478,7 +1482,7 @@
// Setup up number of context variables field.
// RAX: new object.
// R10: number of context variables as integer value (not object).
- __ movq(FieldAddress(RAX, target::Context::num_variables_offset()), R10);
+ __ movl(FieldAddress(RAX, target::Context::num_variables_offset()), R10);
}
// Called for inline allocation of contexts.
@@ -1499,7 +1503,7 @@
// RAX: new object.
// R9: Parent object, initialised to null.
// No generational barrier needed, since we are storing null.
- __ StoreIntoObjectNoBarrier(
+ __ StoreCompressedIntoObjectNoBarrier(
RAX, FieldAddress(RAX, target::Context::parent_offset()), R9);
// Initialize the context variables.
@@ -1517,7 +1521,8 @@
__ Bind(&loop);
__ decq(R10);
// No generational barrier needed, since we are storing null.
- __ StoreIntoObjectNoBarrier(RAX, Address(R13, R10, TIMES_8, 0), R9);
+ __ StoreCompressedIntoObjectNoBarrier(
+ RAX, Address(R13, R10, TIMES_COMPRESSED_WORD_SIZE, 0), R9);
__ Bind(&entry);
__ cmpq(R10, Immediate(0));
__ j(NOT_EQUAL, &loop, Assembler::kNearJump);
@@ -1567,11 +1572,11 @@
GenerateAllocateContextSpaceStub(assembler, &slow_case);
// Load parent in the existing context.
- __ movq(R13, FieldAddress(R9, target::Context::parent_offset()));
+ __ LoadCompressed(R13, FieldAddress(R9, target::Context::parent_offset()));
// Setup the parent field.
// RAX: new object.
// R9: Old parent object.
- __ StoreIntoObjectNoBarrier(
+ __ StoreCompressedIntoObjectNoBarrier(
RAX, FieldAddress(RAX, target::Context::parent_offset()), R13);
// Clone the context variables.
@@ -1582,11 +1587,12 @@
__ jmp(&entry, Assembler::kNearJump);
__ Bind(&loop);
__ decq(R10);
- __ movq(R13, FieldAddress(R9, R10, TIMES_8,
- target::Context::variable_offset(0)));
- __ StoreIntoObjectNoBarrier(
+ __ LoadCompressed(R13, FieldAddress(R9, R10, TIMES_COMPRESSED_WORD_SIZE,
+ target::Context::variable_offset(0)));
+ __ StoreCompressedIntoObjectNoBarrier(
RAX,
- FieldAddress(RAX, R10, TIMES_8, target::Context::variable_offset(0)),
+ FieldAddress(RAX, R10, TIMES_COMPRESSED_WORD_SIZE,
+ target::Context::variable_offset(0)),
R13);
__ Bind(&entry);
__ cmpq(R10, Immediate(0));
diff --git a/runtime/vm/dart.cc b/runtime/vm/dart.cc
index fda1251..cd3ca635 100644
--- a/runtime/vm/dart.cc
+++ b/runtime/vm/dart.cc
@@ -7,7 +7,7 @@
#include "vm/dart.h"
-#include "vm/clustered_snapshot.h"
+#include "vm/app_snapshot.h"
#include "vm/code_observers.h"
#include "vm/compiler/runtime_offsets_extracted.h"
#include "vm/compiler/runtime_offsets_list.h"
diff --git a/runtime/vm/dart_api_impl.cc b/runtime/vm/dart_api_impl.cc
index 94c0f77..7504a27 100644
--- a/runtime/vm/dart_api_impl.cc
+++ b/runtime/vm/dart_api_impl.cc
@@ -11,8 +11,8 @@
#include "lib/stacktrace.h"
#include "platform/assert.h"
#include "platform/unicode.h"
+#include "vm/app_snapshot.h"
#include "vm/class_finalizer.h"
-#include "vm/clustered_snapshot.h"
#include "vm/compiler/jit/compiler.h"
#include "vm/dart.h"
#include "vm/dart_api_impl.h"
diff --git a/runtime/vm/deferred_objects.cc b/runtime/vm/deferred_objects.cc
index 78b8631..b64d7dd 100644
--- a/runtime/vm/deferred_objects.cc
+++ b/runtime/vm/deferred_objects.cc
@@ -273,7 +273,8 @@
}
static intptr_t ToContextIndex(intptr_t offset_in_bytes) {
- intptr_t result = (offset_in_bytes - Context::variable_offset(0)) / kWordSize;
+ intptr_t result = (offset_in_bytes - Context::variable_offset(0)) /
+ Context::kBytesPerElement;
ASSERT(result >= 0);
return result;
}
diff --git a/runtime/vm/object.h b/runtime/vm/object.h
index b68fe85..c76665a 100644
--- a/runtime/vm/object.h
+++ b/runtime/vm/object.h
@@ -951,7 +951,7 @@
kNullable = 0,
kNonNullable = 1,
kLegacy = 2,
- // Adjust kNullabilityBitSize in clustered_snapshot.cc if adding new values.
+ // Adjust kNullabilityBitSize in app_snapshot.cc if adding new values.
};
// Equality kind between types.
@@ -6821,7 +6821,7 @@
void Dump(int indent = 0) const;
- static const intptr_t kBytesPerElement = kWordSize;
+ static const intptr_t kBytesPerElement = kCompressedWordSize;
static const intptr_t kMaxElements = kSmiMax / kBytesPerElement;
static const intptr_t kAwaitJumpVarIndex = 0;
@@ -6838,11 +6838,11 @@
static intptr_t variable_offset(intptr_t context_index) {
return OFFSET_OF_RETURNED_VALUE(UntaggedContext, data) +
- (kWordSize * context_index);
+ (kBytesPerElement * context_index);
}
static bool IsValidLength(intptr_t len) {
- return 0 <= len && len <= compiler::target::Array::kMaxElements;
+ return 0 <= len && len <= compiler::target::Context::kMaxElements;
}
static intptr_t InstanceSize() {
diff --git a/runtime/vm/object_graph_copy.cc b/runtime/vm/object_graph_copy.cc
index 86d9394..2853b37 100644
--- a/runtime/vm/object_graph_copy.cc
+++ b/runtime/vm/object_graph_copy.cc
@@ -245,9 +245,7 @@
DART_FORCE_INLINE
ObjectPtr AllocateObject(intptr_t cid, intptr_t size) {
#if defined(DART_COMPRESSED_POINTERS)
- // TODO(rmacnak): Can be changed unconditionally to `true` once Contexts
- // are compressed.
- const bool compressed = cid != kContextCid;
+ const bool compressed = true;
#else
const bool compressed = false;
#endif
@@ -664,13 +662,13 @@
}
}
- void ForwardContextPointers(intptr_t context_length,
- ObjectPtr src,
- ObjectPtr dst,
- intptr_t offset,
- intptr_t end_offset) {
- for (; offset < end_offset; offset += kWordSize) {
- ForwardPointer(src, dst, offset);
+ void ForwardCompressedContextPointers(intptr_t context_length,
+ ObjectPtr src,
+ ObjectPtr dst,
+ intptr_t offset,
+ intptr_t end_offset) {
+ for (; offset < end_offset; offset += kCompressedWordSize) {
+ ForwardCompressedPointer(src, dst, offset);
}
}
@@ -705,36 +703,6 @@
StoreCompressedPointerNoBarrier(dst, offset, to);
}
- // TODO(rmacnak): Can be removed if Contexts are compressed.
- DART_FORCE_INLINE
- void ForwardPointer(ObjectPtr src, ObjectPtr dst, intptr_t offset) {
- auto value = LoadPointer(src, offset);
- if (!value.IsHeapObject()) {
- StorePointerNoBarrier(dst, offset, value);
- return;
- }
- const uword tags = TagsFromUntaggedObject(value.untag());
- if (CanShareObject(value, tags)) {
- StorePointerNoBarrier(dst, offset, value);
- return;
- }
-
- ObjectPtr existing_to = fast_forward_map_.ForwardedObject(value);
- if (existing_to != Marker()) {
- StorePointerNoBarrier(dst, offset, existing_to);
- return;
- }
-
- if (UNLIKELY(!CanCopyObject(tags, value))) {
- ASSERT(exception_msg_ != nullptr);
- StorePointerNoBarrier(dst, offset, Object::null());
- return;
- }
-
- auto to = Forward(tags, value);
- StorePointerNoBarrier(dst, offset, to);
- }
-
ObjectPtr Forward(uword tags, ObjectPtr from) {
const intptr_t header_size = UntaggedObject::SizeTag::decode(tags);
const auto cid = UntaggedObject::ClassIdTag::decode(tags);
@@ -859,13 +827,13 @@
}
}
- void ForwardContextPointers(intptr_t context_length,
- const Object& src,
- const Object& dst,
- intptr_t offset,
- intptr_t end_offset) {
- for (; offset < end_offset; offset += kWordSize) {
- ForwardPointer(src, dst, offset);
+ void ForwardCompressedContextPointers(intptr_t context_length,
+ const Object& src,
+ const Object& dst,
+ intptr_t offset,
+ intptr_t end_offset) {
+ for (; offset < end_offset; offset += kCompressedWordSize) {
+ ForwardCompressedPointer(src, dst, offset);
}
}
@@ -939,36 +907,6 @@
StoreCompressedPointerBarrier(dst.ptr(), offset, tmp_.ptr());
}
- // TODO(rmacnak): Can be removed if Contexts are compressed.
- DART_FORCE_INLINE
- void ForwardPointer(const Object& src, const Object& dst, intptr_t offset) {
- auto value = LoadPointer(src.ptr(), offset);
- if (!value.IsHeapObject()) {
- StorePointerNoBarrier(dst.ptr(), offset, value);
- return;
- }
- const uword tags = TagsFromUntaggedObject(value.untag());
- if (CanShareObject(value, tags)) {
- StorePointerBarrier(dst.ptr(), offset, value);
- return;
- }
-
- ObjectPtr existing_to = slow_forward_map_.ForwardedObject(value);
- if (existing_to != Marker()) {
- StorePointerBarrier(dst.ptr(), offset, existing_to);
- return;
- }
-
- if (UNLIKELY(!CanCopyObject(tags, value))) {
- ASSERT(exception_msg_ != nullptr);
- StorePointerNoBarrier(dst.ptr(), offset, Object::null());
- return;
- }
-
- tmp_ = value;
- tmp_ = Forward(tags, tmp_); // Only this can cause allocation.
- StorePointerBarrier(dst.ptr(), offset, tmp_.ptr());
- }
ObjectPtr Forward(uword tags, const Object& from) {
const intptr_t cid = UntaggedObject::ClassIdTag::decode(tags);
intptr_t size = UntaggedObject::SizeTag::decode(tags);
@@ -1161,12 +1099,11 @@
UntagContext(to)->num_variables_ = UntagContext(from)->num_variables_;
- // TODO(rmacnak): Should use ForwardCompressedPointer once contexts are
- // compressed.
- Base::ForwardPointer(from, to, OFFSET_OF(UntaggedContext, parent_));
- Base::ForwardContextPointers(
+ Base::ForwardCompressedPointer(from, to,
+ OFFSET_OF(UntaggedContext, parent_));
+ Base::ForwardCompressedContextPointers(
length, from, to, Context::variable_offset(0),
- Context::variable_offset(0) + kWordSize * length);
+ Context::variable_offset(0) + Context::kBytesPerElement * length);
}
void CopyArray(typename Types::Array from, typename Types::Array to) {
diff --git a/runtime/vm/raw_object.cc b/runtime/vm/raw_object.cc
index 7a184af..9e4013f 100644
--- a/runtime/vm/raw_object.cc
+++ b/runtime/vm/raw_object.cc
@@ -567,7 +567,7 @@
Smi::Value(raw_obj->untag()->length()))
VARIABLE_COMPRESSED_VISITOR(LocalVarDescriptors, raw_obj->untag()->num_entries_)
VARIABLE_COMPRESSED_VISITOR(ExceptionHandlers, raw_obj->untag()->num_entries_)
-VARIABLE_VISITOR(Context, raw_obj->untag()->num_variables_)
+VARIABLE_COMPRESSED_VISITOR(Context, raw_obj->untag()->num_variables_)
VARIABLE_COMPRESSED_VISITOR(Array, Smi::Value(raw_obj->untag()->length()))
VARIABLE_COMPRESSED_VISITOR(
TypedData,
diff --git a/runtime/vm/raw_object.h b/runtime/vm/raw_object.h
index 98f481a..ae7d7a9 100644
--- a/runtime/vm/raw_object.h
+++ b/runtime/vm/raw_object.h
@@ -2170,10 +2170,10 @@
int32_t num_variables_;
- POINTER_FIELD(ContextPtr, parent)
+ COMPRESSED_POINTER_FIELD(ContextPtr, parent)
VISIT_FROM(parent)
// Variable length data follows here.
- VARIABLE_POINTER_FIELDS(ObjectPtr, element, data)
+ COMPRESSED_VARIABLE_POINTER_FIELDS(ObjectPtr, element, data)
friend class Object;
friend void UpdateLengthField(intptr_t,
diff --git a/runtime/vm/snapshot.cc b/runtime/vm/snapshot.cc
index f9b3cdc..211d7e1 100644
--- a/runtime/vm/snapshot.cc
+++ b/runtime/vm/snapshot.cc
@@ -42,20 +42,4 @@
return snapshot;
}
-#if 0
-void SnapshotReader::RunDelayedTypePostprocessing() {
- if (types_to_postprocess_.IsNull()) {
- return;
- }
-
- AbstractType& type = AbstractType::Handle();
- Code& code = Code::Handle();
- for (intptr_t i = 0; i < types_to_postprocess_.Length(); ++i) {
- type ^= types_to_postprocess_.At(i);
- code = TypeTestingStubGenerator::DefaultCodeForType(type);
- type.InitializeTypeTestingStubNonAtomic(code);
- }
-}
-#endif
-
} // namespace dart
diff --git a/runtime/vm/snapshot_test.cc b/runtime/vm/snapshot_test.cc
index d42c2da..1fb886c 100644
--- a/runtime/vm/snapshot_test.cc
+++ b/runtime/vm/snapshot_test.cc
@@ -7,8 +7,8 @@
#include "include/dart_tools_api.h"
#include "platform/assert.h"
#include "platform/unicode.h"
+#include "vm/app_snapshot.h"
#include "vm/class_finalizer.h"
-#include "vm/clustered_snapshot.h"
#include "vm/dart_api_impl.h"
#include "vm/dart_api_message.h"
#include "vm/dart_api_state.h"
diff --git a/runtime/vm/stub_code.cc b/runtime/vm/stub_code.cc
index 90576ec..1cb2a07 100644
--- a/runtime/vm/stub_code.cc
+++ b/runtime/vm/stub_code.cc
@@ -6,7 +6,7 @@
#include "platform/assert.h"
#include "platform/globals.h"
-#include "vm/clustered_snapshot.h"
+#include "vm/app_snapshot.h"
#include "vm/compiler/assembler/disassembler.h"
#include "vm/flags.h"
#include "vm/heap/safepoint.h"
diff --git a/runtime/vm/vm_sources.gni b/runtime/vm/vm_sources.gni
index 2f21ac1..f17cc64 100644
--- a/runtime/vm/vm_sources.gni
+++ b/runtime/vm/vm_sources.gni
@@ -7,6 +7,8 @@
vm_sources = [
"allocation.cc",
"allocation.h",
+ "app_snapshot.cc",
+ "app_snapshot.h",
"base64.cc",
"base64.h",
"base_isolate.h",
@@ -30,8 +32,6 @@
"class_table.h",
"closure_functions_cache.cc",
"closure_functions_cache.h",
- "clustered_snapshot.cc",
- "clustered_snapshot.h",
"code_comments.cc",
"code_comments.h",
"code_descriptors.cc",
diff --git a/sdk/lib/core/int.dart b/sdk/lib/core/int.dart
index 9bf2671..f8f5a1b 100644
--- a/sdk/lib/core/int.dart
+++ b/sdk/lib/core/int.dart
@@ -112,8 +112,6 @@
/// Bitwise unsigned right shift by [shiftAmount] bits.
///
- /// NOT IMPLEMENTED YET.
- ///
/// The least significant [shiftAmount] bits are dropped,
/// the remaining bits (if any) are shifted down,
/// and zero-bits are shifted in as the new most significant bits.
diff --git a/tests/standalone/io/web_socket_test.dart b/tests/standalone/io/web_socket_test.dart
index f5927ba..8f40c32 100644
--- a/tests/standalone/io/web_socket_test.dart
+++ b/tests/standalone/io/web_socket_test.dart
@@ -6,6 +6,10 @@
// VMOptions=--short_socket_read
// VMOptions=--short_socket_write
// VMOptions=--short_socket_read --short_socket_write
+//
+// OtherResources=certificates/server_chain.pem
+// OtherResources=certificates/server_key.pem
+// OtherResources=certificates/trusted_certs.pem
import "dart:async";
import "dart:convert";
diff --git a/tests/standalone_2/io/web_socket_test.dart b/tests/standalone_2/io/web_socket_test.dart
index 5d7f425..6de369f 100644
--- a/tests/standalone_2/io/web_socket_test.dart
+++ b/tests/standalone_2/io/web_socket_test.dart
@@ -6,6 +6,10 @@
// VMOptions=--short_socket_read
// VMOptions=--short_socket_write
// VMOptions=--short_socket_read --short_socket_write
+//
+// OtherResources=certificates/server_chain.pem
+// OtherResources=certificates/server_key.pem
+// OtherResources=certificates/trusted_certs.pem
// @dart = 2.9
diff --git a/tools/VERSION b/tools/VERSION
index 560e5c9..8c0370f 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
MAJOR 2
MINOR 15
PATCH 0
-PRERELEASE 112
+PRERELEASE 113
PRERELEASE_PATCH 0
\ No newline at end of file
diff --git a/tools/make_version.py b/tools/make_version.py
index bf2c9c5..79ac27f 100755
--- a/tools/make_version.py
+++ b/tools/make_version.py
@@ -17,7 +17,7 @@
# backwards-compatible.
VM_SNAPSHOT_FILES = [
# Header files.
- 'clustered_snapshot.h',
+ 'app_snapshot.h',
'datastream.h',
'image_snapshot.h',
'object.h',
@@ -25,7 +25,7 @@
'snapshot.h',
'symbols.h',
# Source files.
- 'clustered_snapshot.cc',
+ 'app_snapshot.cc',
'dart.cc',
'dart_api_impl.cc',
'image_snapshot.cc',