остановить выполнение JavaScript - PullRequest
2 голосов
/ 18 апреля 2010

Когда я запускаю файл сценария javascript в среде командной строки Windows, и после моего кода появляется свободный текст. Как я могу остановить интерпретатор JavaScript, чтобы столкнуться с ним? Например:

var fso = new ActiveXObject("Scripting.FileSystemObject");
delete fso;
exit(); // some kind of WORKING exit command
Hungry lazy frog ate a big brown fox.

Ответы [ 3 ]

2 голосов
/ 18 апреля 2010

Если вы заключите это в кавычки, оно будет интерпретировано / скомпилировано, но не будет иметь никакого эффекта, например

var fso = new ActiveXObject("Scripting.FileSystemObject");
delete fso;
exit(); // some kind of WORKING exit command
"Hungry lazy frog ate a big brown fox.";
2 голосов
/ 18 апреля 2010

Вы ничего не можете сделать, чтобы остановить интерпретатор до того, как компилятор увидит определенную строку, потому что весь исходный файл Javascript сначала компилируется в байт-код, и именно байт-код интерпретируется не как ваш исходный код.

То, что вы могли бы сделать (хотя это все равно было бы грязно), было бы поместить некоторый свободный текст в комментарий в конце файла. Затем вы можете открыть исходный файл и прочитать его из остальной части кода. Это по-прежнему не может быть полностью свободным текстом, хотя это должен быть правильный комментарий

/*
 whatever text you want provided it doesn't contain * followed immediately by /
 */

Гораздо лучше просто признать поражение и сохранить все нужные данные в отдельном файле.

1 голос
/ 18 апреля 2010

Даже если вы выйдете из системы, у вас все равно будет проблема, потому что перед выполнением первой инструкции необходимо проанализировать весь блок скрипта. С любым поддельным содержимым, следующим за инструкцией выхода, скрипт вообще не сможет выполнить синтаксический анализ, даже если этот код никогда не будет достигнут.

Если бы свободный текст был одной строкой, вы могли бы уйти с трейлингом //. Не работает для многострочных комментариев, так как вам потребуется закрытие */. То же самое для условных комментариев, требующих /*@end @*/.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...