diff options
| author | Vojta Jina | 2012-02-08 16:12:11 -0800 |
|---|---|---|
| committer | Vojta Jina | 2012-02-08 16:12:11 -0800 |
| commit | 776739299b698a965ef818eeda75d4eddd10c491 (patch) | |
| tree | efe64f6d01850b16c67bb1460a044925ac99a605 /src/Injector.js | |
| parent | 3173d8603db4ae1c2373e13a7a490988126bb1e7 (diff) | |
| download | angular.js-776739299b698a965ef818eeda75d4eddd10c491.tar.bz2 | |
fix($injector): instantiate returns instance, if non-object value returned from constructor
Diffstat (limited to 'src/Injector.js')
| -rw-r--r-- | src/Injector.js | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/Injector.js b/src/Injector.js index 94154bec..f5e35d0f 100644 --- a/src/Injector.js +++ b/src/Injector.js @@ -429,12 +429,15 @@ function createInjector(modulesToLoad) { } } - function instantiate(Type, locals){ - var Constructor = function(){}, - instance; + function instantiate(Type, locals) { + var Constructor = function() {}, + instance, returnedValue; + Constructor.prototype = Type.prototype; instance = new Constructor(); - return invoke(Type, instance, locals) || instance; + returnedValue = invoke(Type, instance, locals); + + return isObject(returnedValue) ? returnedValue : instance; } return { |
