2
0

string.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  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. strToArray: function (s){
  28. var result = new Array(s.length);
  29. for(var i = 0; i < s.length; ++i)
  30. result[i] = s.charCodeAt(i);
  31. return result;
  32. },
  33. assert: function (condition, code){
  34. if (!condition)
  35. throw new Error("assertion failed"
  36. + ((code !== undefined) ? " with code " + code : ""));
  37. }
  38. };
  39. var m = function (){
  40. var s1 = "\"";
  41. var s2 = "ABC";
  42. var s3 = "with space";
  43. var s4 = "\n";
  44. var s5 = "\r";
  45. var s6 = "\b";
  46. var s7 = "\t";
  47. var s8 = "\f";
  48. var s9 = "\\";
  49. var ch1 = 0;
  50. var a2 = RTL$.makeArray(3, 0);
  51. function p1(s/*ARRAY OF CHAR*/){
  52. }
  53. function p2(c/*CHAR*/){
  54. }
  55. ch1 = 34;
  56. RTL$.assignArrayFromString(a2, s1);
  57. RTL$.assignArrayFromString(a2, s2);
  58. p1(RTL$.strToArray(s1));
  59. p1(RTL$.strToArray(s2));
  60. p2(34);
  61. RTL$.assert(ch1 == 34);
  62. RTL$.assert(34 == ch1);
  63. }();