У меня странная потребность здесь, и я не уверен в ее целесообразности. Я могу думать только о том, как бы это сделать, используя потоки (чтобы создать другой поток, который выполняет функцию Quine рядом с потоком, выполняющим сценарий, который я хочу Quine и выполняю одновременно (без добавления оповещений везде !!!), но JavaScript не имеет такой функциональности, верно?
У меня есть некоторый JavaScript, который интерпретируется приложением с минимальной собственной возможностью отладки JavaScript. Мой сценарий падает, и поскольку он также использует некоторые операторы, понятные только этому приложению, я не могу отладить его в Firefox или Internet Explorer, потому что они не могут обрабатывать эти пользовательские операторы. Надеюсь, я смогу достичь программы, которая может имитировать другую программу, но также выполнять свои собственные функции.
В качестве аргумента скажем, у меня есть скрипт с именем hello.js, который выводит "Hello World!" 100 раз, и когда оно предоставляется приложению, оно интерпретирует это, но в какой-то момент падает, но я не могу сказать, почему, где и когда из-за ограниченной возможности отладки.
function main(){
for(var i=0; i<100; i++){
alert('Hello World!\n');
}
}
Затем я хочу иметь сценарий, который вместо этого я могу передать приложению, который будет выдавать себя за сценарий выше, но также будет предупреждать перед выполнением каждого оператора. Я мог бы просто сделать это:
function main(){
alert('main()')
for(var i=0; i<100; i++){
alert("alert('Hello World!\n');");
alert('Hello World!\n');
}
}
Однако я уверен, что вы понимаете, как для длинной программы это будет трудной задачей. Вместо этого я хочу создать программу, которая может работать так:
function main(){
var text = loadJSScript("C:\\Script\\Hello.js"); //Loads a text/javascript file line by line into an array
for(var i=0; i<text.length; i++){
var statement = text[i];
alert("Line Number: " + i + " Statement: " + statement); //Output the line number and statement before executing
execute(statement); //A function that executes the statement from the other file (as if a separate thread)
}
}