Strip UTF-8 BOM when require'ing .coffee modules.

Allows people to author their .coffee files with UTF-8 BOMs at the start, because sometimes that happens. Fixes #798.
This commit is contained in:
Domenic Denicola
2012-07-08 22:52:13 -04:00
parent 2a56f0cdf7
commit c9388ce767

View File

@@ -12,10 +12,13 @@ path = require 'path'
{parser} = require './parser'
vm = require 'vm'
stripBOM = (content) ->
if content.charCodeAt 0 is 0xFEFF then content.substring 1 else content
# TODO: Remove registerExtension when fully deprecated.
if require.extensions
require.extensions['.coffee'] = (module, filename) ->
content = compile fs.readFileSync(filename, 'utf8'), {filename}
content = compile stripBOM fs.readFileSync(filename, 'utf8'), {filename}
module._compile content, filename
else if require.registerExtension
require.registerExtension '.coffee', (content) -> compile content