1
- " use strict" ;
1
+ ' use strict' ;
2
2
3
- var Module = require ( "module" ) ,
4
- fs = require ( "fs" ) ,
5
- coffee ;
3
+ var Module = require ( 'module' ) ,
4
+ fs = require ( 'fs' ) ;
6
5
7
6
// caching original wrapper
8
7
var moduleWrapper0 = Module . wrapper [ 0 ] ,
@@ -16,7 +15,6 @@ function load(targetModule) {
16
15
targetModule . require = requireProxy ;
17
16
currentModule = targetModule ;
18
17
19
- registerExtensions ( ) ;
20
18
targetModule . load ( targetModule . id ) ;
21
19
22
20
// This is only necessary if nothing has been required within the module
@@ -26,7 +24,6 @@ function load(targetModule) {
26
24
function reset ( ) {
27
25
Module . wrapper [ 0 ] = moduleWrapper0 ;
28
26
Module . wrapper [ 1 ] = moduleWrapper1 ;
29
- restoreExtensions ( ) ;
30
27
}
31
28
32
29
function inject ( prelude , appendix ) {
@@ -46,49 +43,5 @@ function requireProxy(path) {
46
43
return nodeRequire . call ( currentModule , path ) ; // node's require only works when "this" points to the module
47
44
}
48
45
49
- function registerExtensions ( ) {
50
- var originalCoffeeExtension = require . extensions [ ".coffee" ] ;
51
-
52
- if ( originalCoffeeExtension ) {
53
- originalExtensions . coffee = originalCoffeeExtension ;
54
- }
55
- require . extensions [ ".coffee" ] = coffeeExtension ;
56
- }
57
-
58
- function restoreExtensions ( ) {
59
- if ( "coffee" in originalExtensions ) {
60
- require . extensions [ ".coffee" ] = originalExtensions . coffee ;
61
- }
62
- }
63
-
64
- function coffeeExtension ( module , filename ) {
65
- var content = stripBOM ( fs . readFileSync ( filename , "utf8" ) ) ;
66
-
67
- content = coffee . compile ( content , {
68
- filename :filename ,
69
- bare :true
70
- } ) ;
71
- module . _compile ( content , filename ) ;
72
- }
73
-
74
- /**
75
- *@see https://github.com/joyent/node/blob/master/lib/module.js
76
- */
77
- function stripBOM ( content ) {
78
- // Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)
79
- // because the buffer-to-string conversion in `fs.readFileSync()`
80
- // translates it to FEFF, the UTF-16 BOM.
81
- if ( content . charCodeAt ( 0 ) === 0xFEFF ) {
82
- content = content . slice ( 1 ) ;
83
- }
84
- return content ;
85
- }
86
-
87
- try {
88
- coffee = require ( "coffee-script" ) ;
89
- } catch ( err ) {
90
- // We are not able to provide coffee-script support, but that's ok as long as the user doesn't want it.
91
- }
92
-
93
46
exports . load = load ;
94
47
exports . inject = inject ;