From a6427a269c3500b0096e1f8a7c1a2c2ae90ee8d6 Mon Sep 17 00:00:00 2001 From: George Mamadashvili Date: Thu, 6 Feb 2025 12:12:39 +0400 Subject: [PATCH] Exclude Iterator helpers from polyfills --- .../polyfill-exclusions.js | 5 +++ phpunit/script-dependencies-test.php | 45 +++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 phpunit/script-dependencies-test.php diff --git a/packages/babel-preset-default/polyfill-exclusions.js b/packages/babel-preset-default/polyfill-exclusions.js index ca8c045d124146..9d0d18737540cb 100644 --- a/packages/babel-preset-default/polyfill-exclusions.js +++ b/packages/babel-preset-default/polyfill-exclusions.js @@ -28,4 +28,9 @@ module.exports = [ // // @see https://github.com/WordPress/gutenberg/pull/67230 /^es(next)?\.set\./, + // Remove Iterator feature polyfills. + // For the same reasoning as for Set exlusion above, we're excluding all iterator helper polyfills. + // + // @see https://github.com/WordPress/wordpress-develop/pull/8224#issuecomment-2636390007. + /^es(next)?\.iterator\./, ]; diff --git a/phpunit/script-dependencies-test.php b/phpunit/script-dependencies-test.php new file mode 100644 index 00000000000000..199fcd200aa311 --- /dev/null +++ b/phpunit/script-dependencies-test.php @@ -0,0 +1,45 @@ +registered; + $dependents = array(); + + // Iterate over all registered scripts, finding dependents of the `wp-polyfill` script. + // Based on private `WP_Scripts::get_dependents` method. + foreach ( $registered_scripts as $registered_handle => $args ) { + if ( in_array( 'wp-polyfill', $args->deps, true ) ) { + $dependents[] = $registered_handle; + } + } + + // This list should get smaller over time as we remove `wp-polyfill` dependencies. + // If list update intentionally, please add a comment explaining why. + $expected = array( + 'react', + 'wp-blob', + 'wp-block-editor', + 'wp-block-library', + 'wp-blocks', + 'wp-edit-site', + 'wp-core-data', + 'wp-editor', + 'wp-router', + 'wp-url', + 'wp-widgets', + 'wp-upload-media', + ); + + sort( $expected, SORT_STRING ); + sort( $dependents, SORT_STRING ); + + $this->assertSame( $expected, $dependents ); + } +}