File: regexp.js

package info (click to toggle)
node-terser 5.46.1-2
  • links: PTS, VCS
  • area: main
  • in suites: forky
  • size: 4,248 kB
  • sloc: javascript: 101,516; makefile: 52; perl: 48; sh: 13
file content (103 lines) | stat: -rw-r--r-- 1,949 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
regexp_simple: {
    input: {
        /rx/ig
    }
    expect_exact: "/rx/gi;"
}

regexp_slashes: {
    input: {
        /\\\/rx\/\\/ig
    }
    expect_exact: "/\\\\\\/rx\\/\\\\/gi;"
}

regexp_1: {
    options = {
    }
    input: {
        console.log(JSON.stringify("COMPASS? Overpass.".match(/([Sap]+)/ig)));
    }
    expect: {
        console.log(JSON.stringify("COMPASS? Overpass.".match(/([Sap]+)/gi)));
    }
    expect_stdout: '["PASS","pass"]'
}

regexp_2: {
    options = {
        evaluate: true,
        unsafe: true,
    }
    input: {
        console.log(JSON.stringify("COMPASS? Overpass.".match(new RegExp("(pass)", "ig"))));
    }
    expect: {
        console.log(JSON.stringify("COMPASS? Overpass.".match(/(pass)/gi)));
    }
    expect_stdout: '["PASS","pass"]'
}

unsafe_slashes: {
    options = {
        defaults: true,
        unsafe: true
    }
    input: {
        console.log(new RegExp("^https//"))
    }
    expect: {
        console.log(/^https\/\//)
    }
}
unsafe_nul_byte: {
    options = {
        defaults: true,
        unsafe: true
    }
    input: {
        console.log(new RegExp("\0"))
    }
    expect: {
        console.log(/\0/)
    }
}

double_escape: {
    format = {
        ascii_only: true
    }
    input: {
        /\🏳0\🌈️\☺/
    }
    expect: {
        /\ud83c\udff30\ud83c\udf08\ufe0f\u263a/
    }
    expect_stdout: true
}

inline_script: {
    options = {}
    beautify = {
        inline_script: true,
        comments: "all"
    }
    input: {
        /* </script> */
        /[</script>]/
    }
    expect_exact: '/* <\\/script> */\n/[<\\/script>]/;'
}

regexp_no_ddos: {
    options = { unsafe: true, evaluate: true }
    input: {
        console.log(/(b+)b+/.test("bbb"))
        console.log(RegExp("(b+)b+").test("bbb"))
    }
    expect: {
        console.log(/(b+)b+/.test("bbb"))
        console.log(RegExp("(b+)b+").test("bbb"))
    }
    expect_stdout: ["true", "true"]
}