url: throw for invalid values to url.format
authorChristian Tellnes <christian@tellnes.no>
Tue, 3 Mar 2015 03:41:07 +0000 (04:41 +0100)
committerChristian Tellnes <christian@tellnes.no>
Wed, 4 Mar 2015 21:04:14 +0000 (22:04 +0100)
commitabb00cc915b2e336afb73210298f673a00dad9f0
treea89fe2eee726d2cf6068caa9cf2787121d3288c6
parent31142415de7603cacb1bdc45d4ea6348f2a19313
url: throw for invalid values to url.format

`'use strict'` changes the behavior for `Function.prototype.call` when
the context is `undefined`. In earlier versions of node the value
`undefined` would make `url.format` look for fields in the global scope.

The docs states that `url.format` takes a parsed URL object and returns
a formatted URL string. So with this change it will now throw for other
values.

The exception is if the input is a string. Then it will call `url.parse`
on the string and then format it. The reason for that is that you can
call `url.format` on strings to clean up potentially wonky urls.

Fixes: https://github.com/iojs/io.js/issues/1033
PR-URL: https://github.com/iojs/io.js/pull/1036
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
Reviewed-By: Brian White <mscdex@mscdex.net>
Reviewed-By: Julian Duque <julianduquej@gmail.com>
lib/url.js
test/parallel/test-url.js