aboutsummaryrefslogtreecommitdiffstats
path: root/src/Angular.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/Angular.js')
-rw-r--r--src/Angular.js38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/Angular.js b/src/Angular.js
index 17ede3aa..4a0589c3 100644
--- a/src/Angular.js
+++ b/src/Angular.js
@@ -627,6 +627,22 @@ function copy(source, destination){
}
/**
+ * Create a shallow copy of an object
+ * @param src
+ */
+function shallowCopy(src) {
+ var dst = {},
+ key;
+ for(key in src) {
+ if (src.hasOwnProperty(key)) {
+ dst[key] = src[key];
+ }
+ }
+ return dst;
+}
+
+
+/**
* @ngdoc function
* @name angular.equals
* @function
@@ -750,6 +766,19 @@ function toBoolean(value) {
return value;
}
+/**
+ * @returns {string} Returns the string representation of the element.
+ */
+function startingTag(element) {
+ element = jqLite(element).clone();
+ try {
+ // turns out IE does not let you set .html() on elements which
+ // are not allowed to have children. So we just ignore it.
+ element.html('');
+ } catch(e) {};
+ return jqLite('<div>').append(element).html().replace(/\<\/[\w\:\-]+\>$/, '');
+}
+
/////////////////////////////////////////////////
@@ -918,6 +947,14 @@ function bootstrap(element, modules) {
return injector;
}
+var SNAKE_CASE_REGEXP = /[A-Z]/g;
+function snake_case(name, separator){
+ separator = separator || '_';
+ return name.replace(SNAKE_CASE_REGEXP, function(letter, pos) {
+ return (pos ? separator : '') + letter.toLowerCase();
+ });
+}
+
function bindJQuery() {
// bind to jQuery if present;
jQuery = window.jQuery;
@@ -951,6 +988,7 @@ function assertArg(arg, name, reason) {
}
function assertArgFn(arg, name) {
+ assertArg(arg, name);
assertArg(isFunction(arg), name, 'not a function, got ' +
(typeof arg == 'object' ? arg.constructor.name || 'Object' : typeof arg));
return arg;