| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent d846e5b commit 3718047
2 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -15,6 +15,10 @@ enum encoding ParseEncoding(const char* encoding, | |||
| 15 | 15 | switch (encoding[0]) { | |
| 16 | 16 | case 'u': | |
| 17 | 17 | case 'U': | |
| 18 | + // Note: the two first conditions are needed for performance reasons | ||
| 19 | + // as "utf8"/"utf-8" is a common case. | ||
| 20 | + // (same for other cases below) | ||
| 21 | + | ||
| 18 | 22 | // utf8, utf16le | |
| 19 | 23 | if (encoding[1] == 't' && encoding[2] == 'f') { | |
| 20 | 24 | // Skip `-` | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -4,20 +4,45 @@ const common = require('../../common'); | |||
| 4 | 4 | const assert = require('assert'); | |
| 5 | 5 | const { parseEncoding } = require(`./build/${common.buildType}/binding`); | |
| 6 | 6 | ||
| 7 | - assert.strictEqual(parseEncoding(''), 'UNKNOWN'); | ||
| 8 | 7 | ||
| 9 | 8 | assert.strictEqual(parseEncoding('ascii'), 'ASCII'); | |
| 9 | + assert.strictEqual(parseEncoding('ASCII'), 'ASCII'); | ||
| 10 | 10 | assert.strictEqual(parseEncoding('base64'), 'BASE64'); | |
| 11 | + assert.strictEqual(parseEncoding('BASE64'), 'BASE64'); | ||
| 11 | 12 | assert.strictEqual(parseEncoding('base64url'), 'BASE64URL'); | |
| 13 | + assert.strictEqual(parseEncoding('BASE64URL'), 'BASE64URL'); | ||
| 12 | 14 | assert.strictEqual(parseEncoding('binary'), 'LATIN1'); | |
| 15 | + assert.strictEqual(parseEncoding('BINARY'), 'LATIN1'); | ||
| 13 | 16 | assert.strictEqual(parseEncoding('buffer'), 'BUFFER'); | |
| 17 | + assert.strictEqual(parseEncoding('BUFFER'), 'BUFFER'); | ||
| 14 | 18 | assert.strictEqual(parseEncoding('hex'), 'HEX'); | |
| 19 | + assert.strictEqual(parseEncoding('HEX'), 'HEX'); | ||
| 15 | 20 | assert.strictEqual(parseEncoding('latin1'), 'LATIN1'); | |
| 21 | + assert.strictEqual(parseEncoding('LATIN1'), 'LATIN1'); | ||
| 22 | + | ||
| 23 | + // ucs2 variations | ||
| 16 | 24 | assert.strictEqual(parseEncoding('ucs2'), 'UCS2'); | |
| 25 | + assert.strictEqual(parseEncoding('ucs-2'), 'UCS2'); | ||
| 26 | + assert.strictEqual(parseEncoding('UCS2'), 'UCS2'); | ||
| 27 | + assert.strictEqual(parseEncoding('UCS-2'), 'UCS2'); | ||
| 28 | + | ||
| 29 | + // utf8 variations | ||
| 17 | 30 | assert.strictEqual(parseEncoding('utf8'), 'UTF8'); | |
| 18 | - assert.strictEqual(parseEncoding('utf-16LE'), 'UCS2'); | ||
| 31 | + assert.strictEqual(parseEncoding('utf-8'), 'UTF8'); | ||
| 32 | + assert.strictEqual(parseEncoding('UTF8'), 'UTF8'); | ||
| 33 | + assert.strictEqual(parseEncoding('UTF-8'), 'UTF8'); | ||
| 34 | + | ||
| 35 | + // utf16le variations | ||
| 36 | + assert.strictEqual(parseEncoding('utf16le'), 'UCS2'); | ||
| 37 | + assert.strictEqual(parseEncoding('utf-16le'), 'UCS2'); | ||
| 38 | + assert.strictEqual(parseEncoding('UTF16LE'), 'UCS2'); | ||
| 39 | + assert.strictEqual(parseEncoding('UTF-16LE'), 'UCS2'); | ||
| 40 | + | ||
| 41 | + // unknown cases | ||
| 42 | + assert.strictEqual(parseEncoding(''), 'UNKNOWN'); | ||
| 43 | + assert.strictEqual(parseEncoding('asCOO'), 'UNKNOWN'); | ||
| 44 | + assert.strictEqual(parseEncoding('hux'), 'UNKNOWN'); | ||
| 19 | 45 | assert.strictEqual(parseEncoding('utf-buffer'), 'UNKNOWN'); | |
| 20 | 46 | assert.strictEqual(parseEncoding('utf-16leNOT'), 'UNKNOWN'); | |
| 21 | - | ||
| 22 | 47 | assert.strictEqual(parseEncoding('linary'), 'UNKNOWN'); | |
| 23 | 48 | assert.strictEqual(parseEncoding('luffer'), 'UNKNOWN'); | |
| Back | FazBrowse Home | New Git URL |
0 commit comments