From 7e87efd2e711d408c980cbfc30d8d4ae6d2fc5fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Sinan=20A=C4=9Facan?= Date: Wed, 26 Oct 2022 08:39:19 +0000 Subject: [PATCH] [dart2wasm] Check bounds in list `[]` and `[]=` MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit These tests now pass: - co19/Language/Expressions/Lists/indices_t01 - co19/LibTest/collection/UnmodifiableListView/operator_subscript_A02_t01 - co19/LibTest/core/List/List_A01_t01 - corelib/iterable_element_at_test/none - corelib/list_growable_test - corelib/list_unmodifiable_test - corelib/range_error_test - language/no_such_method/empty_selector_test - language/unsorted/range_analysis2_test - language/unsorted/value_range2_test - language/unsorted/value_range3_test - language/unsorted/value_range_test Change-Id: Ia96ebf6490e01e647c482406639accbfe40d44fc Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/264700 Commit-Queue: Ömer Ağacan Reviewed-by: Joshua Litt --- sdk/lib/_internal/wasm/lib/list.dart | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sdk/lib/_internal/wasm/lib/list.dart b/sdk/lib/_internal/wasm/lib/list.dart index 33958240d30..857145ec848 100644 --- a/sdk/lib/_internal/wasm/lib/list.dart +++ b/sdk/lib/_internal/wasm/lib/list.dart @@ -18,6 +18,7 @@ abstract class _ListBase extends ListBase { _ListBase._withData(this._length, this._data); E operator [](int index) { + RangeError.checkValidIndex(index, this, "[]", _length); return unsafeCast(_data.read(index)); } @@ -51,6 +52,7 @@ abstract class _ModifiableList extends _ListBase { : super._withData(length, data); void operator []=(int index, E value) { + RangeError.checkValidIndex(index, this, "[]=", _length); _data.write(index, value); }