diff --git a/src/prfl.js b/src/prfl.js index 233fa24..60ebeae 100644 --- a/src/prfl.js +++ b/src/prfl.js @@ -1,5 +1,12 @@ (function(exports) { exports.Profiler = Profiler; + exports.createObject = createObject; + + function createObject(base) { + function Constructor() {} + Constructor.prototype = base; + return new Constructor(); + } function Profiler() { this.samples = {}; diff --git a/test/construct-spec.js b/test/construct-spec.js new file mode 100644 index 0000000..e69de29 diff --git a/test/create-spec.js b/test/create-spec.js new file mode 100644 index 0000000..ddd3064 --- /dev/null +++ b/test/create-spec.js @@ -0,0 +1,11 @@ +var expect = require('expect.js'); +var createObject = require('../src/prfl.js').createObject; + +test('creates an object that inherits from a second object', function() { + function Constructor() {} + Constructor.prototype = { foo: {}, bar: function() {}}; + + expect(createObject(Constructor.prototype)).not.to.be(Constructor.prototype); + expect(createObject(Constructor.prototype).foo).to.be(Constructor.prototype.foo); + expect(createObject(Constructor.prototype).bar).to.be(Constructor.prototype.bar); +});