Этот сайт переопределяет ошибки Array.from () в Magento с использованием prototypejs - PullRequest
0 голосов
/ 17 октября 2019

Magento 1 использует prototypejs, эта библиотека переопределяет Array.form строку 1081 в своей версии 1.7:

Array.from = $A;

Это приводит к следующей ошибке JavaScript в консоли:

Этосайт переопределяет Array.from () с реализацией, которая не поддерживает итерации, что может привести к некорректной работе JavaScript API Google Карт v3.

Редактирование этой базовой библиотеки не представляется разумным, как это сделать? Разработчики Magento справляются с этим конфликтом?

Ответы [ 2 ]

1 голос
/ 05 ноября 2019

О подобной проблеме сообщалось в нашем Public Issue Tracker , и она уже была устранена нашей инженерной командой. Согласно последнему комментарию:

Мы только что представили обновление для этого. Теперь эта проверка более явная и будет охватывать ваш вариант использования: Array.from (новый Set ([42])) [0]! == 42 ... warn

Это будет доступно в следующем еженедельникеrelease

Public Issue Tracker - это инструмент, который используется в Google для отслеживания ошибок и запросов функций во время разработки продукта. Он доступен за пределами Google для использования внешними публичными пользователями и пользователями-партнерами, которым необходимо сотрудничать с командами Google по конкретным проектам. Вы можете узнать больше здесь https://developers.google.com/issue-tracker/.

0 голосов
/ 18 октября 2019

Я думаю, что нашел решение. Замените строку array.from ($ A) на это:

function isIterable(obj) {
  // checks for null and undefined
  if (obj == null) {
    return false;
  }
  return typeof obj[Symbol.iterator] === 'function';
}
if (isIterable($A)) {
  Array.from = $A;
}
...