| 8741 | // Character types for codepoints 0x600 to 0x6ff |
| 8742 | var arabicTypes = "rrrrrrrrrrrr,rNNmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmrrrrrrrnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmNmmmm"; |
| 8743 | function charType(code) { |
| 8744 | if (code <= 0xf7) return lowTypes.charAt(code); |
| 8745 | else if (0x590 <= code && code <= 0x5f4) return "R"; |
| 8746 | else if (0x600 <= code && code <= 0x6ed) return arabicTypes.charAt(code - 0x600); |
| 8747 | else if (0x6ee <= code && code <= 0x8ac) return "r"; |
| 8748 | else if (0x2000 <= code && code <= 0x200b) return "w"; |
| 8749 | else if (code == 0x200c) return "b"; |
| 8750 | else return "L"; |
| 8751 | } |
| 8752 | |
| 8753 | var bidiRE = /[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/; |
| 8754 | var isNeutral = /[stwN]/, isStrong = /[LRr]/, countsAsLeft = /[Lb1n]/, countsAsNum = /[1n]/; |