diff options
Diffstat (limited to 'src/mongo/gotools/src/github.com/mongodb/mongo-tools/vendor/github.com/gopherjs/gopherjs/compiler/natives/src/unicode/unicode.go')
-rw-r--r-- | src/mongo/gotools/src/github.com/mongodb/mongo-tools/vendor/github.com/gopherjs/gopherjs/compiler/natives/src/unicode/unicode.go | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/mongo/gotools/src/github.com/mongodb/mongo-tools/vendor/github.com/gopherjs/gopherjs/compiler/natives/src/unicode/unicode.go b/src/mongo/gotools/src/github.com/mongodb/mongo-tools/vendor/github.com/gopherjs/gopherjs/compiler/natives/src/unicode/unicode.go new file mode 100644 index 00000000000..e9231765140 --- /dev/null +++ b/src/mongo/gotools/src/github.com/mongodb/mongo-tools/vendor/github.com/gopherjs/gopherjs/compiler/natives/src/unicode/unicode.go @@ -0,0 +1,28 @@ +// +build js + +package unicode + +func to(_case int, r rune, caseRange []CaseRange) (mappedRune rune, foundMapping bool) { + if _case < 0 || MaxCase <= _case { + return ReplacementChar, false + } + lo := 0 + hi := len(caseRange) + for lo < hi { + m := lo + (hi-lo)/2 + cr := &caseRange[m] // performance critical for GopherJS: get address here instead of copying the CaseRange + if rune(cr.Lo) <= r && r <= rune(cr.Hi) { + delta := rune(cr.Delta[_case]) + if delta > MaxRune { + return rune(cr.Lo) + ((r-rune(cr.Lo))&^1 | rune(_case&1)), true + } + return r + delta, true + } + if r < rune(cr.Lo) { + hi = m + } else { + lo = m + 1 + } + } + return r, false +} |