dart-sdk/pkg
Stephen Adams 8c13fa841e [dart2js] Kernel transformer expansion for List.generate
Simple calls to `List.generate` are expanded into a list allocation
and a loop. This generates better code for several reasons:

 - There is no overhead for the function argument (closure allocation,
   closure type, closure class)

 - Global type inference is more precise since each List.generate list
   is tracked separately, and the assignments in the loop give better
   inference to the collection's element type.

To get precise element type inference, there are two new JSArray
constructors. Global type inference starts with the element type being
bottom for these elements, avoiding spurious nulls in the inferred
type.

Change-Id: I5efb90651ae3f9eb2e81af556704960cdf0b75c5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/168770
Commit-Queue: Stephen Adams <sra@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2020-11-11 04:27:22 +00:00
..
_fe_analyzer_shared [CFE] Special case StrongModeNNBDPackageOptOut message in IncrementalCompiler 2020-11-05 09:43:23 +00:00
_js_interop_checks [package:js] Add static errors for invalid extends 2020-10-28 16:04:15 +00:00
analysis_server remove redundant @required annotations when adding required 2020-11-10 23:06:07 +00:00
analysis_server_client [Analyzer] Use new NAMED_REQUIRED ParameterKind for signature help 2020-09-29 07:38:14 +00:00
analysis_tool
analyzer Issue 44063. Report IMPORT_OF_LEGACY_LIBRARY_INTO_NULL_SAFE hint. 2020-11-09 19:42:08 +00:00
analyzer_cli Prepare analyzer_cli/ tests for turning Null Safety on by default. 2020-10-28 17:34:30 +00:00
analyzer_plugin Throw an exception when an attempt is made to produce conflicting edits. 2020-11-10 15:56:06 +00:00
async_helper Update pkg dependencies on pkg:analyzer 2020-10-26 19:30:06 +00:00
build_integration Update pkg dependencies on pkg:analyzer 2020-10-26 19:30:06 +00:00
compiler [dart2js] Kernel transformer expansion for List.generate 2020-11-11 04:27:22 +00:00
dart2js_tools update the pubspec.yaml files to reflect actual package usage 2020-08-20 16:08:59 +00:00
dart2native [vm/dart2native] Ensure to normalize packages path (in addition to sourceFile) to guarantee consistency 2020-11-04 11:13:36 +00:00
dart_internal Support the latest SDK with pkg:dart_internal 2020-11-02 21:51:39 +00:00
dartdev Use pub embedding to run test in dart test 2020-11-10 14:42:25 +00:00
dds Reland "[ DDS ] Keep event history for Stdout, Stderr, and Extension streams" 2020-11-06 19:02:23 +00:00
dev_compiler [dart2js] Kernel transformer expansion for List.generate 2020-11-11 04:27:22 +00:00
diagnostic
expect Rename is{Strong,Weak}Mode to has{Sound,Unsound}NullSafety 2020-11-05 14:26:53 +00:00
front_end [cfe] Use type parser in type schema elimination tests 2020-11-09 16:54:39 +00:00
frontend_server Change frontend server expression evaluation tests to use strong 2020-10-28 21:27:40 +00:00
js Bump SDK constraints in js for pub 2020-11-03 21:28:47 +00:00
js_ast update the pubspec.yaml files to reflect actual package usage 2020-08-20 16:08:59 +00:00
kernel [dart2js] Kernel transformer expansion for List.generate 2020-11-11 04:27:22 +00:00
language_versioning_2.7_test Add tests for inconsistent language markers in part files. 2020-07-24 12:58:35 +00:00
meta Bump SDK constraints in meta for pub 2020-11-03 20:45:37 +00:00
modular_test update pubspec.yaml files to reflect actual package usage 2020-08-19 15:17:22 +00:00
native_stack_traces [vm] Add build ID to non-symbolic stack traces. 2020-09-22 17:14:44 +00:00
nnbd_migration Migration: add migration_summary_test.dart to test_all.dart. 2020-11-10 15:09:26 +00:00
scrape Add new "scrape" package. 2020-10-19 22:24:28 +00:00
smith [Test tool] Remove -c dartkb configuration 2020-11-02 14:06:19 +00:00
sourcemap_testing update the pubspec.yaml files to reflect actual package usage 2020-08-20 16:08:59 +00:00
status_file use dartdev for analysis on the bots; fix two analysis issues 2020-08-21 17:24:10 +00:00
telemetry
test_runner [infra] Remove test/kernel directory from testing scripts and infra scripts 2020-11-10 11:48:14 +00:00
testing [testing] Opt out generated script in pkg/testing 2020-11-04 12:05:27 +00:00
vm [cfe,ddc,dart2js,vm] Add NullType 2020-11-06 12:43:52 +00:00
vm_service [ VM / Service ] Add optional 'limit' parameter to getStack RPC 2020-11-03 21:39:37 +00:00
vm_snapshot_analysis [vm] Include static call references into V8 profile 2020-09-08 12:11:34 +00:00
wasm [wasm] Use wasm traps to handle exceptions 2020-11-02 23:32:20 +00:00
.gitignore
BUILD.gn
pkg.status [CFE] Give incremental_compiler_leak_test more time and reduce risk of hang 2020-09-16 13:07:38 +00:00