Skip to content

Commit 8756bdd

Browse files
committed
Moved to bool event lookup vs bitwise checks
1 parent 9e08e74 commit 8756bdd

18 files changed

+113
-430
lines changed

.github/workflows/ci.yaml

+3
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,9 @@ jobs:
4545
- name: Build and test
4646
run: npm run lint && npm run build && npm run coverage
4747

48+
- name: Benchmark
49+
run: npm run benchmark
50+
4851
- name: Cache Node.js modules
4952
uses: actions/cache@v2
5053
with:

lib/cjs/index.js

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/cjs/index.js.map

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/cjs/saxWasm.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/cjs/saxWasm.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/esm/index.js

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/esm/index.js.map

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/esm/saxWasm.js

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/esm/saxWasm.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/index.js

-6
This file was deleted.

lib/sax-wasm.wasm

370 Bytes
Binary file not shown.

lib/saxWasm.js

-309
This file was deleted.

package.json

+1
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
"build:wasm": "cargo build --target wasm32-unknown-unknown --release && npm run wasm-opt",
2525
"wasm-opt": "wasm-opt -O4 target/wasm32-unknown-unknown/release/sax_wasm.wasm -o lib/sax-wasm.wasm",
2626
"build": "(npm run build:esm && npm run build:cjs) && npm run build:wasm && tsc --emitDeclarationOnly",
27+
"build:dev": "(npm run build:esm -- --sourceMap && npm run build:cjs -- --sourceMap ) && npm run build:wasm && tsc --emitDeclarationOnly",
2728
"build:esm": "tsc --module esnext --outDir lib/esm --target esnext",
2829
"build:cjs": "tsc --module commonjs --outDir lib/cjs --target esnext",
2930
"benchmark": "node src/js/__test__/benchmark.mjs",

src/js/__test__/benchmark.mjs

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { URL } from 'url';
33
import { resolve } from 'path';
44
import { Buffer } from 'buffer';
55

6-
import { SAXParser, SaxEventType } from '../../../lib/cjs/index.js';
6+
import { SAXParser, SaxEventType } from '../../../lib/esm/index.js';
77

88
import nodeXml from 'node-xml';
99
import expat from 'node-expat';

src/sax/grapheme_iterator.rs

+5-5
Original file line numberDiff line numberDiff line change
@@ -132,10 +132,10 @@ impl GraphemeClusters<'_> {
132132
/// assert!(gc.take_until_ascii(&[b'!']).is_none());
133133
///
134134
/// // Handle broken surrogate at the end
135-
/// let bytes_with_surrogate = "🐉 hello, world!\xF0".as_bytes();
136-
/// let mut gc_with_surrogate = GraphemeClusters::new(bytes_with_surrogate);
135+
/// let bytes = "hello, world!🐉🐉🐉".as_bytes();
136+
/// let mut gc_with_surrogate = GraphemeClusters::new(&bytes[..14]);
137137
/// if let Some(result) = gc_with_surrogate.take_until_ascii(&[b'!']) {
138-
/// assert_eq!(result.0, "🐉 hello, world");
138+
/// assert_eq!(result.0, "hello, world");
139139
/// assert_eq!(result.1, 0);
140140
/// assert_eq!(result.2, 12);
141141
/// }
@@ -166,8 +166,8 @@ impl GraphemeClusters<'_> {
166166
cursor += len;
167167
}
168168

169-
if cursor >= byte_len {
170-
cursor = byte_len;
169+
if cursor > byte_len {
170+
cursor = byte_len - (cursor - byte_len);
171171
}
172172
// Nothing to take
173173
if start >= cursor {

0 commit comments

Comments
 (0)