Previous Entry Share Next Entry
2016-01

javascript madness

я даже не ожидал, что тест сюита JS парсера из Google ES-LAB целиком проходит на JScript унутре Windows Scripting Host! (причем парсер откомпилен из OMeta там же)

единственное серьезное неудобство – отсутствие eval-in-global-scope. может, подскажет кто, как это делается? без него функция “include” выглядит очень уж криво.


  • 1
mr_aleph December 8th, 2010
>> отсутствие eval-in-global-scope. без него функция “include” выглядит очень уж криво.

eval = зло. нет его и слава богу!


wizzard0 December 8th, 2010
ОК, сделай мне без эвала инклюд? я ж не против

mr_aleph December 8th, 2010
инклюд c загрезнением глобального контекста это же тоже зло!

в крайнем случае рисуешь что-нибудь типа:
function evil_include(filename) {
  var module = include(filename);
  for (var p in module) this[p] = module[p];
}

wizzard0 December 8th, 2010
Ага, и получаем БДЫЩЬ, ибо в файле у нас было Program, а мы его пытаемся трактовать как Expression.

На самом деле, и эвал-в-текущем-контексте, и твой код совершенно нормально и предсказуемо работают, если писать код самому. А я пытаюсь запускать тест-сюиту ES-LAB, которая использует некий load("filename.js"), эквивалентный как раз "eval-in-global-scope", и сует в контексты всякий странный мусор.

А v8-shell и PyV8 у меня собрать под 2010 студией пока не удается, rhino качать тоже лень, посему страдаю такой вот фигней.

wizzard0 December 9th, 2010
Нет, там нету execScript.

  • 1
?

Log in

No account? Create an account