re2-latin1
Version:
Bindings for RE2: fast, safe alternative to backtracking regular expression engines.
53 lines (41 loc) • 883 B
JavaScript
;
var unit = require("heya-unit");
var RE2 = require("../re2");
// tests
unit.add(module, [
function test_inval(t) {
"use strict";
var threw;
// Backreferences
threw = false;
try {
new RE2(/(a)\1/);
} catch (e) {
threw = true;
eval(t.TEST("e instanceof SyntaxError"));
eval(t.TEST("e.message === 'invalid escape sequence: \\\\1'"));
}
t.test(threw);
// Lookahead assertions
// Positive
threw = false;
try {
new RE2(/a(?=b)/);
} catch (e) {
threw = true;
eval(t.TEST("e instanceof SyntaxError"));
eval(t.TEST("e.message === 'invalid perl operator: (?='"));
}
t.test(threw);
// Negative
threw = false;
try {
new RE2(/a(?!b)/);
} catch (e) {
threw = true;
eval(t.TEST("e instanceof SyntaxError"));
eval(t.TEST("e.message === 'invalid perl operator: (?!'"));
}
t.test(threw);
},
]);