Обновить
21
Артур Столяр@NekR

Пользователь

4
Подписчики
Отправить сообщение
Я боюсь, что представитель уже давно в W3C и без Яндекса, по ссылке предоставленной в топике:

Last modified $Date: 2005/01/29 23:52:33 $
Ещё есть такая штука, ну так, для интереса:

Object.prototype.globalPropOrVar = 123;

alert(globalPropOrVar);

alert(({}).globalPropOrVar);
В консоли выполняется просто eval в глобальном контексте. У eval есть особенность в том, что переменные объявленные внутри него не получают флаг configurable = false и поэтому могут быть удалены. Тот код, котый исполняется между тегами исполняется нормально, внутренней функцие как например в node.js/v8 — runInContext. Это конечно трактовать как первую функцию, например в Chakra в новых ие, это выполнение и есть первая функция. Вся особенность глобального объекта в том, что ключевое слово this этой функции указывает на LexicalEnvironment этой же функции и получается так, что присвоить свойство или объявить переменную этому объекту почти одно и тоже, за исключением, алгоритмов исполнения. В общем виде псевдо код этой функции выглядит так:

function runInContext(context, code) {
  with (context) {
    (function() {
      eval.call(context, code);
    }).call(context);
  }
};

function runInStrictContext(context, code) {
  (function() {
    eval.call(context, code);
  }).call(context);
};


Конечно оно так не будет работать и это не лучший пример, однако относительно может помочь понять.
Аглоритм объявления переменных и так понятен, непонятно, что в нём вы такого интересного нашли, разве что для тех, кто только его узнал.

Но давайте разберёмся. Для глобального контекста:

1. Объявление переменных и своств не одно и тоже (Разные алгоритмы соответственно).
2. Обращение к переменным и свосвам может быть взаимо заменяемое. (С учётом правил конечно, первого пункта).

var foo;
this.bar = void 0;

alert(bar);
alert(this.foo);


3. Поведение переменной и свойста, и итоговое сохранение в контексте одинаковое (Как видно из премера с дескрипторами — никакой разницы).
4. Такое объявление:

"use strict";
foo = 1;


Это не объявление свойства глобальному объекту или какому либо ещё в прямом смысле. Это объявление верно только тогда, когда используется оператор with.

var env = {};
with (env) {
foo = 1;
}


Но так как strict mode запрещает использовать with, отключает его. Логично, что и объявление свойства глобальному контексту таким образом отключается (да именно свойства потому, что она работает по алготирму объявления свойства. Объявление переменной работает по другому алгоритму, но в итоге, это тоже свойство объекта).
Собственно мой коммент ниже для вас тоже подайдёт.
Ну конечно нет, не знаю. Но это не важно. Я всего лишь указал на то, что ваш пример неправилен, вне контекста правы ли вы в этой ситуации или нет. У вас просто там было ошибка.

Далее, по поводу спора.

    var test = 123;
    
    var pd = Object.getOwnPropertyDescriptor(this, 'test');
    
    pd.value = 321;
    
    Object.defineProperty(this, 'test2', pd);
    
    delete test;
    delete test2;
   
    console.log(test);
    console.log(test2);


Вообще, по хорошему, вы правы. Переменная это не тоже самое, что свойство. Но в частном случае глобального контектса — это тоже самое. Ну и ещё, если добавить в pd, writable = false, то получится эмуляция const.
Дык понятно, что не в консоле. А вы попробуйте в примере убрать галочку — onload — jsfiddle.net/tEvnj/1/
Ну вообще, ответ ему я и прислал, а вам пришло уведомление потому что вы автор топика.
Не батенька, в обоих случаях true.
Врятли в 13ой применят. У разработчиком точно есть план работы и всё такое. То есть текущую версию фиксят только по критичским проблемам, например безопасности. Думаю просто нужно дождаться 14ой версии.
Я думаю сразу после того, как статус станет RESOLVED, а потом VERIFIED в баге. Хотя я на самом деле не уверен. Многие баги фиксят и патчат в hg Мозилловский, но не включают в билды по некоторым причинам. Если баг посчитают актуальным, а «фичу» не эксперементальной, то видимо, постараются сразу как смогут.

Вообще, раз Nightly билдится каждую ночь по нескольку раз, видимо туда попадаются все фиксы которые уже в репозитории. Ведь это же dev сборки.
DOMPaser не должен выполнять не скрипты, не стили, не тем более HTTP запросы. Если это происходит, то это явный баг. В wiki и в спецификации указано, что он не должен этим заниматься. Если вы говорите про Blob, то в него нужно запихивать потом. Blob это грубо говоря sandbox, или файл в памяти браузера. Из этой памяти можно строить странички например, картинки или скрипты.

Только, что проверил. В стабильной Лисе работает правильно.
На счёт протестить их патч — протестить не получится естественно в автоматических сборках. Что бы протестить нужно сказать и сбилдить mozilla-central, а потом пропатчить diff из багзиллы.
Я думаю вас спасёт — DOMParser и что бы не мучались с Data:URI, лучше использовать Blob

HTML5 в конце концов :)
Точно так же можно сказать, что JavaScript писать легко. А знать тонкости всех барузеров и спецификаций, опыт со всеми возможностями HTML5 и реальный опыт построение приложений. Далеко не 70 и не 100к стоит.
Если вы сомневаетесь в этом — попробуйте написать любой доклад и прочитать его перед неизвестными вам людьми, скажем, около офиса, не вызвав усмешку хотя бы одного из них. После этого напишите в комментариях, с какого раза это получится сделать :)


Ну нормально, я выступал перед советом деректоров с АЙТИ докладом в первый месяц работы, первый раз их видел, всё нормально. Больше пренебрежения было из-за слайдов из 90ых, когда видишь такие слайды, сразу складывается, что и человек от туда и, что опыта в современных технологиях у него почти нет. Точно так же, когда докладчик сам верстает пресентацию, хоть и например на фреймвокре (так, получается, что можно верстать на JS фреймвокре ;) ) как impress.js, то тогда болучается гораздо более красачно и впечатлительно.

Просто моё мнение, не в обиды никому :)
Это всё к тому, что не работает курсор с url(). Собственно без этого и эказанной ниже функции для анимации, невозможно делать нормальные игры (да возможно, но это уже точно будет не то, что можно сделать в Хроме или Лисе).
Давайте хоть на минутку вспомним, что в опере до сих пор нельзя поменять курсор мышки, а это позвольте всё ещё CSS 2.1.

developer.mozilla.org/en/CSS/cursor
Я вижу код содержащий грубые ошибки. В таком виде он не применим в сколь-либо серьёзном проекте. А в мелких, где можно обойтись списком функций в глобальной области видимости — АОП не нужно совсем


поэтому и ошибки вы видите те, которые возникнут при применении на вашем проекте, а для моей задачи их не возникнет.


Ну и смысл от вашего коммента, если вы только, что признали безсмысленность вашего поста? Вообще, пошла такая тенденция — перенеси паттерн из другово языка и сделай вид, что знаешь JavaScript.
Это только первая ступенька. В ближайшее время планируется внедрить большее количество полезных вещей для разработки под мобильные устройства. Ниже упомянутая плотность экрана тоже планируется. В общем представьте, что к релизу 15ой Firefox у вас будет полный эмулятор моб. устройства в браузере.

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Дата рождения
Зарегистрирован
Активность