google/closure-compiler

Array constructor with length is not eliminated

オープン

#4,046 opened on 2023/01/22

 (12 件のコメント) (0 件のリアクション) (0 人の担当者)Java (1,197 件のフォーク)batch import
P4featgood first issuehelp wanted

Repository metrics

Stars
 (7,176 個のスター)
PR merge metrics
 (PR metrics pending)

説明

Consider the code:

/** @const {!Array<number>} */
const a = [1];

/** @const {!Array<number>} */
const b = Array(10);
b[0] = 2;

/** @const {!Array<number>} */
const c = [];
c.push(3);

/** @const {!Array<number>} */
const d = Array(10);
d.push(4);

When compiled with

yarn google-closure-compiler -O ADVANCED --js a.js --rewrite_polyfills=false 

we get

Array(10)[0]=2;Array(10).push(4);

Arrays created with the Array(len) constructor are not eliminated.

google-closure-compiler version: v20230103

コントリビューターガイド