Skip to content

Commit

Permalink
perf: remove argument reassignment
Browse files Browse the repository at this point in the history
  • Loading branch information
dougwilson committed Jun 14, 2015
1 parent 54086b4 commit f0e3bf7
Show file tree
Hide file tree
Showing 7 changed files with 54 additions and 49 deletions.
1 change: 1 addition & 0 deletions HISTORY.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ unreleased
- deps: mime-types@~2.1.1
- perf: reduce try block size
- perf: remove bitwise operations
* perf: remove argument reassignment

1.12.4 / 2015-05-10
===================
Expand Down
15 changes: 8 additions & 7 deletions index.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
/*!
* body-parser
* Copyright(c) 2014 Douglas Christopher Wilson
* Copyright(c) 2014-2015 Douglas Christopher Wilson
* MIT Licensed
*/

/**
* Module dependencies.
* @private
*/

var deprecate = require('depd')('body-parser')
Expand Down Expand Up @@ -67,18 +68,18 @@ fs.readdirSync(parsersDir).forEach(function onfilename(filename) {
* @param {object} [options]
* @return {function}
* @deprecated
* @api public
* @public
*/

function bodyParser(options){
var opts = {}

options = options || {}

// exclude type option
for (var prop in options) {
if ('type' !== prop) {
opts[prop] = options[prop]
if (options) {
for (var prop in options) {
if ('type' !== prop) {
opts[prop] = options[prop]
}
}
}

Expand Down
9 changes: 6 additions & 3 deletions lib/read.js
Original file line number Diff line number Diff line change
Expand Up @@ -94,15 +94,18 @@ function read(req, res, next, parse, debug, options) {
}

// parse
var str
try {
debug('parse body')
body = typeof body !== 'string' && encoding !== null
str = typeof body !== 'string' && encoding !== null
? iconv.decode(body, encoding)
: body
req.body = parse(body)
req.body = parse(str)
} catch (err) {
if (!err.status) {
err.body = body
err.body = str === undefined
? body
: str
err.status = 400
}
return next(err)
Expand Down
20 changes: 10 additions & 10 deletions lib/types/json.js
Original file line number Diff line number Diff line change
Expand Up @@ -44,16 +44,16 @@ var firstcharRegExp = /^[\x20\x09\x0a\x0d]*(.)/
*/

function json(options) {
options = options || {}

var limit = typeof options.limit !== 'number'
? bytes.parse(options.limit || '100kb')
: options.limit
var inflate = options.inflate !== false
var reviver = options.reviver
var strict = options.strict !== false
var type = options.type || 'application/json'
var verify = options.verify || false
var opts = options || {}

var limit = typeof opts.limit !== 'number'
? bytes.parse(opts.limit || '100kb')
: opts.limit
var inflate = opts.inflate !== false
var reviver = opts.reviver
var strict = opts.strict !== false
var type = opts.type || 'application/json'
var verify = opts.verify || false

if (verify !== false && typeof verify !== 'function') {
throw new TypeError('option verify must be function')
Expand Down
16 changes: 8 additions & 8 deletions lib/types/raw.js
Original file line number Diff line number Diff line change
Expand Up @@ -28,14 +28,14 @@ module.exports = raw
*/

function raw(options) {
options = options || {};

var inflate = options.inflate !== false
var limit = typeof options.limit !== 'number'
? bytes.parse(options.limit || '100kb')
: options.limit
var type = options.type || 'application/octet-stream'
var verify = options.verify || false
var opts = options || {};

var inflate = opts.inflate !== false
var limit = typeof opts.limit !== 'number'
? bytes.parse(opts.limit || '100kb')
: opts.limit
var type = opts.type || 'application/octet-stream'
var verify = opts.verify || false

if (verify !== false && typeof verify !== 'function') {
throw new TypeError('option verify must be function')
Expand Down
18 changes: 9 additions & 9 deletions lib/types/text.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,15 +29,15 @@ module.exports = text
*/

function text(options) {
options = options || {};

var defaultCharset = options.defaultCharset || 'utf-8'
var inflate = options.inflate !== false
var limit = typeof options.limit !== 'number'
? bytes.parse(options.limit || '100kb')
: options.limit
var type = options.type || 'text/plain'
var verify = options.verify || false
var opts = options || {}

var defaultCharset = opts.defaultCharset || 'utf-8'
var inflate = opts.inflate !== false
var limit = typeof opts.limit !== 'number'
? bytes.parse(opts.limit || '100kb')
: opts.limit
var type = opts.type || 'text/plain'
var verify = opts.verify || false

if (verify !== false && typeof verify !== 'function') {
throw new TypeError('option verify must be function')
Expand Down
24 changes: 12 additions & 12 deletions lib/types/urlencoded.js
Original file line number Diff line number Diff line change
Expand Up @@ -36,30 +36,30 @@ var parsers = Object.create(null)
* @api public
*/

function urlencoded(options){
options = options || {};
function urlencoded(options) {
var opts = options || {}

// notice because option default will flip in next major
if (options.extended === undefined) {
if (opts.extended === undefined) {
deprecate('undefined extended: provide extended option')
}

var extended = options.extended !== false
var inflate = options.inflate !== false
var limit = typeof options.limit !== 'number'
? bytes.parse(options.limit || '100kb')
: options.limit
var type = options.type || 'application/x-www-form-urlencoded'
var verify = options.verify || false
var extended = opts.extended !== false
var inflate = opts.inflate !== false
var limit = typeof opts.limit !== 'number'
? bytes.parse(opts.limit || '100kb')
: opts.limit
var type = opts.type || 'application/x-www-form-urlencoded'
var verify = opts.verify || false

if (verify !== false && typeof verify !== 'function') {
throw new TypeError('option verify must be function')
}

// create the appropriate query parser
var queryparse = extended
? extendedparser(options)
: simpleparser(options)
? extendedparser(opts)
: simpleparser(opts)

// create the appropriate type checking function
var shouldParse = typeof type !== 'function'
Expand Down

0 comments on commit f0e3bf7

Please sign in to comment.