Конечно, это ошибка.
В качестве обходного пути, Array.from()
работает идентично, за исключением того, что не глючит.
> s="\uD83C\uDF1F\u5FCD\u8005\u306E\u653B\u6483\uD83C\uDF1F"
> [...s]
(9) ["?", "忍", "者", "の", "攻", "撃", "?", hole, hole]
> Array.from(s)
(7) ["?", "忍", "者", "の", "攻", "撃", "?"]
Похоже, исправление в Chrome 72,но вы можете открыть ошибку в Chromium и попросить объединить ее с 71.
Исправление и контрольный пример приведены здесь: https://crrev.com/902d21dd661033427b56d5f93c12b12339bf55ab
(я полагаю, что "дыра" - это V8 говоритВы что какой-то нативный код испортил и не смог правильно инициализировать массив, в отличие от «пустого», который может быть создан обычным javascript.)
Да, V8 определенно запутался:
> a=[...'\u{1f4a9}']
(2) ["?", hole]
> hole=a[1]
undefined
> hole
VM384:1 Uncaught ReferenceError: hole is not defined