Skip to content

Commit db00ed0

Browse files
committed
Create an App-scoped ADSAFE instance.
1 parent c57379c commit db00ed0

File tree

1 file changed

+16
-7
lines changed

1 file changed

+16
-7
lines changed

JSLint.coffee

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,13 @@ ctx = vm.createContext()
77
vm.runInContext fs.readFileSync(__dirname + "/jslint.js"), ctx
88
JSLINT = ctx.JSLINT
99

10-
script = fs.readFileSync process.argv[2], 'utf8'
10+
try
11+
if process.argv.length < 3
12+
throw new Error "No file specified"
13+
script = fs.readFileSync process.argv[2], 'utf8'
14+
catch e
15+
console.log "File could not be read"
16+
process.exit 1
1117

1218
details = null
1319
re = /\/\*\!(?:FLO|P)IM_PLUGIN([\s\S]+)\*\//
@@ -18,8 +24,8 @@ script = script.replace re, (header) ->
1824
details = JSON.parse matches[1]
1925
return ""
2026
unless details?
27+
console.error "There are no details!"
2128
process.exit 1
22-
console.log details
2329

2430
globals = ['document','twttr']
2531
if details.access? and Array.isArray details.access
@@ -197,11 +203,9 @@ walk = (ast) ->
197203
]
198204
else if type is 'string'
199205
ast[1] = ast[1].replace(/\<\//g,"<\\/")
200-
console.log "STRING: #{ast[1]}"
201206
else
202207
console.error "Unknown type: '#{type}'"
203208
console.log util.inspect ast, false, null, true
204-
process.exit 1
205209
return ast
206210
ast = parser.parse script
207211
console.log util.inspect ast, false, null, true
@@ -212,17 +216,22 @@ ast = uglify.ast_mangle ast, {
212216
defines: {'this':['name', "null"]}
213217
}
214218
#ast = uglify.ast_squeeze ast
215-
script = uglify.gen_code ast, beautify: true, indent_start:2, indent_level:2, quote_keys: true
219+
script = uglify.gen_code ast, beautify: true, indent_start:8, indent_level:2, quote_keys: true
216220
console.log script
217221

218222
script = script.replace /(\n|^)\/\/.*(\n|$)/g, "$2"
219223
adsafeId = "APPAAAAFF_"
220-
script = "<div id=\"#{adsafeId}\"><script>ADSAFE.go(\"#{adsafeId}\", function (dom, lib) {\n\"use strict\";\n#{script}});</script></div>"
224+
script = "<div id=\"#{adsafeId}\">\n <script>\n ADSAFE.go(\"#{adsafeId}\", function (dom, lib) {\n \"use strict\";\n#{script}}\n );\n </script>\n</div>"
221225
ok = JSLINT script, {
222226
adsafe: true, fragment: true, predef: globals, browser: true, safe: true, bitwise: true, continue: true, eqeq: true, es5: true, evil: false, forin: true, newcap: true, nomen: true, plusplus: true, regexp: true, undef: true, unparam: true, sloppy: true, stupid: true, sub: true, vars: true, white: true, css: true
223227
}, {
224228
plugin: false
225229
}
226230
unless ok
231+
console.error "FAIL"
227232
result = JSLINT.data()
228-
console.dir result
233+
console.log util.inspect result, false, 3, true
234+
else
235+
script = script.replace "<script>","<script>\n (function(){\n var ADSAFE = new ADSAFE_APP(\"#{adsafeId}\",#{JSON.stringify(details)});"
236+
script = script.replace "</script>"," }());\n </script>"
237+
console.log script

0 commit comments

Comments
 (0)