50 lines
1.3 KiB
JavaScript
50 lines
1.3 KiB
JavaScript
|
(function(){
|
||
|
// monkey patch fromJson to avoid Rhino bug in eval: https://bugzilla.mozilla.org/show_bug.cgi?id=471005
|
||
|
var fromJson = dojo.fromJson;
|
||
|
dojo.fromJson = function(json){
|
||
|
json = json.replace(/[\u200E\u200F\u202A-\u202E]/g, function(match){
|
||
|
return "\\u" + match.charCodeAt(0).toString(16);
|
||
|
})
|
||
|
return json ? fromJson(json) : ""; //TODO: json value passed in shouldn't be empty
|
||
|
}
|
||
|
})();
|
||
|
|
||
|
function isLocaleAliasSrc(prop, bundle){
|
||
|
if(!bundle){ return false; }
|
||
|
var isAlias = false;
|
||
|
var LOCALE_ALIAS_MARK = '@localeAlias';
|
||
|
|
||
|
for(x in bundle){
|
||
|
if(x.indexOf(LOCALE_ALIAS_MARK) > 0){
|
||
|
var prefix = x.substring(0,x.indexOf(LOCALE_ALIAS_MARK));
|
||
|
if(prop.indexOf(prefix) == 0){
|
||
|
isAlias = true;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
return isAlias;
|
||
|
}
|
||
|
|
||
|
function getNativeBundle(filePath){
|
||
|
//summary: get native bundle content with utf-8 encoding
|
||
|
// native means the content of this bundle is not flattened with parent
|
||
|
// returns empty object if file not found
|
||
|
try{
|
||
|
var content = readFile(filePath, "utf-8");
|
||
|
return (!content || !content.length) ? {} : dojo.fromJson(content);
|
||
|
}catch(e){
|
||
|
return {};
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function compare(a/*String or Array*/, b/*String or Array*/){
|
||
|
//summary: simple comparison
|
||
|
if(dojo.isArray(a) && dojo.isArray(b)){
|
||
|
for(var i = 0; i < a.length; i++){
|
||
|
if(a[i] != b[i]){ return false; }
|
||
|
}
|
||
|
return true;
|
||
|
}
|
||
|
return a==b;
|
||
|
}
|