From c9388ce767278ec968a5a8ee8874a9b624d0b749 Mon Sep 17 00:00:00 2001 From: Domenic Denicola Date: Sun, 8 Jul 2012 22:52:13 -0400 Subject: [PATCH] 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. --- src/coffee-script.coffee | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/coffee-script.coffee b/src/coffee-script.coffee index 2933aebf..fbba55bf 100644 --- a/src/coffee-script.coffee +++ b/src/coffee-script.coffee @@ -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