diff options
| author | Igor Minar | 2011-03-26 16:06:38 -0700 |
|---|---|---|
| committer | Igor Minar | 2011-03-26 23:19:04 -0700 |
| commit | 1e59822df7366094dbf38b0c4ce0cc979258ad19 (patch) | |
| tree | f171a959e390bda54988369eb634dfd5dc73e30a /src | |
| parent | d95a6925cdb5e8009b11fe3ce6dcc8d579bb4234 (diff) | |
| download | angular.js-1e59822df7366094dbf38b0c4ce0cc979258ad19.tar.bz2 | |
remove _null and _undefined
they have no significant effect on minified and gziped size. in fact
they make things worse.
file | before | after removal
----------------------------------------
concat | 325415 | 325297
min | 62070 | 62161
min + gzip | 25187 | 25176
The bottom line is that we are getting 0.05% decrease in size after
gzip without all of the hassle of using underscores everywhere.
Diffstat (limited to 'src')
| -rw-r--r-- | src/Angular.js | 6 | ||||
| -rw-r--r-- | src/Browser.js | 4 | ||||
| -rw-r--r-- | src/Compiler.js | 2 | ||||
| -rw-r--r-- | src/JSON.js | 6 | ||||
| -rw-r--r-- | src/Resource.js | 2 | ||||
| -rw-r--r-- | src/Scope.js | 2 | ||||
| -rw-r--r-- | src/apis.js | 2 | ||||
| -rw-r--r-- | src/directives.js | 8 | ||||
| -rw-r--r-- | src/formatters.js | 6 | ||||
| -rw-r--r-- | src/jqLite.js | 2 | ||||
| -rw-r--r-- | src/markups.js | 4 | ||||
| -rw-r--r-- | src/parser.js | 4 | ||||
| -rw-r--r-- | src/service/cookies.js | 2 | ||||
| -rw-r--r-- | src/service/hover.js | 2 | ||||
| -rw-r--r-- | src/service/location.js | 4 | ||||
| -rw-r--r-- | src/service/route.js | 6 | ||||
| -rw-r--r-- | src/service/xhr.bulk.js | 2 | ||||
| -rw-r--r-- | src/service/xhr.cache.js | 2 | ||||
| -rw-r--r-- | src/service/xhr.js | 2 | ||||
| -rw-r--r-- | src/validators.js | 20 | ||||
| -rw-r--r-- | src/widgets.js | 16 |
21 files changed, 51 insertions, 53 deletions
diff --git a/src/Angular.js b/src/Angular.js index a91bf04c..b2949646 100644 --- a/src/Angular.js +++ b/src/Angular.js @@ -52,9 +52,7 @@ if ('i' !== 'I'.toLowerCase()) { function fromCharCode(code) { return String.fromCharCode(code); } -var _undefined = undefined, - _null = null, - $$element = '$element', +var $$element = '$element', $$update = '$update', $$scope = '$scope', $$validate = '$validate', @@ -315,7 +313,7 @@ function isDefined(value){ return typeof value != $undefined; } * @param {*} value Reference to check. * @returns {boolean} True if `value` is an `Object` but not `null`. */ -function isObject(value){ return value!=_null && typeof value == $object;} +function isObject(value){ return value!=null && typeof value == $object;} /** diff --git a/src/Browser.js b/src/Browser.js index e51df16c..55439762 100644 --- a/src/Browser.js +++ b/src/Browser.js @@ -95,7 +95,7 @@ function Browser(window, document, body, XHR, $log) { var script = jqLite('<script>') .attr({type: 'text/javascript', src: url.replace('JSON_CALLBACK', callbackId)}); window[callbackId] = function(data){ - window[callbackId] = _undefined; + window[callbackId] = undefined; script.remove(); completeOutstandingRequest(callback, 200, data); }; @@ -290,7 +290,7 @@ function Browser(window, document, body, XHR, $log) { var cookieLength, cookieArray, cookie, i, keyValue, index; if (name) { - if (value === _undefined) { + if (value === undefined) { rawDocument.cookie = escape(name) + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT"; } else { if (isString(value)) { diff --git a/src/Compiler.js b/src/Compiler.js index 09857ea4..a03d24c4 100644 --- a/src/Compiler.js +++ b/src/Compiler.js @@ -330,7 +330,7 @@ Compiler.prototype = { template.addChild(i, self.templatize(child, i, priority)); }); } - return template.empty() ? _null : template; + return template.empty() ? null : template; } }; diff --git a/src/JSON.js b/src/JSON.js index 52d5a763..5e13dc45 100644 --- a/src/JSON.js +++ b/src/JSON.js @@ -15,7 +15,7 @@ var array = [].constructor; */ function toJson(obj, pretty) { var buf = []; - toJsonArray(buf, obj, pretty ? "\n " : _null, []); + toJsonArray(buf, obj, pretty ? "\n " : null, []); return buf.join(''); } @@ -87,7 +87,7 @@ function toJsonArray(buf, obj, pretty, stack) { } stack.push(obj); } - if (obj === _null) { + if (obj === null) { buf.push($null); } else if (obj instanceof RegExp) { buf.push(angular['String']['quoteUnicode'](obj.toString())); @@ -128,7 +128,7 @@ function toJsonArray(buf, obj, pretty, stack) { var childPretty = pretty ? pretty + " " : false; var keys = []; for(var k in obj) { - if (obj[k] === _undefined) + if (obj[k] === undefined) continue; keys.push(k); } diff --git a/src/Resource.js b/src/Resource.js index f748fb5a..341193fa 100644 --- a/src/Resource.js +++ b/src/Resource.js @@ -128,7 +128,7 @@ ResourceFactory.prototype = { default: throw "Expected between 1-2 arguments [params, callback], got " + arguments.length + " arguments."; } - var data = isPostOrPut ? this : _undefined; + var data = isPostOrPut ? this : undefined; Resource[name].call(this, params, data, callback); }; }); diff --git a/src/Scope.js b/src/Scope.js index 7d802a51..c5612c9f 100644 --- a/src/Scope.js +++ b/src/Scope.js @@ -15,7 +15,7 @@ function getter(instance, path, unboundFn) { if (isUndefined(instance) && key.charAt(0) == '$') { var type = angular['Global']['typeOf'](lastInstance); type = angular[type.charAt(0).toUpperCase()+type.substring(1)]; - var fn = type ? type[[key.substring(1)]] : _undefined; + var fn = type ? type[[key.substring(1)]] : undefined; if (fn) { instance = bind(lastInstance, fn, lastInstance); return instance; diff --git a/src/apis.js b/src/apis.js index 1ca33208..9311c620 100644 --- a/src/apis.js +++ b/src/apis.js @@ -1,6 +1,6 @@ var angularGlobal = { 'typeOf':function(obj){ - if (obj === _null) return $null; + if (obj === null) return $null; var type = typeof obj; if (type == $object) { if (obj instanceof Array) return $array; diff --git a/src/directives.js b/src/directives.js index 5e611571..32860a1e 100644 --- a/src/directives.js +++ b/src/directives.js @@ -202,7 +202,7 @@ angularDirective("ng:bind", function(expression, element){ var lastValue = noop, lastError = noop; this.$onEval(function() { var error, value, html, isHtml, isDomElement, - oldElement = this.hasOwnProperty($$element) ? this.$element : _undefined; + oldElement = this.hasOwnProperty($$element) ? this.$element : undefined; this.$element = element; value = this.$tryEval(expression, function(e){ error = formatError(e); @@ -229,7 +229,7 @@ angularDirective("ng:bind", function(expression, element){ element.html(''); element.append(value); } else { - element.text(value == _undefined ? '' : value); + element.text(value == undefined ? '' : value); } } }, element); @@ -257,7 +257,7 @@ function compileBindTemplate(template){ }); bindTemplateCache[template] = fn = function(element, prettyPrintJson){ var parts = [], self = this, - oldElement = this.hasOwnProperty($$element) ? self.$element : _undefined; + oldElement = this.hasOwnProperty($$element) ? self.$element : undefined; self.$element = element; for ( var i = 0; i < bindings.length; i++) { var value = bindings[i].call(self, element); @@ -767,7 +767,7 @@ angularDirective("ng:style", function(expression, element){ this.$onEval(function(){ var style = this.$eval(expression) || {}, key, mergedStyle = {}; for(key in style) { - if (resetStyle[key] === _undefined) resetStyle[key] = ''; + if (resetStyle[key] === undefined) resetStyle[key] = ''; mergedStyle[key] = style[key]; } for(key in resetStyle) { diff --git a/src/formatters.js b/src/formatters.js index a7a5cc4f..02773be1 100644 --- a/src/formatters.js +++ b/src/formatters.js @@ -1,6 +1,6 @@ function formatter(format, parse) {return {'format':format, 'parse':parse || format};} function toString(obj) { - return (isDefined(obj) && obj !== _null) ? "" + obj : obj; + return (isDefined(obj) && obj !== null) ? "" + obj : obj; } var NUMBER = /^\s*[-+]?\d*(\.\d*)?\s*$/; @@ -94,8 +94,8 @@ angularFormatter['boolean'] = formatter(toString, toBoolean); </doc:example> */ angularFormatter.number = formatter(toString, function(obj){ - if (obj == _null || NUMBER.exec(obj)) { - return obj===_null || obj === '' ? _null : 1*obj; + if (obj == null || NUMBER.exec(obj)) { + return obj===null || obj === '' ? null : 1*obj; } else { throw "Not a number"; } diff --git a/src/jqLite.js b/src/jqLite.js index cda8ec70..9c96df4a 100644 --- a/src/jqLite.js +++ b/src/jqLite.js @@ -105,7 +105,7 @@ function JQLiteData(element, key, value) { } cache[key] = value; } else { - return cache ? cache[key] : _null; + return cache ? cache[key] : null; } } diff --git a/src/markups.js b/src/markups.js index 99e1cca7..24de5c37 100644 --- a/src/markups.js +++ b/src/markups.js @@ -20,11 +20,11 @@ function parseBindings(string) { function binding(string) { var binding = string.replace(/\n/gm, ' ').match(/^\{\{(.*)\}\}$/); - return binding ? binding[1] : _null; + return binding ? binding[1] : null; } function hasBindings(bindings) { - return bindings.length > 1 || binding(bindings[0]) !== _null; + return bindings.length > 1 || binding(bindings[0]) !== null; } angularTextMarkup('{{}}', function(text, textNode, parentElement) { diff --git a/src/parser.js b/src/parser.js index a8bd21e4..0a19dad9 100644 --- a/src/parser.js +++ b/src/parser.js @@ -1,5 +1,5 @@ var OPERATORS = { - 'null':function(self){return _null;}, + 'null':function(self){return null;}, 'true':function(self){return true;}, 'false':function(self){return false;}, $undefined:noop, @@ -566,7 +566,7 @@ function parser(text, json){ function (self){ var o = obj(self); var i = indexFn(self); - return (o) ? o[i] : _undefined; + return (o) ? o[i] : undefined; }, { assign:function(self, value){ return obj(self)[indexFn(self)] = value; diff --git a/src/service/cookies.js b/src/service/cookies.js index b8de81c2..86e55fc1 100644 --- a/src/service/cookies.js +++ b/src/service/cookies.js @@ -52,7 +52,7 @@ angularServiceInject('$cookies', function($browser) { //delete any cookies deleted in $cookies for (name in lastCookies) { if (isUndefined(cookies[name])) { - $browser.cookies(name, _undefined); + $browser.cookies(name, undefined); } } diff --git a/src/service/hover.js b/src/service/hover.js index a7cef71a..fca18130 100644 --- a/src/service/hover.js +++ b/src/service/hover.js @@ -50,7 +50,7 @@ angularServiceInject("$hover", function(browser, document) { } } else if (tooltip) { tooltip.callout.remove(); - tooltip = _null; + tooltip = null; } }); }, ['$browser', '$document'], true); diff --git a/src/service/location.js b/src/service/location.js index 31323284..a5875b72 100644 --- a/src/service/location.js +++ b/src/service/location.js @@ -199,7 +199,7 @@ angularServiceInject("$location", function($browser) { */ function composeHref(loc) { var url = toKeyValue(loc.search); - var port = (loc.port == DEFAULT_PORTS[loc.protocol] ? _null : loc.port); + var port = (loc.port == DEFAULT_PORTS[loc.protocol] ? null : loc.port); return loc.protocol + '://' + loc.host + (port ? ':' + port : '') + loc.path + @@ -233,7 +233,7 @@ angularServiceInject("$location", function($browser) { loc.href = href.replace(/#$/, ''); loc.protocol = match[1]; loc.host = match[3] || ''; - loc.port = match[5] || DEFAULT_PORTS[loc.protocol] || _null; + loc.port = match[5] || DEFAULT_PORTS[loc.protocol] || null; loc.path = match[6] || ''; loc.search = parseKeyValue(match[8]); loc.hash = match[10] || ''; diff --git a/src/service/route.js b/src/service/route.js index 2de484f6..19fc81bf 100644 --- a/src/service/route.js +++ b/src/service/route.js @@ -196,14 +196,14 @@ angularServiceInject('$route', function(location, $updateView) { }); if (dstName) this.$set(dstName, dst); } - return match ? dst : _null; + return match ? dst : null; } function updateRoute(){ var childScope, routeParams, pathParams, segmentMatch, key, redir; - $route.current = _null; + $route.current = null; forEach(routes, function(rParams, rPath) { if (!pathParams) { if (pathParams = matcher(location.hashPath, rPath)) { @@ -213,7 +213,7 @@ angularServiceInject('$route', function(location, $updateView) { }); // "otherwise" fallback - routeParams = routeParams || routes[_null]; + routeParams = routeParams || routes[null]; if(routeParams) { if (routeParams.redirectTo) { diff --git a/src/service/xhr.bulk.js b/src/service/xhr.bulk.js index 9933aa7e..c6cf608c 100644 --- a/src/service/xhr.bulk.js +++ b/src/service/xhr.bulk.js @@ -16,7 +16,7 @@ angularServiceInject('$xhr.bulk', function($xhr, $error, $log){ function bulkXHR(method, url, post, callback) { if (isFunction(post)) { callback = post; - post = _null; + post = null; } var currentQueue; forEach(bulkXHR.urls, function(queue){ diff --git a/src/service/xhr.cache.js b/src/service/xhr.cache.js index e87b127b..284321d7 100644 --- a/src/service/xhr.cache.js +++ b/src/service/xhr.cache.js @@ -26,7 +26,7 @@ angularServiceInject('$xhr.cache', function($xhr, $defer, $log){ function cache(method, url, post, callback, verifyCache){ if (isFunction(post)) { callback = post; - post = _null; + post = null; } if (method == 'GET') { var data, dataCached; diff --git a/src/service/xhr.js b/src/service/xhr.js index 1de72b22..18f695e6 100644 --- a/src/service/xhr.js +++ b/src/service/xhr.js @@ -129,7 +129,7 @@ angularServiceInject('$xhr', function($browser, $error, $log, $updateView){ return function(method, url, post, callback){ if (isFunction(post)) { callback = post; - post = _null; + post = null; } if (post && isObject(post)) { post = toJson(post); diff --git a/src/validators.js b/src/validators.js index ad76646b..c2902849 100644 --- a/src/validators.js +++ b/src/validators.js @@ -1,5 +1,5 @@ extend(angularValidator, { - 'noop': function() { return _null; }, + 'noop': function() { return null; }, /** * @workInProgress @@ -42,7 +42,7 @@ extend(angularValidator, { return msg || "Value does not match expected format " + regexp + "."; } else { - return _null; + return null; } }, @@ -94,7 +94,7 @@ extend(angularValidator, { if (typeof min != $undefined && num > max) { return "Value can not be greater than " + max + "."; } - return _null; + return null; } else { return "Not a number"; } @@ -144,7 +144,7 @@ extend(angularValidator, { if (!("" + value).match(/^\s*[\d+]*\s*$/) || value != Math.round(value)) { return "Not a whole number"; } - return _null; + return null; }, /** @@ -182,7 +182,7 @@ extend(angularValidator, { date.getFullYear() == fields[3] && date.getMonth() == fields[1]-1 && date.getDate() == fields[2]) - ? _null + ? null : "Value is not a date. (Expecting format: 12/31/2009)."; }, @@ -215,7 +215,7 @@ extend(angularValidator, { */ 'email': function(value) { if (value.match(/^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/)) { - return _null; + return null; } return "Email needs to be in username@host.com format."; }, @@ -249,10 +249,10 @@ extend(angularValidator, { */ 'phone': function(value) { if (value.match(/^1\(\d\d\d\)\d\d\d-\d\d\d\d$/)) { - return _null; + return null; } if (value.match(/^\+\d{2,3} (\(\d{1,5}\))?[\d ]+\d$/)) { - return _null; + return null; } return "Phone number needs to be in 1(987)654-3210 format in North America or +999 (123) 45678 906 internationaly."; }, @@ -286,7 +286,7 @@ extend(angularValidator, { */ 'url': function(value) { if (value.match(/^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/)) { - return _null; + return null; } return "URL needs to be in http://server[:port]/path format."; }, @@ -322,7 +322,7 @@ extend(angularValidator, { 'json': function(value) { try { fromJson(value); - return _null; + return null; } catch (e) { return e.toString(); } diff --git a/src/widgets.js b/src/widgets.js index 91b0fcf2..ac8a88e0 100644 --- a/src/widgets.js +++ b/src/widgets.js @@ -148,7 +148,7 @@ function modelAccessor(scope, element) { return scope.$eval(expr); }, set: function(value) { - if (value !== _undefined) { + if (value !== undefined) { return scope.$tryEval(function(){ assign(scope, value); }, element); @@ -310,7 +310,7 @@ function valueAccessor(scope, element) { return { get: function(){ if (lastError) - elementError(element, NG_VALIDATION_ERROR, _null); + elementError(element, NG_VALIDATION_ERROR, null); try { var value = parse(scope, element.val()); validate(); @@ -333,13 +333,13 @@ function valueAccessor(scope, element) { function validate() { var value = trim(element.val()); if (element[0].disabled || element[0].readOnly) { - elementError(element, NG_VALIDATION_ERROR, _null); + elementError(element, NG_VALIDATION_ERROR, null); invalidWidgets.markValid(element); } else { var error, validateScope = inherit(scope, {$element:element}); error = required && !value ? 'Required' - : (value ? validator(validateScope, value) : _null); + : (value ? validator(validateScope, value) : null); elementError(element, NG_VALIDATION_ERROR, error); lastError = error; if (error) { @@ -367,7 +367,7 @@ function radioAccessor(scope, element) { var domElement = element[0]; return { get: function(){ - return domElement.checked ? domElement.value : _null; + return domElement.checked ? domElement.value : null; }, set: function(value){ domElement.checked = value == domElement.value; @@ -425,7 +425,7 @@ var textWidget = inputWidget('keydown change', modelAccessor, valueAccessor, ini 'image': buttonWidget, 'checkbox': inputWidget('click', modelFormattedAccessor, checkedAccessor, initWidgetValue(false)), 'radio': inputWidget('click', modelFormattedAccessor, radioAccessor, radioInit), - 'select-one': inputWidget('change', modelAccessor, valueAccessor, initWidgetValue(_null)), + 'select-one': inputWidget('change', modelAccessor, valueAccessor, initWidgetValue(null)), 'select-multiple': inputWidget('change', modelAccessor, optionsAccessor, initWidgetValue([])) // 'file': fileWidget??? }; @@ -448,9 +448,9 @@ function radioInit(model, view, element) { input.checked = false; input.name = this.$id + '@' + input.name; if (isUndefined(modelValue)) { - model.set(modelValue = _null); + model.set(modelValue = null); } - if (modelValue == _null && viewValue !== _null) { + if (modelValue == null && viewValue !== null) { model.set(viewValue); } view.set(modelValue); |
