function reverseString(str) {
    var reversedString = '';
    for(var i = str.length - 1; i >= 0 ; i--) {
        reversedString += str[i];
    }
    return reversedString;
}

@@ -20,19 +20,20 @@
 ing(
-str
+text
 ) %7B%0A    
 var 
@@ -32,77 +32,159 @@
     
-var reversedString = 
+text = text.split(
 ''
+)
 ;%0A    
-for(var i = str.length - 1;
+var len = text.length,%0A        halfIndex = Math.floor(len / 2) - 1,%0A        revText;%0A    for (var
  i 
-%3E
 = 0
- ; i--
+; i %3C= halfIndex; i++
 ) %7B%0A
@@ -198,46 +198,140 @@
  rev
-ersedString += str%5Bi%5D;%0A    %7D%0A    retur
+Text = text%5Blen - i - 1%5D;%0A        text%5Blen - i - 1%5D = text%5Bi%5D;%0A        text%5Bi%5D = revText;%0A    %7D%0A    return text.join('');%0A%7D%0A%0Afunctio
 n re
@@ -339,15 +339,111 @@
 erse
-d
 String
+Natively(text) %7B%0A    return (!text %7C%7C text.length %3C 2) ? text : text.split('').reverse().join('')
 ;%0A%7D%0A

add methods for string reverse algorithm