tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

unicode-bidi-isolate-basic.js (1940B)


      1 function buildTable()
      2 {
      3    var seed = 0;
      4 
      5    var neutrals = ['"', ")", "("];
      6    var strongRTLs = ['א', 'ב', 'ג', 'ד', 'ה', 'ו', 'ז'];
      7    var strongLTRs = ['a', 'b', 'c', 'd', 'e', 'f', 'g'];
      8    var neutral = function() { return neutrals[seed++ % neutrals.length]; }
      9    var strongRTL = function() { return strongRTLs[seed++ % strongRTLs.length]; }
     10    var strongLTR = function() { return strongLTRs[seed++ % strongLTRs.length]; }
     11    var charClassExamples = [neutral, strongRTL, strongLTR];
     12    var possibleDirs = ['ltr', 'rtl'];
     13 
     14    var elem=document.getElementById("elem");
     15    for (outerDirIndex in possibleDirs) {
     16 var outerDir = possibleDirs[outerDirIndex];
     17 for (beforeSpanIndex in charClassExamples) {
     18            var beforeSpan = charClassExamples[beforeSpanIndex];
     19            for (spanDirIndex in possibleDirs) {
     20 	var spanDir = possibleDirs[spanDirIndex];
     21 	for (inSpanIndex in charClassExamples) {
     22                    var inSpan = charClassExamples[inSpanIndex];
     23                    for (afterSpanIndex in charClassExamples) {
     24 		var afterSpan = charClassExamples[afterSpanIndex];
     25 		function caseWithStyle() {
     26                            seed = 0;
     27                            var outerDiv = document.createElement("div");
     28                            outerDiv.dir = outerDir;
     29                            outerDiv.appendChild(document.createTextNode(beforeSpan()));
     30                            var span = document.createElement("span");
     31                            span.dir = spanDir;
     32                            span.setAttribute("class", "enclosed")
     33                            span.appendChild(document.createTextNode(inSpan()));
     34                            outerDiv.appendChild(span);
     35                            outerDiv.appendChild(document.createTextNode(afterSpan()));
     36                            return outerDiv;
     37 		}
     38 		elem.appendChild(caseWithStyle());
     39                    }
     40 	}
     41            }
     42 }
     43    }
     44 }