TypeError: Попытка назначить свойство readonly. на iOS8 Safari
Привет эта страница на моем сайте отлично работает на настольном браузере, но имеет странную ошибку в Safari iOS8:
Шаблон индекса не отображается, и в консоли появляется ошибка:
TypeError: Попытка назначить свойство readonly.
и указывает на следующую строку:
}), e("rsvp/promise/all", ["../utils", "exports"], function(e, t) {
"use strict";
var r = e.isArray, n = e.isNonThenable;
t["default"] = function(e, t) {
var i = this;
return new i(function(t, a) {
function o(e) {
return function(r) {
c[e] = r, 0===--u && t(c)
}
}
function s(e) {
u = 0, a(e)
}
if (!r(e))
throw new TypeError("You must pass an array to all.");
var l, u = e.length, c = new Array(u);
if (0 === u) // This is the line with error
return void t(c);
for (var h = 0; h < e.length; h++)
l = e[h], n(l) ? (c[h] = l, 0===--u && t(c)) : i.cast(l).then(o(h), s)
}, t)
}
}), e("rsvp/promise/cast", ["exports"], function(e) {
"use strict";
Является ли это известной ошибкой для мобильного сафари, есть ли это исправление?
Ответы
Ответ 1
Поддерживающий RSVP здесь, извините, что вы столкнулись с этой проблемой.
Во-первых, похоже, вы используете более старую версию RSVP. Я бы рекомендовал обновить.
К сожалению, эта проблема может быть связана с https://github.com/emberjs/ember.js/pull/5629, которая, по-видимому, заключается в том, что АО для не-64-разрядных устройств под управлением iOS 8 просто сломано, используйте строгий режим. В моих наблюдениях это происходит только в определенных ситуациях, а затем только тогда, когда этот код стал оптимизирован.
Снова я не уверен, что обновление поможет вам, но вы должны это учитывать независимо. Кроме того, если проблема остается, удаление всех операторов use strict
может быть лучшим вариантом.
Если вскоре не появится какое-либо решение, я, скорее всего, опубликую обновление для RSVP с удалением строгих утверждений.
Ответ 2
Вы пытались удалить все "use strict";
из своего кода? По моему мнению, это похоже только на 3 поколения iPad.