@@ -9,6 +9,7 @@ let varify = require("./varify")
99
1010let file = process . argv [ 2 ]
1111let chapNum = Number ( file . match ( / ^ \d * / ) [ 0 ] )
12+ let doRun = ! [ 10 , 11 , 20 , 21 ] . includes ( chapNum )
1213let input = fs . readFileSync ( file , "utf8" )
1314
1415let baseCode = "let alert = function() {}, prompt = function() { return 'x' }, confirm = function() { return true }; window = this; requestAnimationFrame = setTimeout = clearTimeout = setInterval = clearInterval = Math.min; let localStorage = {setItem: function(a, b) { this[a] = b;}, getItem: function(a) { return this[a] || null }, removeItem: function(a) { delete this[a] }};\n"
@@ -89,11 +90,11 @@ while (m = re.exec(input)) {
8990function stripHTML ( code ) {
9091 let included = "" , script = ""
9192 code = code . replace ( / < s c r i p t \b [ ^ > ] * ?(?: \b s r c \s * = \s * ( ' [ ^ ' ] + ' | " [ ^ " ] + " | [ ^ \s > ] + ) [ ^ > ] * ) ? > ( [ \s \S ] * ?) < \/ s c r i p t > / , function ( m , src , content ) {
92- if ( src ) {
93+ if ( ! src ) {
94+ script += content
95+ } else if ( doRun ) {
9396 if ( / [ " ' ] / . test ( src . charAt ( 0 ) ) ) src = src . slice ( 1 , src . length - 1 )
9497 included += fs . readFileSync ( "html/" + src , "utf8" )
95- } else {
96- script += content
9798 }
9899 return ""
99100 } )
@@ -242,7 +243,7 @@ function nextSandbox() {
242243 if ( i == boxes . length ) return
243244 let sandbox = boxes [ i ]
244245 i ++
245- if ( chapNum < 12 || chapNum >= 20 ) { // Language-only
246+ if ( chapNum < 13 || chapNum >= 20 ) { // Language-only
246247 try {
247248 ; ( new Function ( "console, require, module" , baseCode + sandbox . code ) ) ( _console , chapNum >= 20 && fakeRequire , { } )
248249 nextSandbox ( )
@@ -269,4 +270,4 @@ function nextSandbox() {
269270 } )
270271 }
271272}
272- if ( chapNum != 11 ) nextSandbox ( )
273+ if ( doRun ) nextSandbox ( )
0 commit comments