frame.js 865 B

123456789101112131415161718192021222324252627282930313233
  1. IO.include("frame/Opt.js");
  2. IO.include("frame/Chain.js");
  3. IO.include("frame/Link.js");
  4. IO.include("frame/String.js");
  5. IO.include("frame/Hash.js");
  6. IO.include("frame/Namespace.js");
  7. //IO.include("frame/Reflection.js");
  8. /** A few helper functions to make life a little easier. */
  9. function defined(o) {
  10. return (o !== undefined);
  11. }
  12. function copy(o) { // todo check for circular refs
  13. if (o == null || typeof(o) != 'object') return o;
  14. var c = new o.constructor();
  15. for(var p in o) c[p] = copy(o[p]);
  16. return c;
  17. }
  18. function isUnique(arr) {
  19. var l = arr.length;
  20. for(var i = 0; i < l; i++ ) {
  21. if (arr.lastIndexOf(arr[i]) > i) return false;
  22. }
  23. return true;
  24. }
  25. /** Returns the given string with all regex meta characters backslashed. */
  26. RegExp.escapeMeta = function(str) {
  27. return str.replace(/([$^\\\/()|?+*\[\]{}.-])/g, "\\$1");
  28. }