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 }