Баг QtScript.
Разбираюсь я тут с QtScript. В 4.4 появился замечательный класс QScriptClass. Он позволяет создавать весьма динамические JavaScript объекты. Вобщем как заработает полностью, так обязательно подробно напишу, а пока меня заторозил неприятный баг (надеюсь что не фича).
Вобщем класс создайтся и отлично работает, но если попытаться использовать такой класс в качестве прототипа, то проявляются 2 неприятных момента. Проиллюстрирую на примере немного модифицированного examples/script/customclass (что исключит влияние моих оч.умелых ручек)
function ByteArraySub(n) {
ByteArray.call(this, n);
}
ByteArraySub.prototype = new ByteArray();
ba = new ByteArraySub(4);
print(ba instanceof Object);
print(ba instanceof ByteArray); //!! тут мы увидим на экране false!!!
print(ba instanceof ByteArraySub);
print(ba.length);
ba[1] = 123;
print(ba[1]);
ba[7] = 224;
print(ba.length);
result = '';
for (var p in ba) {
if (result.length > 0)
result += ', ';
result += '(' + p + ',' + ba[p] + ')';
}
print(result);
ba.toBase64(); //!! А вот тут мы вообще падаем в корку.
print(b64.toLatin1String());
ba.valueOf();
ba.chop(2);
ba.length;
Баг тролям отправил, так что ждёмс подтверждения.
Вобщем класс создайтся и отлично работает, но если попытаться использовать такой класс в качестве прототипа, то проявляются 2 неприятных момента. Проиллюстрирую на примере немного модифицированного examples/script/customclass (что исключит влияние моих оч.умелых ручек)
function ByteArraySub(n) {
ByteArray.call(this, n);
}
ByteArraySub.prototype = new ByteArray();
ba = new ByteArraySub(4);
print(ba instanceof Object);
print(ba instanceof ByteArray); //!! тут мы увидим на экране false!!!
print(ba instanceof ByteArraySub);
print(ba.length);
ba[1] = 123;
print(ba[1]);
ba[7] = 224;
print(ba.length);
result = '';
for (var p in ba) {
if (result.length > 0)
result += ', ';
result += '(' + p + ',' + ba[p] + ')';
}
print(result);
ba.toBase64(); //!! А вот тут мы вообще падаем в корку.
print(b64.toLatin1String());
ba.valueOf();
ba.chop(2);
ba.length;
Баг тролям отправил, так что ждёмс подтверждения.
Комментарии: 0:
Отправить комментарий
Подпишитесь на каналы Комментарии к сообщению [Atom]
<< Главная страница