1/* 2 * Copyright (c) 2021 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16import { 17 expect 18} from 'chai'; 19import 'mocha'; 20import { 21 Createregexpwithliteral, 22 Sttoglobalrecord, 23 Imm, 24} from "../../src/irnodes"; 25import { checkInstructions, compileMainSnippet } from "../utils/base"; 26 27describe("Regular Expression", function () { 28 it("let a = /abc/;", function () { 29 let insns = compileMainSnippet("let a = /abc/;"); 30 insns = insns.slice(0, insns.length - 1); 31 32 let expected = [ 33 new Createregexpwithliteral(new Imm(0), "abc", new Imm(0)), 34 new Sttoglobalrecord(new Imm(1), 'a') 35 ]; 36 expect(checkInstructions(insns, expected)).to.be.true; 37 }); 38 39 it("let a = /abc/i;", function () { 40 let insns = compileMainSnippet("let a = /abc/i;"); 41 insns = insns.slice(0, insns.length - 1); 42 43 let expected = [ 44 new Createregexpwithliteral(new Imm(0), "abc", new Imm(2)), 45 new Sttoglobalrecord(new Imm(1), 'a') 46 ]; 47 expect(checkInstructions(insns, expected)).to.be.true; 48 }); 49});