Test WorkerLocation properties.

WorkerLocation: function WorkerLocation() { [native code] }
typeof location: object
location: file:<...>/fast/workers/resources/worker-common.js
location.href: file:<...>/fast/workers/resources/worker-common.js
location.href === location.toString(): true
location.protocol: file:
location.host: 
location.hostname: 
location.port: 
location.pathname: <...>/fast/workers/resources/worker-common.js
location.search: 
location.hash: 
location.origin: file://
Object.getOwnPropertyDescriptor(location.__proto__, 'toString').writable === true: true
Object.getOwnPropertyDescriptor(location.__proto__, 'toString').enumerable === true: true
Object.getOwnPropertyDescriptor(location.__proto__, 'toString').configurable === true: true
DONE

