copy.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. var RTL$ = {
  2. makeArray: function (/*dimensions, initializer*/){
  3. var forward = Array.prototype.slice.call(arguments);
  4. var result = new Array(forward.shift());
  5. var i;
  6. if (forward.length == 1){
  7. var init = forward[0];
  8. if (typeof init == "function")
  9. for(i = 0; i < result.length; ++i)
  10. result[i] = init();
  11. else
  12. for(i = 0; i < result.length; ++i)
  13. result[i] = init;
  14. }
  15. else
  16. for(i = 0; i < result.length; ++i)
  17. result[i] = this.makeArray.apply(this, forward);
  18. return result;
  19. },
  20. assignArrayFromString: function (a, s){
  21. var i;
  22. for(i = 0; i < s.length; ++i)
  23. a[i] = s.charCodeAt(i);
  24. for(i = s.length; i < a.length; ++i)
  25. a[i] = 0;
  26. },
  27. copy: function (from, to){
  28. for(var prop in to){
  29. if (to.hasOwnProperty(prop)){
  30. var v = from[prop];
  31. if (v !== null && typeof v == "object")
  32. this.copy(v, to[prop]);
  33. else
  34. to[prop] = v;
  35. }
  36. }
  37. }
  38. };
  39. var m = function (){
  40. var s1 = "\"";
  41. var s2 = "ABC";
  42. var ac3 = RTL$.makeArray(3, 0);
  43. RTL$.assignArrayFromString(ac3, s1);
  44. RTL$.assignArrayFromString(ac3, s2);
  45. RTL$.copy(ac3, ac3);
  46. }();