fix(loader): don't rely on internal APIs

This significantly increases the size of the loader:
- minified: 1031bytes -> 1509bytes (+46%)
- minified + gzip: 593bytes -> 810bytes (+36%)

I'm not entirely sold on the idea of shipping minErr with the loade. With the current state, the angular-loader behavior is completely broken - this is just a quick fix, we can revisit this change in the future.


Closes #4437
Closes #4874
This commit is contained in:
Vojta Jina 2013-11-14 14:37:53 -08:00
parent 94764ee089
commit 8425e9fe38
4 changed files with 11 additions and 2 deletions

1
angularFiles.js vendored
View file

@ -66,6 +66,7 @@ angularFiles = {
],
'angularLoader': [
'src/minErr.js',
'src/loader.js'
],

View file

@ -11,6 +11,7 @@
function setupModuleLoader(window) {
var $injectorMinErr = minErr('$injector');
var ngMinErr = minErr('ng');
function ensure(obj, name, factory) {
return obj[name] || (obj[name] = factory());
@ -71,6 +72,12 @@ function setupModuleLoader(window) {
* @returns {module} new module with the {@link angular.Module} api.
*/
return function module(name, requires, configFn) {
var assertNotHasOwnProperty = function(name, context) {
if (name === 'hasOwnProperty') {
throw ngMinErr('badname', 'hasOwnProperty is not a valid {0} name', context);
}
};
assertNotHasOwnProperty(name, 'module');
if (requires && modules.hasOwnProperty(name)) {
modules[name] = null;

View file

@ -4,4 +4,4 @@
* License: MIT
*/
'use strict';
(
(function() {

View file

@ -1,4 +1,5 @@
)(window);
setupModuleLoader(window);
})(window);
/**
* Closure compiler type information