diff --git a/lib/fs.js b/lib/fs.js index a6449858f84..1e081c87939 100644 --- a/lib/fs.js +++ b/lib/fs.js @@ -140,8 +140,11 @@ fs.closeSync = function (fd) { return binding.close(fd); }; -fs.open = function (path, flags, mode, callback) { - if (mode === undefined) { mode = 0666; } +fs.open = function (path, flags, mode_, callback) { + var mode = (typeof(mode_) == 'number' ? mode_ : 0666); + var callback_ = arguments[arguments.length - 1]; + var callback = (typeof(callback_) == 'function' ? callback_ : null); + binding.open(path, stringToFlags(flags), mode, callback || noop); };