MCPcopy Create free account
hub / github.com/dop251/goja / ReadRune

Method ReadRune

string_unicode.go:77–110  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

75}
76
77func (rr *lenientUtf16Decoder) ReadRune() (r rune, size int, err error) {
78 var c uint16
79 if rr.prevSet {
80 c = rr.prev
81 rr.prevSet = false
82 } else {
83 c, err = rr.utf16Reader.readChar()
84 if err != nil {
85 return
86 }
87 }
88 size = 1
89 if isUTF16FirstSurrogate(c) {
90 second, err1 := rr.utf16Reader.readChar()
91 if err1 != nil {
92 if err1 != io.EOF {
93 err = err1
94 } else {
95 r = rune(c)
96 }
97 return
98 }
99 if isUTF16SecondSurrogate(second) {
100 r = utf16.DecodeRune(rune(c), rune(second))
101 size++
102 return
103 } else {
104 rr.prev = second
105 rr.prevSet = true
106 }
107 }
108 r = rune(c)
109 return
110}
111
112func (rr *unicodeRuneReader) ReadRune() (r rune, size int, err error) {
113 if rr.pos < len(rr.s) {

Callers 3

escapeInvalidUtf16Function · 0.95
writeEscapedSourceMethod · 0.95
quoteMethod · 0.95

Calls 3

isUTF16FirstSurrogateFunction · 0.85
isUTF16SecondSurrogateFunction · 0.85
readCharMethod · 0.65

Tested by

no test coverage detected