function merge(obj, fallbackObj) {
			var name, value, fallbackValue;

			if ( !fallbackObj ) {
				return;
			}

			for ( name in fallbackObj ) {

				if ( fallbackObj.hasOwnProperty(name) ) {

					value = obj[ name ];
					fallbackValue = fallbackObj[ name ];

					if ( value === undefined ) {
						// 'undefined': value doesn't exist in delta, so take it from the fallback object
						// Note: undefined is not a valid value in JSON, so we can't misunderstand an existing undefined
						obj[name] = fallbackValue;
					} else if ( value === null ) {
						// 'null' is used by the delta tooling as a marker that a value must not be taken form the fallback
						delete obj[name];
					} else if ( typeof value === 'object' && typeof fallbackValue === 'object' ) {
						// both values are objects, merge them recursively
						merge(value, fallbackValue);
					}

				}

			}

		}
/*
		 * Merge a CLDR delta file and a CLDR fallback file.
		 *
		 * Note: the contract of this method reg. null values differs from both,
		 * jQuery.extend as well as jQuery.sap.extend.
		 */
Merge a CLDR delta file and a CLDR fallback file.
Note: the contract of this method reg. null values differs from both,
jQuery.extend as well as jQuery.sap.extend.
Merge a CLDR delta file and a CLDR fallback file . Note : the contract of this method reg . null values differs from both jQuery . extend as well as jQuery . sap . extend .
function merge(obj, fallbackObj) {
			var name, value, fallbackValue;
			if ( !fallbackObj ) {
				return;
			}
			for ( name in fallbackObj ) {
				if ( fallbackObj.hasOwnProperty(name) ) {
					value = obj[ name ];
					fallbackValue = fallbackObj[ name ];
					if ( value === undefined ) {
						obj[name] = fallbackValue;
					} else if ( value === null ) {
						delete obj[name];
					} else if ( typeof value === 'object' && typeof fallbackValue === 'object' ) {
						merge(value, fallbackValue);
					}
				}
			}
		}
function merge ( obj , fallbackObj ) { var name , value , fallbackValue ; if ( ! fallbackObj ) { return ; } for ( name in fallbackObj ) { if ( fallbackObj . hasOwnProperty ( name ) ) { value = obj [ name ] ; fallbackValue = fallbackObj [ name ] ; if ( value === undefined ) { obj [ name ] = fallbackValue ; } else if ( value === null ) { delete obj [ name ] ; } else if ( typeof value === 'object' && typeof fallbackValue === 'object' ) { merge ( value , fallbackValue ) ; } } } }
Merge a CLDR delta file and a CLDR fallback file.
Merge a CLDR delta file and a CLDR fallback file .
// 'undefined': value doesn't exist in delta, so take it from the fallback object // Note: undefined is not a valid value in JSON, so we can't misunderstand an existing undefined // 'null' is used by the delta tooling as a marker that a value must not be taken form the fallback // both values are objects, merge them recursively