Best JavaScript code snippet using puppeteer
perlstress-001.js
Source:perlstress-001.js
1/* ***** BEGIN LICENSE BLOCK *****2* Version: NPL 1.1/GPL 2.0/LGPL 2.13*4* The contents of this file are subject to the Netscape Public License5* Version 1.1 (the "License"); you may not use this file except in6* compliance with the License. You may obtain a copy of the License at7* http://www.mozilla.org/NPL/8*9* Software distributed under the License is distributed on an "AS IS" basis,10* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License11* for the specific language governing rights and limitations under the12* License.13*14* The Original Code is JavaScript Engine testing utilities.15*16* The Initial Developer of the Original Code is Netscape Communications Corp.17* Portions created by the Initial Developer are Copyright (C) 200218* the Initial Developer. All Rights Reserved.19*20* Contributor(s): pschwartau@netscape.com, rogerl@netscape.com21*22* Alternatively, the contents of this file may be used under the terms of23* either the GNU General Public License Version 2 or later (the "GPL"), or24* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),25* in which case the provisions of the GPL or the LGPL are applicable instead26* of those above. If you wish to allow use of your version of this file only27* under the terms of either the GPL or the LGPL, and not to allow others to28* use your version of this file under the terms of the NPL, indicate your29* decision by deleting the provisions above and replace them with the notice30* and other provisions required by the GPL or the LGPL. If you do not delete31* the provisions above, a recipient may use your version of this file under32* the terms of any one of the NPL, the GPL or the LGPL.33*34* ***** END LICENSE BLOCK *****35*36*37* Date: 2002-07-0738* SUMMARY: Testing JS RegExp engine against Perl 5 RegExp engine.39* Adjust cnLBOUND, cnUBOUND below to restrict which sections are tested.40*41* This test was created by running various patterns and strings through the42* Perl 5 RegExp engine. We saved the results below to test the JS engine.43*44* NOTE: ECMA/JS and Perl do differ on certain points. We have either commented45* out such sections altogether, or modified them to fit what we expect from JS.46*47* EXAMPLES:48*49* - In JS, regexp captures (/(a) etc./) must hold |undefined| if not used.50* See http://bugzilla.mozilla.org/show_bug.cgi?id=123437.51* By contrast, in Perl, unmatched captures hold the empty string.52* We have modified such sections accordingly. Example:53 pattern = /^([^a-z])|(\^)$/;54 string = '.';55 actualmatch = string.match(pattern);56 //expectedmatch = Array('.', '.', ''); <<<--- Perl57 expectedmatch = Array('.', '.', undefined); <<<--- JS58 addThis();59* - In JS, you can't refer to a capture before it's encountered & completed60*61* - Perl supports ] & ^] inside a [], ECMA does not62*63* - ECMA does support (?: (?= and (?! operators, but doesn't support (?< etc.64*65* - ECMA doesn't support (?imsx or (?-imsx66*67* - ECMA doesn't support (?(condition)68*69* - Perl has \Z has end-of-line, ECMA doesn't70*71* - In ECMA, ^ matches only the empty string before the first character72*73* - In ECMA, $ matches only the empty string at end of input (unless multiline)74*75* - ECMA spec says that each atom in a range must be a single character76*77* - ECMA doesn't support \A78*79* - ECMA doesn't have rules for [:80*81*/82//-----------------------------------------------------------------------------83var i = 0;84var bug = 85721;85var summary = 'Testing regular expression edge cases';86var cnSingleSpace = ' ';87var status = '';88var statusmessages = new Array();89var pattern = '';90var patterns = new Array();91var string = '';92var strings = new Array();93var actualmatch = '';94var actualmatches = new Array();95var expectedmatch = '';96var expectedmatches = new Array();97var cnLBOUND = 1;98var cnUBOUND = 1000;99status = inSection(1);100pattern = /abc/;101string = 'abc';102actualmatch = string.match(pattern);103expectedmatch = Array('abc');104addThis();105status = inSection(2);106pattern = /abc/;107string = 'xabcy';108actualmatch = string.match(pattern);109expectedmatch = Array('abc');110addThis();111status = inSection(3);112pattern = /abc/;113string = 'ababc';114actualmatch = string.match(pattern);115expectedmatch = Array('abc');116addThis();117status = inSection(4);118pattern = /ab*c/;119string = 'abc';120actualmatch = string.match(pattern);121expectedmatch = Array('abc');122addThis();123status = inSection(5);124pattern = /ab*bc/;125string = 'abc';126actualmatch = string.match(pattern);127expectedmatch = Array('abc');128addThis();129status = inSection(6);130pattern = /ab*bc/;131string = 'abbc';132actualmatch = string.match(pattern);133expectedmatch = Array('abbc');134addThis();135status = inSection(7);136pattern = /ab*bc/;137string = 'abbbbc';138actualmatch = string.match(pattern);139expectedmatch = Array('abbbbc');140addThis();141status = inSection(8);142pattern = /.{1}/;143string = 'abbbbc';144actualmatch = string.match(pattern);145expectedmatch = Array('a');146addThis();147status = inSection(9);148pattern = /.{3,4}/;149string = 'abbbbc';150actualmatch = string.match(pattern);151expectedmatch = Array('abbb');152addThis();153status = inSection(10);154pattern = /ab{0,}bc/;155string = 'abbbbc';156actualmatch = string.match(pattern);157expectedmatch = Array('abbbbc');158addThis();159status = inSection(11);160pattern = /ab+bc/;161string = 'abbc';162actualmatch = string.match(pattern);163expectedmatch = Array('abbc');164addThis();165status = inSection(12);166pattern = /ab+bc/;167string = 'abbbbc';168actualmatch = string.match(pattern);169expectedmatch = Array('abbbbc');170addThis();171status = inSection(13);172pattern = /ab{1,}bc/;173string = 'abbbbc';174actualmatch = string.match(pattern);175expectedmatch = Array('abbbbc');176addThis();177status = inSection(14);178pattern = /ab{1,3}bc/;179string = 'abbbbc';180actualmatch = string.match(pattern);181expectedmatch = Array('abbbbc');182addThis();183status = inSection(15);184pattern = /ab{3,4}bc/;185string = 'abbbbc';186actualmatch = string.match(pattern);187expectedmatch = Array('abbbbc');188addThis();189status = inSection(16);190pattern = /ab?bc/;191string = 'abbc';192actualmatch = string.match(pattern);193expectedmatch = Array('abbc');194addThis();195status = inSection(17);196pattern = /ab?bc/;197string = 'abc';198actualmatch = string.match(pattern);199expectedmatch = Array('abc');200addThis();201status = inSection(18);202pattern = /ab{0,1}bc/;203string = 'abc';204actualmatch = string.match(pattern);205expectedmatch = Array('abc');206addThis();207status = inSection(19);208pattern = /ab?c/;209string = 'abc';210actualmatch = string.match(pattern);211expectedmatch = Array('abc');212addThis();213status = inSection(20);214pattern = /ab{0,1}c/;215string = 'abc';216actualmatch = string.match(pattern);217expectedmatch = Array('abc');218addThis();219status = inSection(21);220pattern = /^abc$/;221string = 'abc';222actualmatch = string.match(pattern);223expectedmatch = Array('abc');224addThis();225status = inSection(22);226pattern = /^abc/;227string = 'abcc';228actualmatch = string.match(pattern);229expectedmatch = Array('abc');230addThis();231status = inSection(23);232pattern = /abc$/;233string = 'aabc';234actualmatch = string.match(pattern);235expectedmatch = Array('abc');236addThis();237status = inSection(24);238pattern = /^/;239string = 'abc';240actualmatch = string.match(pattern);241expectedmatch = Array('');242addThis();243status = inSection(25);244pattern = /$/;245string = 'abc';246actualmatch = string.match(pattern);247expectedmatch = Array('');248addThis();249status = inSection(26);250pattern = /a.c/;251string = 'abc';252actualmatch = string.match(pattern);253expectedmatch = Array('abc');254addThis();255status = inSection(27);256pattern = /a.c/;257string = 'axc';258actualmatch = string.match(pattern);259expectedmatch = Array('axc');260addThis();261status = inSection(28);262pattern = /a.*c/;263string = 'axyzc';264actualmatch = string.match(pattern);265expectedmatch = Array('axyzc');266addThis();267status = inSection(29);268pattern = /a[bc]d/;269string = 'abd';270actualmatch = string.match(pattern);271expectedmatch = Array('abd');272addThis();273status = inSection(30);274pattern = /a[b-d]e/;275string = 'ace';276actualmatch = string.match(pattern);277expectedmatch = Array('ace');278addThis();279status = inSection(31);280pattern = /a[b-d]/;281string = 'aac';282actualmatch = string.match(pattern);283expectedmatch = Array('ac');284addThis();285status = inSection(32);286pattern = /a[-b]/;287string = 'a-';288actualmatch = string.match(pattern);289expectedmatch = Array('a-');290addThis();291status = inSection(33);292pattern = /a[b-]/;293string = 'a-';294actualmatch = string.match(pattern);295expectedmatch = Array('a-');296addThis();297status = inSection(34);298pattern = /a]/;299string = 'a]';300actualmatch = string.match(pattern);301expectedmatch = Array('a]');302addThis();303/* Perl supports ] & ^] inside a [], ECMA does not304pattern = /a[]]b/;305status = inSection(35);306string = 'a]b';307actualmatch = string.match(pattern);308expectedmatch = Array('a]b');309addThis();310*/311status = inSection(36);312pattern = /a[^bc]d/;313string = 'aed';314actualmatch = string.match(pattern);315expectedmatch = Array('aed');316addThis();317status = inSection(37);318pattern = /a[^-b]c/;319string = 'adc';320actualmatch = string.match(pattern);321expectedmatch = Array('adc');322addThis();323/* Perl supports ] & ^] inside a [], ECMA does not324status = inSection(38);325pattern = /a[^]b]c/;326string = 'adc';327actualmatch = string.match(pattern);328expectedmatch = Array('adc');329addThis();330*/331status = inSection(39);332pattern = /\ba\b/;333string = 'a-';334actualmatch = string.match(pattern);335expectedmatch = Array('a');336addThis();337status = inSection(40);338pattern = /\ba\b/;339string = '-a';340actualmatch = string.match(pattern);341expectedmatch = Array('a');342addThis();343status = inSection(41);344pattern = /\ba\b/;345string = '-a-';346actualmatch = string.match(pattern);347expectedmatch = Array('a');348addThis();349status = inSection(42);350pattern = /\By\b/;351string = 'xy';352actualmatch = string.match(pattern);353expectedmatch = Array('y');354addThis();355status = inSection(43);356pattern = /\by\B/;357string = 'yz';358actualmatch = string.match(pattern);359expectedmatch = Array('y');360addThis();361status = inSection(44);362pattern = /\By\B/;363string = 'xyz';364actualmatch = string.match(pattern);365expectedmatch = Array('y');366addThis();367status = inSection(45);368pattern = /\w/;369string = 'a';370actualmatch = string.match(pattern);371expectedmatch = Array('a');372addThis();373status = inSection(46);374pattern = /\W/;375string = '-';376actualmatch = string.match(pattern);377expectedmatch = Array('-');378addThis();379status = inSection(47);380pattern = /a\Sb/;381string = 'a-b';382actualmatch = string.match(pattern);383expectedmatch = Array('a-b');384addThis();385status = inSection(48);386pattern = /\d/;387string = '1';388actualmatch = string.match(pattern);389expectedmatch = Array('1');390addThis();391status = inSection(49);392pattern = /\D/;393string = '-';394actualmatch = string.match(pattern);395expectedmatch = Array('-');396addThis();397status = inSection(50);398pattern = /[\w]/;399string = 'a';400actualmatch = string.match(pattern);401expectedmatch = Array('a');402addThis();403status = inSection(51);404pattern = /[\W]/;405string = '-';406actualmatch = string.match(pattern);407expectedmatch = Array('-');408addThis();409status = inSection(52);410pattern = /a[\S]b/;411string = 'a-b';412actualmatch = string.match(pattern);413expectedmatch = Array('a-b');414addThis();415status = inSection(53);416pattern = /[\d]/;417string = '1';418actualmatch = string.match(pattern);419expectedmatch = Array('1');420addThis();421status = inSection(54);422pattern = /[\D]/;423string = '-';424actualmatch = string.match(pattern);425expectedmatch = Array('-');426addThis();427status = inSection(55);428pattern = /ab|cd/;429string = 'abc';430actualmatch = string.match(pattern);431expectedmatch = Array('ab');432addThis();433status = inSection(56);434pattern = /ab|cd/;435string = 'abcd';436actualmatch = string.match(pattern);437expectedmatch = Array('ab');438addThis();439status = inSection(57);440pattern = /()ef/;441string = 'def';442actualmatch = string.match(pattern);443expectedmatch = Array('ef', '');444addThis();445status = inSection(58);446pattern = /a\(b/;447string = 'a(b';448actualmatch = string.match(pattern);449expectedmatch = Array('a(b');450addThis();451status = inSection(59);452pattern = /a\(*b/;453string = 'ab';454actualmatch = string.match(pattern);455expectedmatch = Array('ab');456addThis();457status = inSection(60);458pattern = /a\(*b/;459string = 'a((b';460actualmatch = string.match(pattern);461expectedmatch = Array('a((b');462addThis();463status = inSection(61);464pattern = /a\\b/;465string = 'a\\b';466actualmatch = string.match(pattern);467expectedmatch = Array('a\\b');468addThis();469status = inSection(62);470pattern = /((a))/;471string = 'abc';472actualmatch = string.match(pattern);473expectedmatch = Array('a', 'a', 'a');474addThis();475status = inSection(63);476pattern = /(a)b(c)/;477string = 'abc';478actualmatch = string.match(pattern);479expectedmatch = Array('abc', 'a', 'c');480addThis();481status = inSection(64);482pattern = /a+b+c/;483string = 'aabbabc';484actualmatch = string.match(pattern);485expectedmatch = Array('abc');486addThis();487status = inSection(65);488pattern = /a{1,}b{1,}c/;489string = 'aabbabc';490actualmatch = string.match(pattern);491expectedmatch = Array('abc');492addThis();493status = inSection(66);494pattern = /a.+?c/;495string = 'abcabc';496actualmatch = string.match(pattern);497expectedmatch = Array('abc');498addThis();499status = inSection(67);500pattern = /(a+|b)*/;501string = 'ab';502actualmatch = string.match(pattern);503expectedmatch = Array('ab', 'b');504addThis();505status = inSection(68);506pattern = /(a+|b){0,}/;507string = 'ab';508actualmatch = string.match(pattern);509expectedmatch = Array('ab', 'b');510addThis();511status = inSection(69);512pattern = /(a+|b)+/;513string = 'ab';514actualmatch = string.match(pattern);515expectedmatch = Array('ab', 'b');516addThis();517status = inSection(70);518pattern = /(a+|b){1,}/;519string = 'ab';520actualmatch = string.match(pattern);521expectedmatch = Array('ab', 'b');522addThis();523status = inSection(71);524pattern = /(a+|b)?/;525string = 'ab';526actualmatch = string.match(pattern);527expectedmatch = Array('a', 'a');528addThis();529status = inSection(72);530pattern = /(a+|b){0,1}/;531string = 'ab';532actualmatch = string.match(pattern);533expectedmatch = Array('a', 'a');534addThis();535status = inSection(73);536pattern = /[^ab]*/;537string = 'cde';538actualmatch = string.match(pattern);539expectedmatch = Array('cde');540addThis();541status = inSection(74);542pattern = /([abc])*d/;543string = 'abbbcd';544actualmatch = string.match(pattern);545expectedmatch = Array('abbbcd', 'c');546addThis();547status = inSection(75);548pattern = /([abc])*bcd/;549string = 'abcd';550actualmatch = string.match(pattern);551expectedmatch = Array('abcd', 'a');552addThis();553status = inSection(76);554pattern = /a|b|c|d|e/;555string = 'e';556actualmatch = string.match(pattern);557expectedmatch = Array('e');558addThis();559status = inSection(77);560pattern = /(a|b|c|d|e)f/;561string = 'ef';562actualmatch = string.match(pattern);563expectedmatch = Array('ef', 'e');564addThis();565status = inSection(78);566pattern = /abcd*efg/;567string = 'abcdefg';568actualmatch = string.match(pattern);569expectedmatch = Array('abcdefg');570addThis();571status = inSection(79);572pattern = /ab*/;573string = 'xabyabbbz';574actualmatch = string.match(pattern);575expectedmatch = Array('ab');576addThis();577status = inSection(80);578pattern = /ab*/;579string = 'xayabbbz';580actualmatch = string.match(pattern);581expectedmatch = Array('a');582addThis();583status = inSection(81);584pattern = /(ab|cd)e/;585string = 'abcde';586actualmatch = string.match(pattern);587expectedmatch = Array('cde', 'cd');588addThis();589status = inSection(82);590pattern = /[abhgefdc]ij/;591string = 'hij';592actualmatch = string.match(pattern);593expectedmatch = Array('hij');594addThis();595status = inSection(83);596pattern = /(abc|)ef/;597string = 'abcdef';598actualmatch = string.match(pattern);599expectedmatch = Array('ef', '');600addThis();601status = inSection(84);602pattern = /(a|b)c*d/;603string = 'abcd';604actualmatch = string.match(pattern);605expectedmatch = Array('bcd', 'b');606addThis();607status = inSection(85);608pattern = /(ab|ab*)bc/;609string = 'abc';610actualmatch = string.match(pattern);611expectedmatch = Array('abc', 'a');612addThis();613status = inSection(86);614pattern = /a([bc]*)c*/;615string = 'abc';616actualmatch = string.match(pattern);617expectedmatch = Array('abc', 'bc');618addThis();619status = inSection(87);620pattern = /a([bc]*)(c*d)/;621string = 'abcd';622actualmatch = string.match(pattern);623expectedmatch = Array('abcd', 'bc', 'd');624addThis();625status = inSection(88);626pattern = /a([bc]+)(c*d)/;627string = 'abcd';628actualmatch = string.match(pattern);629expectedmatch = Array('abcd', 'bc', 'd');630addThis();631status = inSection(89);632pattern = /a([bc]*)(c+d)/;633string = 'abcd';634actualmatch = string.match(pattern);635expectedmatch = Array('abcd', 'b', 'cd');636addThis();637status = inSection(90);638pattern = /a[bcd]*dcdcde/;639string = 'adcdcde';640actualmatch = string.match(pattern);641expectedmatch = Array('adcdcde');642addThis();643status = inSection(91);644pattern = /(ab|a)b*c/;645string = 'abc';646actualmatch = string.match(pattern);647expectedmatch = Array('abc', 'ab');648addThis();649status = inSection(92);650pattern = /((a)(b)c)(d)/;651string = 'abcd';652actualmatch = string.match(pattern);653expectedmatch = Array('abcd', 'abc', 'a', 'b', 'd');654addThis();655status = inSection(93);656pattern = /[a-zA-Z_][a-zA-Z0-9_]*/;657string = 'alpha';658actualmatch = string.match(pattern);659expectedmatch = Array('alpha');660addThis();661status = inSection(94);662pattern = /^a(bc+|b[eh])g|.h$/;663string = 'abh';664actualmatch = string.match(pattern);665expectedmatch = Array('bh', undefined);666addThis();667status = inSection(95);668pattern = /(bc+d$|ef*g.|h?i(j|k))/;669string = 'effgz';670actualmatch = string.match(pattern);671expectedmatch = Array('effgz', 'effgz', undefined);672addThis();673status = inSection(96);674pattern = /(bc+d$|ef*g.|h?i(j|k))/;675string = 'ij';676actualmatch = string.match(pattern);677expectedmatch = Array('ij', 'ij', 'j');678addThis();679status = inSection(97);680pattern = /(bc+d$|ef*g.|h?i(j|k))/;681string = 'reffgz';682actualmatch = string.match(pattern);683expectedmatch = Array('effgz', 'effgz', undefined);684addThis();685status = inSection(98);686pattern = /((((((((((a))))))))))/;687string = 'a';688actualmatch = string.match(pattern);689expectedmatch = Array('a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a');690addThis();691status = inSection(99);692pattern = /((((((((((a))))))))))\10/;693string = 'aa';694actualmatch = string.match(pattern);695expectedmatch = Array('aa', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a');696addThis();697status = inSection(100);698pattern = /((((((((((a))))))))))/;699string = 'a!';700actualmatch = string.match(pattern);701expectedmatch = Array('a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a');702addThis();703status = inSection(101);704pattern = /(((((((((a)))))))))/;705string = 'a';706actualmatch = string.match(pattern);707expectedmatch = Array('a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a');708addThis();709status = inSection(102);710pattern = /(.*)c(.*)/;711string = 'abcde';712actualmatch = string.match(pattern);713expectedmatch = Array('abcde', 'ab', 'de');714addThis();715status = inSection(103);716pattern = /abcd/;717string = 'abcd';718actualmatch = string.match(pattern);719expectedmatch = Array('abcd');720addThis();721status = inSection(104);722pattern = /a(bc)d/;723string = 'abcd';724actualmatch = string.match(pattern);725expectedmatch = Array('abcd', 'bc');726addThis();727status = inSection(105);728pattern = /a[-]?c/;729string = 'ac';730actualmatch = string.match(pattern);731expectedmatch = Array('ac');732addThis();733status = inSection(106);734pattern = /(abc)\1/;735string = 'abcabc';736actualmatch = string.match(pattern);737expectedmatch = Array('abcabc', 'abc');738addThis();739status = inSection(107);740pattern = /([a-c]*)\1/;741string = 'abcabc';742actualmatch = string.match(pattern);743expectedmatch = Array('abcabc', 'abc');744addThis();745status = inSection(108);746pattern = /(a)|\1/;747string = 'a';748actualmatch = string.match(pattern);749expectedmatch = Array('a', 'a');750addThis();751status = inSection(109);752pattern = /(([a-c])b*?\2)*/;753string = 'ababbbcbc';754actualmatch = string.match(pattern);755expectedmatch = Array('ababb', 'bb', 'b');756addThis();757status = inSection(110);758pattern = /(([a-c])b*?\2){3}/;759string = 'ababbbcbc';760actualmatch = string.match(pattern);761expectedmatch = Array('ababbbcbc', 'cbc', 'c');762addThis();763/* Can't refer to a capture before it's encountered & completed764status = inSection(111);765pattern = /((\3|b)\2(a)x)+/;766string = 'aaaxabaxbaaxbbax';767actualmatch = string.match(pattern);768expectedmatch = Array('bbax', 'bbax', 'b', 'a');769addThis();770status = inSection(112);771pattern = /((\3|b)\2(a)){2,}/;772string = 'bbaababbabaaaaabbaaaabba';773actualmatch = string.match(pattern);774expectedmatch = Array('bbaaaabba', 'bba', 'b', 'a');775addThis();776*/777status = inSection(113);778pattern = /abc/i;779string = 'ABC';780actualmatch = string.match(pattern);781expectedmatch = Array('ABC');782addThis();783status = inSection(114);784pattern = /abc/i;785string = 'XABCY';786actualmatch = string.match(pattern);787expectedmatch = Array('ABC');788addThis();789status = inSection(115);790pattern = /abc/i;791string = 'ABABC';792actualmatch = string.match(pattern);793expectedmatch = Array('ABC');794addThis();795status = inSection(116);796pattern = /ab*c/i;797string = 'ABC';798actualmatch = string.match(pattern);799expectedmatch = Array('ABC');800addThis();801status = inSection(117);802pattern = /ab*bc/i;803string = 'ABC';804actualmatch = string.match(pattern);805expectedmatch = Array('ABC');806addThis();807status = inSection(118);808pattern = /ab*bc/i;809string = 'ABBC';810actualmatch = string.match(pattern);811expectedmatch = Array('ABBC');812addThis();813status = inSection(119);814pattern = /ab*?bc/i;815string = 'ABBBBC';816actualmatch = string.match(pattern);817expectedmatch = Array('ABBBBC');818addThis();819status = inSection(120);820pattern = /ab{0,}?bc/i;821string = 'ABBBBC';822actualmatch = string.match(pattern);823expectedmatch = Array('ABBBBC');824addThis();825status = inSection(121);826pattern = /ab+?bc/i;827string = 'ABBC';828actualmatch = string.match(pattern);829expectedmatch = Array('ABBC');830addThis();831status = inSection(122);832pattern = /ab+bc/i;833string = 'ABBBBC';834actualmatch = string.match(pattern);835expectedmatch = Array('ABBBBC');836addThis();837status = inSection(123);838pattern = /ab{1,}?bc/i;839string = 'ABBBBC';840actualmatch = string.match(pattern);841expectedmatch = Array('ABBBBC');842addThis();843status = inSection(124);844pattern = /ab{1,3}?bc/i;845string = 'ABBBBC';846actualmatch = string.match(pattern);847expectedmatch = Array('ABBBBC');848addThis();849status = inSection(125);850pattern = /ab{3,4}?bc/i;851string = 'ABBBBC';852actualmatch = string.match(pattern);853expectedmatch = Array('ABBBBC');854addThis();855status = inSection(126);856pattern = /ab??bc/i;857string = 'ABBC';858actualmatch = string.match(pattern);859expectedmatch = Array('ABBC');860addThis();861status = inSection(127);862pattern = /ab??bc/i;863string = 'ABC';864actualmatch = string.match(pattern);865expectedmatch = Array('ABC');866addThis();867status = inSection(128);868pattern = /ab{0,1}?bc/i;869string = 'ABC';870actualmatch = string.match(pattern);871expectedmatch = Array('ABC');872addThis();873status = inSection(129);874pattern = /ab??c/i;875string = 'ABC';876actualmatch = string.match(pattern);877expectedmatch = Array('ABC');878addThis();879status = inSection(130);880pattern = /ab{0,1}?c/i;881string = 'ABC';882actualmatch = string.match(pattern);883expectedmatch = Array('ABC');884addThis();885status = inSection(131);886pattern = /^abc$/i;887string = 'ABC';888actualmatch = string.match(pattern);889expectedmatch = Array('ABC');890addThis();891status = inSection(132);892pattern = /^abc/i;893string = 'ABCC';894actualmatch = string.match(pattern);895expectedmatch = Array('ABC');896addThis();897status = inSection(133);898pattern = /abc$/i;899string = 'AABC';900actualmatch = string.match(pattern);901expectedmatch = Array('ABC');902addThis();903status = inSection(134);904pattern = /^/i;905string = 'ABC';906actualmatch = string.match(pattern);907expectedmatch = Array('');908addThis();909status = inSection(135);910pattern = /$/i;911string = 'ABC';912actualmatch = string.match(pattern);913expectedmatch = Array('');914addThis();915status = inSection(136);916pattern = /a.c/i;917string = 'ABC';918actualmatch = string.match(pattern);919expectedmatch = Array('ABC');920addThis();921status = inSection(137);922pattern = /a.c/i;923string = 'AXC';924actualmatch = string.match(pattern);925expectedmatch = Array('AXC');926addThis();927status = inSection(138);928pattern = /a.*?c/i;929string = 'AXYZC';930actualmatch = string.match(pattern);931expectedmatch = Array('AXYZC');932addThis();933status = inSection(139);934pattern = /a[bc]d/i;935string = 'ABD';936actualmatch = string.match(pattern);937expectedmatch = Array('ABD');938addThis();939status = inSection(140);940pattern = /a[b-d]e/i;941string = 'ACE';942actualmatch = string.match(pattern);943expectedmatch = Array('ACE');944addThis();945status = inSection(141);946pattern = /a[b-d]/i;947string = 'AAC';948actualmatch = string.match(pattern);949expectedmatch = Array('AC');950addThis();951status = inSection(142);952pattern = /a[-b]/i;953string = 'A-';954actualmatch = string.match(pattern);955expectedmatch = Array('A-');956addThis();957status = inSection(143);958pattern = /a[b-]/i;959string = 'A-';960actualmatch = string.match(pattern);961expectedmatch = Array('A-');962addThis();963status = inSection(144);964pattern = /a]/i;965string = 'A]';966actualmatch = string.match(pattern);967expectedmatch = Array('A]');968addThis();969/* Perl supports ] & ^] inside a [], ECMA does not970status = inSection(145);971pattern = /a[]]b/i;972string = 'A]B';973actualmatch = string.match(pattern);974expectedmatch = Array('A]B');975addThis();976*/977status = inSection(146);978pattern = /a[^bc]d/i;979string = 'AED';980actualmatch = string.match(pattern);981expectedmatch = Array('AED');982addThis();983status = inSection(147);984pattern = /a[^-b]c/i;985string = 'ADC';986actualmatch = string.match(pattern);987expectedmatch = Array('ADC');988addThis();989/* Perl supports ] & ^] inside a [], ECMA does not990status = inSection(148);991pattern = /a[^]b]c/i;992string = 'ADC';993actualmatch = string.match(pattern);994expectedmatch = Array('ADC');995addThis();996*/997status = inSection(149);998pattern = /ab|cd/i;999string = 'ABC';1000actualmatch = string.match(pattern);1001expectedmatch = Array('AB');1002addThis();1003status = inSection(150);1004pattern = /ab|cd/i;1005string = 'ABCD';1006actualmatch = string.match(pattern);1007expectedmatch = Array('AB');1008addThis();1009status = inSection(151);1010pattern = /()ef/i;1011string = 'DEF';1012actualmatch = string.match(pattern);1013expectedmatch = Array('EF', '');1014addThis();1015status = inSection(152);1016pattern = /a\(b/i;1017string = 'A(B';1018actualmatch = string.match(pattern);1019expectedmatch = Array('A(B');1020addThis();1021status = inSection(153);1022pattern = /a\(*b/i;1023string = 'AB';1024actualmatch = string.match(pattern);1025expectedmatch = Array('AB');1026addThis();1027status = inSection(154);1028pattern = /a\(*b/i;1029string = 'A((B';1030actualmatch = string.match(pattern);1031expectedmatch = Array('A((B');1032addThis();1033status = inSection(155);1034pattern = /a\\b/i;1035string = 'A\\B';1036actualmatch = string.match(pattern);1037expectedmatch = Array('A\\B');1038addThis();1039status = inSection(156);1040pattern = /((a))/i;1041string = 'ABC';1042actualmatch = string.match(pattern);1043expectedmatch = Array('A', 'A', 'A');1044addThis();1045status = inSection(157);1046pattern = /(a)b(c)/i;1047string = 'ABC';1048actualmatch = string.match(pattern);1049expectedmatch = Array('ABC', 'A', 'C');1050addThis();1051status = inSection(158);1052pattern = /a+b+c/i;1053string = 'AABBABC';1054actualmatch = string.match(pattern);1055expectedmatch = Array('ABC');1056addThis();1057status = inSection(159);1058pattern = /a{1,}b{1,}c/i;1059string = 'AABBABC';1060actualmatch = string.match(pattern);1061expectedmatch = Array('ABC');1062addThis();1063status = inSection(160);1064pattern = /a.+?c/i;1065string = 'ABCABC';1066actualmatch = string.match(pattern);1067expectedmatch = Array('ABC');1068addThis();1069status = inSection(161);1070pattern = /a.*?c/i;1071string = 'ABCABC';1072actualmatch = string.match(pattern);1073expectedmatch = Array('ABC');1074addThis();1075status = inSection(162);1076pattern = /a.{0,5}?c/i;1077string = 'ABCABC';1078actualmatch = string.match(pattern);1079expectedmatch = Array('ABC');1080addThis();1081status = inSection(163);1082pattern = /(a+|b)*/i;1083string = 'AB';1084actualmatch = string.match(pattern);1085expectedmatch = Array('AB', 'B');1086addThis();1087status = inSection(164);1088pattern = /(a+|b){0,}/i;1089string = 'AB';1090actualmatch = string.match(pattern);1091expectedmatch = Array('AB', 'B');1092addThis();1093status = inSection(165);1094pattern = /(a+|b)+/i;1095string = 'AB';1096actualmatch = string.match(pattern);1097expectedmatch = Array('AB', 'B');1098addThis();1099status = inSection(166);1100pattern = /(a+|b){1,}/i;1101string = 'AB';1102actualmatch = string.match(pattern);1103expectedmatch = Array('AB', 'B');1104addThis();1105status = inSection(167);1106pattern = /(a+|b)?/i;1107string = 'AB';1108actualmatch = string.match(pattern);1109expectedmatch = Array('A', 'A');1110addThis();1111status = inSection(168);1112pattern = /(a+|b){0,1}/i;1113string = 'AB';1114actualmatch = string.match(pattern);1115expectedmatch = Array('A', 'A');1116addThis();1117status = inSection(169);1118pattern = /(a+|b){0,1}?/i;1119string = 'AB';1120actualmatch = string.match(pattern);1121expectedmatch = Array('', undefined);1122addThis();1123status = inSection(170);1124pattern = /[^ab]*/i;1125string = 'CDE';1126actualmatch = string.match(pattern);1127expectedmatch = Array('CDE');1128addThis();1129status = inSection(171);1130pattern = /([abc])*d/i;1131string = 'ABBBCD';1132actualmatch = string.match(pattern);1133expectedmatch = Array('ABBBCD', 'C');1134addThis();1135status = inSection(172);1136pattern = /([abc])*bcd/i;1137string = 'ABCD';1138actualmatch = string.match(pattern);1139expectedmatch = Array('ABCD', 'A');1140addThis();1141status = inSection(173);1142pattern = /a|b|c|d|e/i;1143string = 'E';1144actualmatch = string.match(pattern);1145expectedmatch = Array('E');1146addThis();1147status = inSection(174);1148pattern = /(a|b|c|d|e)f/i;1149string = 'EF';1150actualmatch = string.match(pattern);1151expectedmatch = Array('EF', 'E');1152addThis();1153status = inSection(175);1154pattern = /abcd*efg/i;1155string = 'ABCDEFG';1156actualmatch = string.match(pattern);1157expectedmatch = Array('ABCDEFG');1158addThis();1159status = inSection(176);1160pattern = /ab*/i;1161string = 'XABYABBBZ';1162actualmatch = string.match(pattern);1163expectedmatch = Array('AB');1164addThis();1165status = inSection(177);1166pattern = /ab*/i;1167string = 'XAYABBBZ';1168actualmatch = string.match(pattern);1169expectedmatch = Array('A');1170addThis();1171status = inSection(178);1172pattern = /(ab|cd)e/i;1173string = 'ABCDE';1174actualmatch = string.match(pattern);1175expectedmatch = Array('CDE', 'CD');1176addThis();1177status = inSection(179);1178pattern = /[abhgefdc]ij/i;1179string = 'HIJ';1180actualmatch = string.match(pattern);1181expectedmatch = Array('HIJ');1182addThis();1183status = inSection(180);1184pattern = /(abc|)ef/i;1185string = 'ABCDEF';1186actualmatch = string.match(pattern);1187expectedmatch = Array('EF', '');1188addThis();1189status = inSection(181);1190pattern = /(a|b)c*d/i;1191string = 'ABCD';1192actualmatch = string.match(pattern);1193expectedmatch = Array('BCD', 'B');1194addThis();1195status = inSection(182);1196pattern = /(ab|ab*)bc/i;1197string = 'ABC';1198actualmatch = string.match(pattern);1199expectedmatch = Array('ABC', 'A');1200addThis();1201status = inSection(183);1202pattern = /a([bc]*)c*/i;1203string = 'ABC';1204actualmatch = string.match(pattern);1205expectedmatch = Array('ABC', 'BC');1206addThis();1207status = inSection(184);1208pattern = /a([bc]*)(c*d)/i;1209string = 'ABCD';1210actualmatch = string.match(pattern);1211expectedmatch = Array('ABCD', 'BC', 'D');1212addThis();1213status = inSection(185);1214pattern = /a([bc]+)(c*d)/i;1215string = 'ABCD';1216actualmatch = string.match(pattern);1217expectedmatch = Array('ABCD', 'BC', 'D');1218addThis();1219status = inSection(186);1220pattern = /a([bc]*)(c+d)/i;1221string = 'ABCD';1222actualmatch = string.match(pattern);1223expectedmatch = Array('ABCD', 'B', 'CD');1224addThis();1225status = inSection(187);1226pattern = /a[bcd]*dcdcde/i;1227string = 'ADCDCDE';1228actualmatch = string.match(pattern);1229expectedmatch = Array('ADCDCDE');1230addThis();1231status = inSection(188);1232pattern = /(ab|a)b*c/i;1233string = 'ABC';1234actualmatch = string.match(pattern);1235expectedmatch = Array('ABC', 'AB');1236addThis();1237status = inSection(189);1238pattern = /((a)(b)c)(d)/i;1239string = 'ABCD';1240actualmatch = string.match(pattern);1241expectedmatch = Array('ABCD', 'ABC', 'A', 'B', 'D');1242addThis();1243status = inSection(190);1244pattern = /[a-zA-Z_][a-zA-Z0-9_]*/i;1245string = 'ALPHA';1246actualmatch = string.match(pattern);1247expectedmatch = Array('ALPHA');1248addThis();1249status = inSection(191);1250pattern = /^a(bc+|b[eh])g|.h$/i;1251string = 'ABH';1252actualmatch = string.match(pattern);1253expectedmatch = Array('BH', undefined);1254addThis();1255status = inSection(192);1256pattern = /(bc+d$|ef*g.|h?i(j|k))/i;1257string = 'EFFGZ';1258actualmatch = string.match(pattern);1259expectedmatch = Array('EFFGZ', 'EFFGZ', undefined);1260addThis();1261status = inSection(193);1262pattern = /(bc+d$|ef*g.|h?i(j|k))/i;1263string = 'IJ';1264actualmatch = string.match(pattern);1265expectedmatch = Array('IJ', 'IJ', 'J');1266addThis();1267status = inSection(194);1268pattern = /(bc+d$|ef*g.|h?i(j|k))/i;1269string = 'REFFGZ';1270actualmatch = string.match(pattern);1271expectedmatch = Array('EFFGZ', 'EFFGZ', undefined);1272addThis();1273status = inSection(195);1274pattern = /((((((((((a))))))))))/i;1275string = 'A';1276actualmatch = string.match(pattern);1277expectedmatch = Array('A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A');1278addThis();1279status = inSection(196);1280pattern = /((((((((((a))))))))))\10/i;1281string = 'AA';1282actualmatch = string.match(pattern);1283expectedmatch = Array('AA', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A');1284addThis();1285status = inSection(197);1286pattern = /((((((((((a))))))))))/i;1287string = 'A!';1288actualmatch = string.match(pattern);1289expectedmatch = Array('A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A');1290addThis();1291status = inSection(198);1292pattern = /(((((((((a)))))))))/i;1293string = 'A';1294actualmatch = string.match(pattern);1295expectedmatch = Array('A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A');1296addThis();1297status = inSection(199);1298pattern = /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a))))))))))/i;1299string = 'A';1300actualmatch = string.match(pattern);1301expectedmatch = Array('A', 'A');1302addThis();1303status = inSection(200);1304pattern = /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/i;1305string = 'C';1306actualmatch = string.match(pattern);1307expectedmatch = Array('C', 'C');1308addThis();1309status = inSection(201);1310pattern = /(.*)c(.*)/i;1311string = 'ABCDE';1312actualmatch = string.match(pattern);1313expectedmatch = Array('ABCDE', 'AB', 'DE');1314addThis();1315status = inSection(202);1316pattern = /abcd/i;1317string = 'ABCD';1318actualmatch = string.match(pattern);1319expectedmatch = Array('ABCD');1320addThis();1321status = inSection(203);1322pattern = /a(bc)d/i;1323string = 'ABCD';1324actualmatch = string.match(pattern);1325expectedmatch = Array('ABCD', 'BC');1326addThis();1327status = inSection(204);1328pattern = /a[-]?c/i;1329string = 'AC';1330actualmatch = string.match(pattern);1331expectedmatch = Array('AC');1332addThis();1333status = inSection(205);1334pattern = /(abc)\1/i;1335string = 'ABCABC';1336actualmatch = string.match(pattern);1337expectedmatch = Array('ABCABC', 'ABC');1338addThis();1339status = inSection(206);1340pattern = /([a-c]*)\1/i;1341string = 'ABCABC';1342actualmatch = string.match(pattern);1343expectedmatch = Array('ABCABC', 'ABC');1344addThis();1345status = inSection(207);1346pattern = /a(?!b)./;1347string = 'abad';1348actualmatch = string.match(pattern);1349expectedmatch = Array('ad');1350addThis();1351status = inSection(208);1352pattern = /a(?=d)./;1353string = 'abad';1354actualmatch = string.match(pattern);1355expectedmatch = Array('ad');1356addThis();1357status = inSection(209);1358pattern = /a(?=c|d)./;1359string = 'abad';1360actualmatch = string.match(pattern);1361expectedmatch = Array('ad');1362addThis();1363status = inSection(210);1364pattern = /a(?:b|c|d)(.)/;1365string = 'ace';1366actualmatch = string.match(pattern);1367expectedmatch = Array('ace', 'e');1368addThis();1369status = inSection(211);1370pattern = /a(?:b|c|d)*(.)/;1371string = 'ace';1372actualmatch = string.match(pattern);1373expectedmatch = Array('ace', 'e');1374addThis();1375status = inSection(212);1376pattern = /a(?:b|c|d)+?(.)/;1377string = 'ace';1378actualmatch = string.match(pattern);1379expectedmatch = Array('ace', 'e');1380addThis();1381status = inSection(213);1382pattern = /a(?:b|c|d)+?(.)/;1383string = 'acdbcdbe';1384actualmatch = string.match(pattern);1385expectedmatch = Array('acd', 'd');1386addThis();1387status = inSection(214);1388pattern = /a(?:b|c|d)+(.)/;1389string = 'acdbcdbe';1390actualmatch = string.match(pattern);1391expectedmatch = Array('acdbcdbe', 'e');1392addThis();1393status = inSection(215);1394pattern = /a(?:b|c|d){2}(.)/;1395string = 'acdbcdbe';1396actualmatch = string.match(pattern);1397expectedmatch = Array('acdb', 'b');1398addThis();1399status = inSection(216);1400pattern = /a(?:b|c|d){4,5}(.)/;1401string = 'acdbcdbe';1402actualmatch = string.match(pattern);1403expectedmatch = Array('acdbcdb', 'b');1404addThis();1405status = inSection(217);1406pattern = /a(?:b|c|d){4,5}?(.)/;1407string = 'acdbcdbe';1408actualmatch = string.match(pattern);1409expectedmatch = Array('acdbcd', 'd');1410addThis();1411// MODIFIED - ECMA has different rules for paren contents1412status = inSection(218);1413pattern = /((foo)|(bar))*/;1414string = 'foobar';1415actualmatch = string.match(pattern);1416//expectedmatch = Array('foobar', 'bar', 'foo', 'bar');1417expectedmatch = Array('foobar', 'bar', undefined, 'bar');1418addThis();1419status = inSection(219);1420pattern = /a(?:b|c|d){6,7}(.)/;1421string = 'acdbcdbe';1422actualmatch = string.match(pattern);1423expectedmatch = Array('acdbcdbe', 'e');1424addThis();1425status = inSection(220);1426pattern = /a(?:b|c|d){6,7}?(.)/;1427string = 'acdbcdbe';1428actualmatch = string.match(pattern);1429expectedmatch = Array('acdbcdbe', 'e');1430addThis();1431status = inSection(221);1432pattern = /a(?:b|c|d){5,6}(.)/;1433string = 'acdbcdbe';1434actualmatch = string.match(pattern);1435expectedmatch = Array('acdbcdbe', 'e');1436addThis();1437status = inSection(222);1438pattern = /a(?:b|c|d){5,6}?(.)/;1439string = 'acdbcdbe';1440actualmatch = string.match(pattern);1441expectedmatch = Array('acdbcdb', 'b');1442addThis();1443status = inSection(223);1444pattern = /a(?:b|c|d){5,7}(.)/;1445string = 'acdbcdbe';1446actualmatch = string.match(pattern);1447expectedmatch = Array('acdbcdbe', 'e');1448addThis();1449status = inSection(224);1450pattern = /a(?:b|c|d){5,7}?(.)/;1451string = 'acdbcdbe';1452actualmatch = string.match(pattern);1453expectedmatch = Array('acdbcdb', 'b');1454addThis();1455status = inSection(225);1456pattern = /a(?:b|(c|e){1,2}?|d)+?(.)/;1457string = 'ace';1458actualmatch = string.match(pattern);1459expectedmatch = Array('ace', 'c', 'e');1460addThis();1461status = inSection(226);1462pattern = /^(.+)?B/;1463string = 'AB';1464actualmatch = string.match(pattern);1465expectedmatch = Array('AB', 'A');1466addThis();1467/* MODIFIED - ECMA has different rules for paren contents */1468status = inSection(227);1469pattern = /^([^a-z])|(\^)$/;1470string = '.';1471actualmatch = string.match(pattern);1472//expectedmatch = Array('.', '.', '');1473expectedmatch = Array('.', '.', undefined);1474addThis();1475status = inSection(228);1476pattern = /^[<>]&/;1477string = '<&OUT';1478actualmatch = string.match(pattern);1479expectedmatch = Array('<&');1480addThis();1481/* Can't refer to a capture before it's encountered & completed1482status = inSection(229);1483pattern = /^(a\1?){4}$/;1484string = 'aaaaaaaaaa';1485actualmatch = string.match(pattern);1486expectedmatch = Array('aaaaaaaaaa', 'aaaa');1487addThis();1488status = inSection(230);1489pattern = /^(a(?(1)\1)){4}$/;1490string = 'aaaaaaaaaa';1491actualmatch = string.match(pattern);1492expectedmatch = Array('aaaaaaaaaa', 'aaaa');1493addThis();1494*/1495status = inSection(231);1496pattern = /((a{4})+)/;1497string = 'aaaaaaaaa';1498actualmatch = string.match(pattern);1499expectedmatch = Array('aaaaaaaa', 'aaaaaaaa', 'aaaa');1500addThis();1501status = inSection(232);1502pattern = /(((aa){2})+)/;1503string = 'aaaaaaaaaa';1504actualmatch = string.match(pattern);1505expectedmatch = Array('aaaaaaaa', 'aaaaaaaa', 'aaaa', 'aa');1506addThis();1507status = inSection(233);1508pattern = /(((a{2}){2})+)/;1509string = 'aaaaaaaaaa';1510actualmatch = string.match(pattern);1511expectedmatch = Array('aaaaaaaa', 'aaaaaaaa', 'aaaa', 'aa');1512addThis();1513status = inSection(234);1514pattern = /(?:(f)(o)(o)|(b)(a)(r))*/;1515string = 'foobar';1516actualmatch = string.match(pattern);1517//expectedmatch = Array('foobar', 'f', 'o', 'o', 'b', 'a', 'r');1518expectedmatch = Array('foobar', undefined, undefined, undefined, 'b', 'a', 'r');1519addThis();1520/* ECMA supports (?: (?= and (?! but doesn't support (?< etc.1521status = inSection(235);1522pattern = /(?<=a)b/;1523string = 'ab';1524actualmatch = string.match(pattern);1525expectedmatch = Array('b');1526addThis();1527status = inSection(236);1528pattern = /(?<!c)b/;1529string = 'ab';1530actualmatch = string.match(pattern);1531expectedmatch = Array('b');1532addThis();1533status = inSection(237);1534pattern = /(?<!c)b/;1535string = 'b';1536actualmatch = string.match(pattern);1537expectedmatch = Array('b');1538addThis();1539status = inSection(238);1540pattern = /(?<!c)b/;1541string = 'b';1542actualmatch = string.match(pattern);1543expectedmatch = Array('b');1544addThis();1545*/1546status = inSection(239);1547pattern = /(?:..)*a/;1548string = 'aba';1549actualmatch = string.match(pattern);1550expectedmatch = Array('aba');1551addThis();1552status = inSection(240);1553pattern = /(?:..)*?a/;1554string = 'aba';1555actualmatch = string.match(pattern);1556expectedmatch = Array('a');1557addThis();1558/*1559 * MODIFIED - ECMA has different rules for paren contents. Note1560 * this regexp has two non-capturing parens, and one capturing1561 *1562 * The issue: shouldn't the match be ['ab', undefined]? Because the1563 * '\1' matches the undefined value of the second iteration of the '*'1564 * (in which the 'b' part of the '|' matches). But Perl wants ['ab','b'].1565 *1566 * Answer: waldemar@netscape.com:1567 *1568 * The correct answer is ['ab', undefined]. Perl doesn't match1569 * ECMAScript here, and I'd say that Perl is wrong in this case.1570 */1571status = inSection(241);1572pattern = /^(?:b|a(?=(.)))*\1/;1573string = 'abc';1574actualmatch = string.match(pattern);1575//expectedmatch = Array('ab', 'b');1576expectedmatch = Array('ab', undefined);1577addThis();1578status = inSection(242);1579pattern = /^(){3,5}/;1580string = 'abc';1581actualmatch = string.match(pattern);1582expectedmatch = Array('', '');1583addThis();1584status = inSection(243);1585pattern = /^(a+)*ax/;1586string = 'aax';1587actualmatch = string.match(pattern);1588expectedmatch = Array('aax', 'a');1589addThis();1590status = inSection(244);1591pattern = /^((a|b)+)*ax/;1592string = 'aax';1593actualmatch = string.match(pattern);1594expectedmatch = Array('aax', 'a', 'a');1595addThis();1596status = inSection(245);1597pattern = /^((a|bc)+)*ax/;1598string = 'aax';1599actualmatch = string.match(pattern);1600expectedmatch = Array('aax', 'a', 'a');1601addThis();1602/* MODIFIED - ECMA has different rules for paren contents */1603status = inSection(246);1604pattern = /(a|x)*ab/;1605string = 'cab';1606actualmatch = string.match(pattern);1607//expectedmatch = Array('ab', '');1608expectedmatch = Array('ab', undefined);1609addThis();1610status = inSection(247);1611pattern = /(a)*ab/;1612string = 'cab';1613actualmatch = string.match(pattern);1614expectedmatch = Array('ab', undefined);1615addThis();1616/* ECMA doesn't support (?imsx or (?-imsx1617status = inSection(248);1618pattern = /(?:(?i)a)b/;1619string = 'ab';1620actualmatch = string.match(pattern);1621expectedmatch = Array('ab');1622addThis();1623status = inSection(249);1624pattern = /((?i)a)b/;1625string = 'ab';1626actualmatch = string.match(pattern);1627expectedmatch = Array('ab', 'a');1628addThis();1629status = inSection(250);1630pattern = /(?:(?i)a)b/;1631string = 'Ab';1632actualmatch = string.match(pattern);1633expectedmatch = Array('Ab');1634addThis();1635status = inSection(251);1636pattern = /((?i)a)b/;1637string = 'Ab';1638actualmatch = string.match(pattern);1639expectedmatch = Array('Ab', 'A');1640addThis();1641status = inSection(252);1642pattern = /(?i:a)b/;1643string = 'ab';1644actualmatch = string.match(pattern);1645expectedmatch = Array('ab');1646addThis();1647status = inSection(253);1648pattern = /((?i:a))b/;1649string = 'ab';1650actualmatch = string.match(pattern);1651expectedmatch = Array('ab', 'a');1652addThis();1653status = inSection(254);1654pattern = /(?i:a)b/;1655string = 'Ab';1656actualmatch = string.match(pattern);1657expectedmatch = Array('Ab');1658addThis();1659status = inSection(255);1660pattern = /((?i:a))b/;1661string = 'Ab';1662actualmatch = string.match(pattern);1663expectedmatch = Array('Ab', 'A');1664addThis();1665status = inSection(256);1666pattern = /(?:(?-i)a)b/i;1667string = 'ab';1668actualmatch = string.match(pattern);1669expectedmatch = Array('ab');1670addThis();1671status = inSection(257);1672pattern = /((?-i)a)b/i;1673string = 'ab';1674actualmatch = string.match(pattern);1675expectedmatch = Array('ab', 'a');1676addThis();1677status = inSection(258);1678pattern = /(?:(?-i)a)b/i;1679string = 'aB';1680actualmatch = string.match(pattern);1681expectedmatch = Array('aB');1682addThis();1683status = inSection(259);1684pattern = /((?-i)a)b/i;1685string = 'aB';1686actualmatch = string.match(pattern);1687expectedmatch = Array('aB', 'a');1688addThis();1689status = inSection(260);1690pattern = /(?:(?-i)a)b/i;1691string = 'aB';1692actualmatch = string.match(pattern);1693expectedmatch = Array('aB');1694addThis();1695status = inSection(261);1696pattern = /((?-i)a)b/i;1697string = 'aB';1698actualmatch = string.match(pattern);1699expectedmatch = Array('aB', 'a');1700addThis();1701status = inSection(262);1702pattern = /(?-i:a)b/i;1703string = 'ab';1704actualmatch = string.match(pattern);1705expectedmatch = Array('ab');1706addThis();1707status = inSection(263);1708pattern = /((?-i:a))b/i;1709string = 'ab';1710actualmatch = string.match(pattern);1711expectedmatch = Array('ab', 'a');1712addThis();1713status = inSection(264);1714pattern = /(?-i:a)b/i;1715string = 'aB';1716actualmatch = string.match(pattern);1717expectedmatch = Array('aB');1718addThis();1719status = inSection(265);1720pattern = /((?-i:a))b/i;1721string = 'aB';1722actualmatch = string.match(pattern);1723expectedmatch = Array('aB', 'a');1724addThis();1725status = inSection(266);1726pattern = /(?-i:a)b/i;1727string = 'aB';1728actualmatch = string.match(pattern);1729expectedmatch = Array('aB');1730addThis();1731status = inSection(267);1732pattern = /((?-i:a))b/i;1733string = 'aB';1734actualmatch = string.match(pattern);1735expectedmatch = Array('aB', 'a');1736addThis();1737status = inSection(268);1738pattern = /((?s-i:a.))b/i;1739string = 'a\nB';1740actualmatch = string.match(pattern);1741expectedmatch = Array('a\nB', 'a\n');1742addThis();1743*/1744status = inSection(269);1745pattern = /(?:c|d)(?:)(?:a(?:)(?:b)(?:b(?:))(?:b(?:)(?:b)))/;1746string = 'cabbbb';1747actualmatch = string.match(pattern);1748expectedmatch = Array('cabbbb');1749addThis();1750status = inSection(270);1751pattern = /(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/;1752string = 'caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb';1753actualmatch = string.match(pattern);1754expectedmatch = Array('caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb');1755addThis();1756status = inSection(271);1757pattern = /(ab)\d\1/i;1758string = 'Ab4ab';1759actualmatch = string.match(pattern);1760expectedmatch = Array('Ab4ab', 'Ab');1761addThis();1762status = inSection(272);1763pattern = /(ab)\d\1/i;1764string = 'ab4Ab';1765actualmatch = string.match(pattern);1766expectedmatch = Array('ab4Ab', 'ab');1767addThis();1768status = inSection(273);1769pattern = /foo\w*\d{4}baz/;1770string = 'foobar1234baz';1771actualmatch = string.match(pattern);1772expectedmatch = Array('foobar1234baz');1773addThis();1774status = inSection(274);1775pattern = /x(~~)*(?:(?:F)?)?/;1776string = 'x~~';1777actualmatch = string.match(pattern);1778expectedmatch = Array('x~~', '~~');1779addThis();1780/* Perl supports (?# but JS doesn't1781status = inSection(275);1782pattern = /^a(?#xxx){3}c/;1783string = 'aaac';1784actualmatch = string.match(pattern);1785expectedmatch = Array('aaac');1786addThis();1787*/1788/* ECMA doesn't support (?< etc1789status = inSection(276);1790pattern = /(?<![cd])[ab]/;1791string = 'dbaacb';1792actualmatch = string.match(pattern);1793expectedmatch = Array('a');1794addThis();1795status = inSection(277);1796pattern = /(?<!(c|d))[ab]/;1797string = 'dbaacb';1798actualmatch = string.match(pattern);1799expectedmatch = Array('a');1800addThis();1801status = inSection(278);1802pattern = /(?<!cd)[ab]/;1803string = 'cdaccb';1804actualmatch = string.match(pattern);1805expectedmatch = Array('b');1806addThis();1807status = inSection(279);1808pattern = /((?s)^a(.))((?m)^b$)/;1809string = 'a\nb\nc\n';1810actualmatch = string.match(pattern);1811expectedmatch = Array('a\nb', 'a\n', '\n', 'b');1812addThis();1813status = inSection(280);1814pattern = /((?m)^b$)/;1815string = 'a\nb\nc\n';1816actualmatch = string.match(pattern);1817expectedmatch = Array('b', 'b');1818addThis();1819status = inSection(281);1820pattern = /(?m)^b/;1821string = 'a\nb\n';1822actualmatch = string.match(pattern);1823expectedmatch = Array('b');1824addThis();1825status = inSection(282);1826pattern = /(?m)^(b)/;1827string = 'a\nb\n';1828actualmatch = string.match(pattern);1829expectedmatch = Array('b', 'b');1830addThis();1831status = inSection(283);1832pattern = /((?m)^b)/;1833string = 'a\nb\n';1834actualmatch = string.match(pattern);1835expectedmatch = Array('b', 'b');1836addThis();1837status = inSection(284);1838pattern = /\n((?m)^b)/;1839string = 'a\nb\n';1840actualmatch = string.match(pattern);1841expectedmatch = Array('\nb', 'b');1842addThis();1843status = inSection(285);1844pattern = /((?s).)c(?!.)/;1845string = 'a\nb\nc\n';1846actualmatch = string.match(pattern);1847expectedmatch = Array('\nc', '\n');1848addThis();1849status = inSection(286);1850pattern = /((?s).)c(?!.)/;1851string = 'a\nb\nc\n';1852actualmatch = string.match(pattern);1853expectedmatch = Array('\nc', '\n');1854addThis();1855status = inSection(287);1856pattern = /((?s)b.)c(?!.)/;1857string = 'a\nb\nc\n';1858actualmatch = string.match(pattern);1859expectedmatch = Array('b\nc', 'b\n');1860addThis();1861status = inSection(288);1862pattern = /((?s)b.)c(?!.)/;1863string = 'a\nb\nc\n';1864actualmatch = string.match(pattern);1865expectedmatch = Array('b\nc', 'b\n');1866addThis();1867status = inSection(289);1868pattern = /((?m)^b)/;1869string = 'a\nb\nc\n';1870actualmatch = string.match(pattern);1871expectedmatch = Array('b', 'b');1872addThis();1873*/1874/* ECMA doesn't support (?(condition)1875status = inSection(290);1876pattern = /(?(1)b|a)/;1877string = 'a';1878actualmatch = string.match(pattern);1879expectedmatch = Array('a');1880addThis();1881status = inSection(291);1882pattern = /(x)?(?(1)b|a)/;1883string = 'a';1884actualmatch = string.match(pattern);1885expectedmatch = Array('a');1886addThis();1887status = inSection(292);1888pattern = /()?(?(1)b|a)/;1889string = 'a';1890actualmatch = string.match(pattern);1891expectedmatch = Array('a');1892addThis();1893status = inSection(293);1894pattern = /()?(?(1)a|b)/;1895string = 'a';1896actualmatch = string.match(pattern);1897expectedmatch = Array('a');1898addThis();1899status = inSection(294);1900pattern = /^(\()?blah(?(1)(\)))$/;1901string = '(blah)';1902actualmatch = string.match(pattern);1903expectedmatch = Array('(blah)', '(', ')');1904addThis();1905status = inSection(295);1906pattern = /^(\()?blah(?(1)(\)))$/;1907string = 'blah';1908actualmatch = string.match(pattern);1909expectedmatch = Array('blah');1910addThis();1911status = inSection(296);1912pattern = /^(\(+)?blah(?(1)(\)))$/;1913string = '(blah)';1914actualmatch = string.match(pattern);1915expectedmatch = Array('(blah)', '(', ')');1916addThis();1917status = inSection(297);1918pattern = /^(\(+)?blah(?(1)(\)))$/;1919string = 'blah';1920actualmatch = string.match(pattern);1921expectedmatch = Array('blah');1922addThis();1923status = inSection(298);1924pattern = /(?(?!a)b|a)/;1925string = 'a';1926actualmatch = string.match(pattern);1927expectedmatch = Array('a');1928addThis();1929status = inSection(299);1930pattern = /(?(?=a)a|b)/;1931string = 'a';1932actualmatch = string.match(pattern);1933expectedmatch = Array('a');1934addThis();1935*/1936status = inSection(300);1937pattern = /(?=(a+?))(\1ab)/;1938string = 'aaab';1939actualmatch = string.match(pattern);1940expectedmatch = Array('aab', 'a', 'aab');1941addThis();1942status = inSection(301);1943pattern = /(\w+:)+/;1944string = 'one:';1945actualmatch = string.match(pattern);1946expectedmatch = Array('one:', 'one:');1947addThis();1948/* ECMA doesn't support (?< etc1949status = inSection(302);1950pattern = /$(?<=^(a))/;1951string = 'a';1952actualmatch = string.match(pattern);1953expectedmatch = Array('', 'a');1954addThis();1955*/1956status = inSection(303);1957pattern = /(?=(a+?))(\1ab)/;1958string = 'aaab';1959actualmatch = string.match(pattern);1960expectedmatch = Array('aab', 'a', 'aab');1961addThis();1962/* MODIFIED - ECMA has different rules for paren contents */1963status = inSection(304);1964pattern = /([\w:]+::)?(\w+)$/;1965string = 'abcd';1966actualmatch = string.match(pattern);1967//expectedmatch = Array('abcd', '', 'abcd');1968expectedmatch = Array('abcd', undefined, 'abcd');1969addThis();1970status = inSection(305);1971pattern = /([\w:]+::)?(\w+)$/;1972string = 'xy:z:::abcd';1973actualmatch = string.match(pattern);1974expectedmatch = Array('xy:z:::abcd', 'xy:z:::', 'abcd');1975addThis();1976status = inSection(306);1977pattern = /^[^bcd]*(c+)/;1978string = 'aexycd';1979actualmatch = string.match(pattern);1980expectedmatch = Array('aexyc', 'c');1981addThis();1982status = inSection(307);1983pattern = /(a*)b+/;1984string = 'caab';1985actualmatch = string.match(pattern);1986expectedmatch = Array('aab', 'aa');1987addThis();1988/* MODIFIED - ECMA has different rules for paren contents */1989status = inSection(308);1990pattern = /([\w:]+::)?(\w+)$/;1991string = 'abcd';1992actualmatch = string.match(pattern);1993//expectedmatch = Array('abcd', '', 'abcd');1994expectedmatch = Array('abcd', undefined, 'abcd');1995addThis();1996status = inSection(309);1997pattern = /([\w:]+::)?(\w+)$/;1998string = 'xy:z:::abcd';1999actualmatch = string.match(pattern);2000expectedmatch = Array('xy:z:::abcd', 'xy:z:::', 'abcd');2001addThis();2002status = inSection(310);2003pattern = /^[^bcd]*(c+)/;2004string = 'aexycd';2005actualmatch = string.match(pattern);2006expectedmatch = Array('aexyc', 'c');2007addThis();2008/* ECMA doesn't support (?>2009status = inSection(311);2010pattern = /(?>a+)b/;2011string = 'aaab';2012actualmatch = string.match(pattern);2013expectedmatch = Array('aaab');2014addThis();2015*/2016status = inSection(312);2017pattern = /([[:]+)/;2018string = 'a:[b]:';2019actualmatch = string.match(pattern);2020expectedmatch = Array(':[', ':[');2021addThis();2022status = inSection(313);2023pattern = /([[=]+)/;2024string = 'a=[b]=';2025actualmatch = string.match(pattern);2026expectedmatch = Array('=[', '=[');2027addThis();2028status = inSection(314);2029pattern = /([[.]+)/;2030string = 'a.[b].';2031actualmatch = string.match(pattern);2032expectedmatch = Array('.[', '.[');2033addThis();2034/* ECMA doesn't have rules for [:2035status = inSection(315);2036pattern = /[a[:]b[:c]/;2037string = 'abc';2038actualmatch = string.match(pattern);2039expectedmatch = Array('abc');2040addThis();2041*/2042/* ECMA doesn't support (?>2043status = inSection(316);2044pattern = /((?>a+)b)/;2045string = 'aaab';2046actualmatch = string.match(pattern);2047expectedmatch = Array('aaab', 'aaab');2048addThis();2049status = inSection(317);2050pattern = /(?>(a+))b/;2051string = 'aaab';2052actualmatch = string.match(pattern);2053expectedmatch = Array('aaab', 'aaa');2054addThis();2055status = inSection(318);2056pattern = /((?>[^()]+)|\([^()]*\))+/;2057string = '((abc(ade)ufh()()x';2058actualmatch = string.match(pattern);2059expectedmatch = Array('abc(ade)ufh()()x', 'x');2060addThis();2061*/2062/* Perl has \Z has end-of-line, ECMA doesn't2063status = inSection(319);2064pattern = /\Z/;2065string = 'a\nb\n';2066actualmatch = string.match(pattern);2067expectedmatch = Array('');2068addThis();2069status = inSection(320);2070pattern = /\z/;2071string = 'a\nb\n';2072actualmatch = string.match(pattern);2073expectedmatch = Array('');2074addThis();2075*/2076status = inSection(321);2077pattern = /$/;2078string = 'a\nb\n';2079actualmatch = string.match(pattern);2080expectedmatch = Array('');2081addThis();2082/* Perl has \Z has end-of-line, ECMA doesn't2083status = inSection(322);2084pattern = /\Z/;2085string = 'b\na\n';2086actualmatch = string.match(pattern);2087expectedmatch = Array('');2088addThis();2089status = inSection(323);2090pattern = /\z/;2091string = 'b\na\n';2092actualmatch = string.match(pattern);2093expectedmatch = Array('');2094addThis();2095*/2096status = inSection(324);2097pattern = /$/;2098string = 'b\na\n';2099actualmatch = string.match(pattern);2100expectedmatch = Array('');2101addThis();2102/* Perl has \Z has end-of-line, ECMA doesn't2103status = inSection(325);2104pattern = /\Z/;2105string = 'b\na';2106actualmatch = string.match(pattern);2107expectedmatch = Array('');2108addThis();2109status = inSection(326);2110pattern = /\z/;2111string = 'b\na';2112actualmatch = string.match(pattern);2113expectedmatch = Array('');2114addThis();2115*/2116status = inSection(327);2117pattern = /$/;2118string = 'b\na';2119actualmatch = string.match(pattern);2120expectedmatch = Array('');2121addThis();2122/* Perl has \Z has end-of-line, ECMA doesn't2123status = inSection(328);2124pattern = /\Z/m;2125string = 'a\nb\n';2126actualmatch = string.match(pattern);2127expectedmatch = Array('');2128addThis();2129status = inSection(329);2130pattern = /\z/m;2131string = 'a\nb\n';2132actualmatch = string.match(pattern);2133expectedmatch = Array('');2134addThis();2135*/2136status = inSection(330);2137pattern = /$/m;2138string = 'a\nb\n';2139actualmatch = string.match(pattern);2140expectedmatch = Array('');2141addThis();2142/* Perl has \Z has end-of-line, ECMA doesn't2143status = inSection(331);2144pattern = /\Z/m;2145string = 'b\na\n';2146actualmatch = string.match(pattern);2147expectedmatch = Array('');2148addThis();2149status = inSection(332);2150pattern = /\z/m;2151string = 'b\na\n';2152actualmatch = string.match(pattern);2153expectedmatch = Array('');2154addThis();2155*/2156status = inSection(333);2157pattern = /$/m;2158string = 'b\na\n';2159actualmatch = string.match(pattern);2160expectedmatch = Array('');2161addThis();2162/* Perl has \Z has end-of-line, ECMA doesn't2163status = inSection(334);2164pattern = /\Z/m;2165string = 'b\na';2166actualmatch = string.match(pattern);2167expectedmatch = Array('');2168addThis();2169status = inSection(335);2170pattern = /\z/m;2171string = 'b\na';2172actualmatch = string.match(pattern);2173expectedmatch = Array('');2174addThis();2175*/2176status = inSection(336);2177pattern = /$/m;2178string = 'b\na';2179actualmatch = string.match(pattern);2180expectedmatch = Array('');2181addThis();2182/* Perl has \Z has end-of-line, ECMA doesn't2183status = inSection(337);2184pattern = /a\Z/;2185string = 'b\na\n';2186actualmatch = string.match(pattern);2187expectedmatch = Array('a');2188addThis();2189*/2190/* $ only matches end of input unless multiline2191status = inSection(338);2192pattern = /a$/;2193string = 'b\na\n';2194actualmatch = string.match(pattern);2195expectedmatch = Array('a');2196addThis();2197*/2198/* Perl has \Z has end-of-line, ECMA doesn't2199status = inSection(339);2200pattern = /a\Z/;2201string = 'b\na';2202actualmatch = string.match(pattern);2203expectedmatch = Array('a');2204addThis();2205status = inSection(340);2206pattern = /a\z/;2207string = 'b\na';2208actualmatch = string.match(pattern);2209expectedmatch = Array('a');2210addThis();2211*/2212status = inSection(341);2213pattern = /a$/;2214string = 'b\na';2215actualmatch = string.match(pattern);2216expectedmatch = Array('a');2217addThis();2218status = inSection(342);2219pattern = /a$/m;2220string = 'a\nb\n';2221actualmatch = string.match(pattern);2222expectedmatch = Array('a');2223addThis();2224/* Perl has \Z has end-of-line, ECMA doesn't2225status = inSection(343);2226pattern = /a\Z/m;2227string = 'b\na\n';2228actualmatch = string.match(pattern);2229expectedmatch = Array('a');2230addThis();2231*/2232status = inSection(344);2233pattern = /a$/m;2234string = 'b\na\n';2235actualmatch = string.match(pattern);2236expectedmatch = Array('a');2237addThis();2238/* Perl has \Z has end-of-line, ECMA doesn't2239status = inSection(345);2240pattern = /a\Z/m;2241string = 'b\na';2242actualmatch = string.match(pattern);2243expectedmatch = Array('a');2244addThis();2245status = inSection(346);2246pattern = /a\z/m;2247string = 'b\na';2248actualmatch = string.match(pattern);2249expectedmatch = Array('a');2250addThis();2251*/2252status = inSection(347);2253pattern = /a$/m;2254string = 'b\na';2255actualmatch = string.match(pattern);2256expectedmatch = Array('a');2257addThis();2258/* Perl has \Z has end-of-line, ECMA doesn't2259status = inSection(348);2260pattern = /aa\Z/;2261string = 'b\naa\n';2262actualmatch = string.match(pattern);2263expectedmatch = Array('aa');2264addThis();2265*/2266/* $ only matches end of input unless multiline2267status = inSection(349);2268pattern = /aa$/;2269string = 'b\naa\n';2270actualmatch = string.match(pattern);2271expectedmatch = Array('aa');2272addThis();2273*/2274/* Perl has \Z has end-of-line, ECMA doesn't2275status = inSection(350);2276pattern = /aa\Z/;2277string = 'b\naa';2278actualmatch = string.match(pattern);2279expectedmatch = Array('aa');2280addThis();2281status = inSection(351);2282pattern = /aa\z/;2283string = 'b\naa';2284actualmatch = string.match(pattern);2285expectedmatch = Array('aa');2286addThis();2287*/2288status = inSection(352);2289pattern = /aa$/;2290string = 'b\naa';2291actualmatch = string.match(pattern);2292expectedmatch = Array('aa');2293addThis();2294status = inSection(353);2295pattern = /aa$/m;2296string = 'aa\nb\n';2297actualmatch = string.match(pattern);2298expectedmatch = Array('aa');2299addThis();2300/* Perl has \Z has end-of-line, ECMA doesn't2301status = inSection(354);2302pattern = /aa\Z/m;2303string = 'b\naa\n';2304actualmatch = string.match(pattern);2305expectedmatch = Array('aa');2306addThis();2307*/2308status = inSection(355);2309pattern = /aa$/m;2310string = 'b\naa\n';2311actualmatch = string.match(pattern);2312expectedmatch = Array('aa');2313addThis();2314/* Perl has \Z has end-of-line, ECMA doesn't2315status = inSection(356);2316pattern = /aa\Z/m;2317string = 'b\naa';2318actualmatch = string.match(pattern);2319expectedmatch = Array('aa');2320addThis();2321status = inSection(357);2322pattern = /aa\z/m;2323string = 'b\naa';2324actualmatch = string.match(pattern);2325expectedmatch = Array('aa');2326addThis();2327*/2328status = inSection(358);2329pattern = /aa$/m;2330string = 'b\naa';2331actualmatch = string.match(pattern);2332expectedmatch = Array('aa');2333addThis();2334/* Perl has \Z has end-of-line, ECMA doesn't2335status = inSection(359);2336pattern = /ab\Z/;2337string = 'b\nab\n';2338actualmatch = string.match(pattern);2339expectedmatch = Array('ab');2340addThis();2341*/2342/* $ only matches end of input unless multiline2343status = inSection(360);2344pattern = /ab$/;2345string = 'b\nab\n';2346actualmatch = string.match(pattern);2347expectedmatch = Array('ab');2348addThis();2349*/2350/* Perl has \Z has end-of-line, ECMA doesn't2351status = inSection(361);2352pattern = /ab\Z/;2353string = 'b\nab';2354actualmatch = string.match(pattern);2355expectedmatch = Array('ab');2356addThis();2357status = inSection(362);2358pattern = /ab\z/;2359string = 'b\nab';2360actualmatch = string.match(pattern);2361expectedmatch = Array('ab');2362addThis();2363*/2364status = inSection(363);2365pattern = /ab$/;2366string = 'b\nab';2367actualmatch = string.match(pattern);2368expectedmatch = Array('ab');2369addThis();2370status = inSection(364);2371pattern = /ab$/m;2372string = 'ab\nb\n';2373actualmatch = string.match(pattern);2374expectedmatch = Array('ab');2375addThis();2376/* Perl has \Z has end-of-line, ECMA doesn't2377status = inSection(365);2378pattern = /ab\Z/m;2379string = 'b\nab\n';2380actualmatch = string.match(pattern);2381expectedmatch = Array('ab');2382addThis();2383*/2384status = inSection(366);2385pattern = /ab$/m;2386string = 'b\nab\n';2387actualmatch = string.match(pattern);2388expectedmatch = Array('ab');2389addThis();2390/* Perl has \Z has end-of-line, ECMA doesn't2391status = inSection(367);2392pattern = /ab\Z/m;2393string = 'b\nab';2394actualmatch = string.match(pattern);2395expectedmatch = Array('ab');2396addThis();2397status = inSection(368);2398pattern = /ab\z/m;2399string = 'b\nab';2400actualmatch = string.match(pattern);2401expectedmatch = Array('ab');2402addThis();2403*/2404status = inSection(369);2405pattern = /ab$/m;2406string = 'b\nab';2407actualmatch = string.match(pattern);2408expectedmatch = Array('ab');2409addThis();2410/* Perl has \Z has end-of-line, ECMA doesn't2411status = inSection(370);2412pattern = /abb\Z/;2413string = 'b\nabb\n';2414actualmatch = string.match(pattern);2415expectedmatch = Array('abb');2416addThis();2417*/2418/* $ only matches end of input unless multiline2419status = inSection(371);2420pattern = /abb$/;2421string = 'b\nabb\n';2422actualmatch = string.match(pattern);2423expectedmatch = Array('abb');2424addThis();2425*/2426/* Perl has \Z has end-of-line, ECMA doesn't2427status = inSection(372);2428pattern = /abb\Z/;2429string = 'b\nabb';2430actualmatch = string.match(pattern);2431expectedmatch = Array('abb');2432addThis();2433status = inSection(373);2434pattern = /abb\z/;2435string = 'b\nabb';2436actualmatch = string.match(pattern);2437expectedmatch = Array('abb');2438addThis();2439*/2440status = inSection(374);2441pattern = /abb$/;2442string = 'b\nabb';2443actualmatch = string.match(pattern);2444expectedmatch = Array('abb');2445addThis();2446status = inSection(375);2447pattern = /abb$/m;2448string = 'abb\nb\n';2449actualmatch = string.match(pattern);2450expectedmatch = Array('abb');2451addThis();2452/* Perl has \Z has end-of-line, ECMA doesn't2453status = inSection(376);2454pattern = /abb\Z/m;2455string = 'b\nabb\n';2456actualmatch = string.match(pattern);2457expectedmatch = Array('abb');2458addThis();2459*/2460status = inSection(377);2461pattern = /abb$/m;2462string = 'b\nabb\n';2463actualmatch = string.match(pattern);2464expectedmatch = Array('abb');2465addThis();2466/* Perl has \Z has end-of-line, ECMA doesn't2467status = inSection(378);2468pattern = /abb\Z/m;2469string = 'b\nabb';2470actualmatch = string.match(pattern);2471expectedmatch = Array('abb');2472addThis();2473status = inSection(379);2474pattern = /abb\z/m;2475string = 'b\nabb';2476actualmatch = string.match(pattern);2477expectedmatch = Array('abb');2478addThis();2479*/2480status = inSection(380);2481pattern = /abb$/m;2482string = 'b\nabb';2483actualmatch = string.match(pattern);2484expectedmatch = Array('abb');2485addThis();2486status = inSection(381);2487pattern = /(^|x)(c)/;2488string = 'ca';2489actualmatch = string.match(pattern);2490expectedmatch = Array('c', '', 'c');2491addThis();2492status = inSection(382);2493pattern = /foo.bart/;2494string = 'foo.bart';2495actualmatch = string.match(pattern);2496expectedmatch = Array('foo.bart');2497addThis();2498status = inSection(383);2499pattern = /^d[x][x][x]/m;2500string = 'abcd\ndxxx';2501actualmatch = string.match(pattern);2502expectedmatch = Array('dxxx');2503addThis();2504status = inSection(384);2505pattern = /tt+$/;2506string = 'xxxtt';2507actualmatch = string.match(pattern);2508expectedmatch = Array('tt');2509addThis();2510/* ECMA spec says that each atom in a range must be a single character2511status = inSection(385);2512pattern = /([a-\d]+)/;2513string = 'za-9z';2514actualmatch = string.match(pattern);2515expectedmatch = Array('9', '9');2516addThis();2517status = inSection(386);2518pattern = /([\d-z]+)/;2519string = 'a0-za';2520actualmatch = string.match(pattern);2521expectedmatch = Array('0-z', '0-z');2522addThis();2523*/2524/* ECMA doesn't support [:2525status = inSection(387);2526pattern = /([a-[:digit:]]+)/;2527string = 'za-9z';2528actualmatch = string.match(pattern);2529expectedmatch = Array('a-9', 'a-9');2530addThis();2531status = inSection(388);2532pattern = /([[:digit:]-z]+)/;2533string = '=0-z=';2534actualmatch = string.match(pattern);2535expectedmatch = Array('0-z', '0-z');2536addThis();2537status = inSection(389);2538pattern = /([[:digit:]-[:alpha:]]+)/;2539string = '=0-z=';2540actualmatch = string.match(pattern);2541expectedmatch = Array('0-z', '0-z');2542addThis();2543*/2544status = inSection(390);2545pattern = /(\d+\.\d+)/;2546string = '3.1415926';2547actualmatch = string.match(pattern);2548expectedmatch = Array('3.1415926', '3.1415926');2549addThis();2550status = inSection(391);2551pattern = /\.c(pp|xx|c)?$/i;2552string = 'IO.c';2553actualmatch = string.match(pattern);2554expectedmatch = Array('.c', undefined);2555addThis();2556status = inSection(392);2557pattern = /(\.c(pp|xx|c)?$)/i;2558string = 'IO.c';2559actualmatch = string.match(pattern);2560expectedmatch = Array('.c', '.c', undefined);2561addThis();2562status = inSection(393);2563pattern = /(^|a)b/;2564string = 'ab';2565actualmatch = string.match(pattern);2566expectedmatch = Array('ab', 'a');2567addThis();2568status = inSection(394);2569pattern = /^([ab]*?)(b)?(c)$/;2570string = 'abac';2571actualmatch = string.match(pattern);2572expectedmatch = Array('abac', 'aba', undefined, 'c');2573addThis();2574status = inSection(395);2575pattern = /^(?:.,){2}c/i;2576string = 'a,b,c';2577actualmatch = string.match(pattern);2578expectedmatch = Array('a,b,c');2579addThis();2580status = inSection(396);2581pattern = /^(.,){2}c/i;2582string = 'a,b,c';2583actualmatch = string.match(pattern);2584expectedmatch = Array('a,b,c', 'b,');2585addThis();2586status = inSection(397);2587pattern = /^(?:[^,]*,){2}c/;2588string = 'a,b,c';2589actualmatch = string.match(pattern);2590expectedmatch = Array('a,b,c');2591addThis();2592status = inSection(398);2593pattern = /^([^,]*,){2}c/;2594string = 'a,b,c';2595actualmatch = string.match(pattern);2596expectedmatch = Array('a,b,c', 'b,');2597addThis();2598status = inSection(399);2599pattern = /^([^,]*,){3}d/;2600string = 'aaa,b,c,d';2601actualmatch = string.match(pattern);2602expectedmatch = Array('aaa,b,c,d', 'c,');2603addThis();2604status = inSection(400);2605pattern = /^([^,]*,){3,}d/;2606string = 'aaa,b,c,d';2607actualmatch = string.match(pattern);2608expectedmatch = Array('aaa,b,c,d', 'c,');2609addThis();2610status = inSection(401);2611pattern = /^([^,]*,){0,3}d/;2612string = 'aaa,b,c,d';2613actualmatch = string.match(pattern);2614expectedmatch = Array('aaa,b,c,d', 'c,');2615addThis();2616status = inSection(402);2617pattern = /^([^,]{1,3},){3}d/i;2618string = 'aaa,b,c,d';2619actualmatch = string.match(pattern);2620expectedmatch = Array('aaa,b,c,d', 'c,');2621addThis();2622status = inSection(403);2623pattern = /^([^,]{1,3},){3,}d/;2624string = 'aaa,b,c,d';2625actualmatch = string.match(pattern);2626expectedmatch = Array('aaa,b,c,d', 'c,');2627addThis();2628status = inSection(404);2629pattern = /^([^,]{1,3},){0,3}d/;2630string = 'aaa,b,c,d';2631actualmatch = string.match(pattern);2632expectedmatch = Array('aaa,b,c,d', 'c,');2633addThis();2634status = inSection(405);2635pattern = /^([^,]{1,},){3}d/;2636string = 'aaa,b,c,d';2637actualmatch = string.match(pattern);2638expectedmatch = Array('aaa,b,c,d', 'c,');2639addThis();2640status = inSection(406);2641pattern = /^([^,]{1,},){3,}d/;2642string = 'aaa,b,c,d';2643actualmatch = string.match(pattern);2644expectedmatch = Array('aaa,b,c,d', 'c,');2645addThis();2646status = inSection(407);2647pattern = /^([^,]{1,},){0,3}d/;2648string = 'aaa,b,c,d';2649actualmatch = string.match(pattern);2650expectedmatch = Array('aaa,b,c,d', 'c,');2651addThis();2652status = inSection(408);2653pattern = /^([^,]{0,3},){3}d/i;2654string = 'aaa,b,c,d';2655actualmatch = string.match(pattern);2656expectedmatch = Array('aaa,b,c,d', 'c,');2657addThis();2658status = inSection(409);2659pattern = /^([^,]{0,3},){3,}d/;2660string = 'aaa,b,c,d';2661actualmatch = string.match(pattern);2662expectedmatch = Array('aaa,b,c,d', 'c,');2663addThis();2664status = inSection(410);2665pattern = /^([^,]{0,3},){0,3}d/;2666string = 'aaa,b,c,d';2667actualmatch = string.match(pattern);2668expectedmatch = Array('aaa,b,c,d', 'c,');2669addThis();2670/* ECMA doesn't support \A2671status = inSection(411);2672pattern = /(?!\A)x/m;2673string = 'a\nxb\n';2674actualmatch = string.match(pattern);2675expectedmatch = Array('\n');2676addThis();2677*/2678status = inSection(412);2679pattern = /^(a(b)?)+$/;2680string = 'aba';2681actualmatch = string.match(pattern);2682expectedmatch = Array('aba', 'a', undefined);2683addThis();2684status = inSection(413);2685pattern = /^(aa(bb)?)+$/;2686string = 'aabbaa';2687actualmatch = string.match(pattern);2688expectedmatch = Array('aabbaa', 'aa', undefined);2689addThis();2690status = inSection(414);2691pattern = /^.{9}abc.*\n/m;2692string = '123\nabcabcabcabc\n';2693actualmatch = string.match(pattern);2694expectedmatch = Array('abcabcabcabc\n');2695addThis();2696status = inSection(415);2697pattern = /^(a)?a$/;2698string = 'a';2699actualmatch = string.match(pattern);2700expectedmatch = Array('a', undefined);2701addThis();2702status = inSection(416);2703pattern = /^(a\1?)(a\1?)(a\2?)(a\3?)$/;2704string = 'aaaaaa';2705actualmatch = string.match(pattern);2706expectedmatch = Array('aaaaaa', 'a', 'aa', 'a', 'aa');2707addThis();2708/* Can't refer to a capture before it's encountered & completed2709status = inSection(417);2710pattern = /^(a\1?){4}$/;2711string = 'aaaaaa';2712actualmatch = string.match(pattern);2713expectedmatch = Array('aaaaaa', 'aaa');2714addThis();2715*/2716status = inSection(418);2717pattern = /^(0+)?(?:x(1))?/;2718string = 'x1';2719actualmatch = string.match(pattern);2720expectedmatch = Array('x1', undefined, '1');2721addThis();2722status = inSection(419);2723pattern = /^([0-9a-fA-F]+)(?:x([0-9a-fA-F]+)?)(?:x([0-9a-fA-F]+))?/;2724string = '012cxx0190';2725actualmatch = string.match(pattern);2726expectedmatch = Array('012cxx0190', '012c', undefined, '0190');2727addThis();2728status = inSection(420);2729pattern = /^(b+?|a){1,2}c/;2730string = 'bbbac';2731actualmatch = string.match(pattern);2732expectedmatch = Array('bbbac', 'a');2733addThis();2734status = inSection(421);2735pattern = /^(b+?|a){1,2}c/;2736string = 'bbbbac';2737actualmatch = string.match(pattern);2738expectedmatch = Array('bbbbac', 'a');2739addThis();2740status = inSection(422);2741pattern = /((?:aaaa|bbbb)cccc)?/;2742string = 'aaaacccc';2743actualmatch = string.match(pattern);2744expectedmatch = Array('aaaacccc', 'aaaacccc');2745addThis();2746status = inSection(423);2747pattern = /((?:aaaa|bbbb)cccc)?/;2748string = 'bbbbcccc';2749actualmatch = string.match(pattern);2750expectedmatch = Array('bbbbcccc', 'bbbbcccc');2751addThis();2752//-----------------------------------------------------------------------------2753test();2754//-----------------------------------------------------------------------------2755function addThis()2756{2757 if(omitCurrentSection())2758 return;2759 statusmessages[i] = status;2760 patterns[i] = pattern;2761 strings[i] = string;2762 actualmatches[i] = actualmatch;2763 expectedmatches[i] = expectedmatch;2764 i++;2765}2766function omitCurrentSection()2767{2768 try2769 {2770 // current section number is in global status variable2771 var n = status.match(/(\d+)/)[1];2772 return ((n < cnLBOUND) || (n > cnUBOUND));2773 }2774 catch(e)2775 {2776 return false;2777 }2778}2779function test()2780{2781 enterFunc ('test');2782 printBugNumber (bug);2783 printStatus (summary);2784 testRegExp(statusmessages, patterns, strings, actualmatches, expectedmatches);2785 exitFunc ('test');...
perlstress-002.js
Source:perlstress-002.js
1/* ***** BEGIN LICENSE BLOCK *****2* Version: NPL 1.1/GPL 2.0/LGPL 2.13*4* The contents of this file are subject to the Netscape Public License5* Version 1.1 (the "License"); you may not use this file except in6* compliance with the License. You may obtain a copy of the License at7* http://www.mozilla.org/NPL/8*9* Software distributed under the License is distributed on an "AS IS" basis,10* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License11* for the specific language governing rights and limitations under the12* License.13*14* The Original Code is JavaScript Engine testing utilities.15*16* The Initial Developer of the Original Code is Netscape Communications Corp.17* Portions created by the Initial Developer are Copyright (C) 200218* the Initial Developer. All Rights Reserved.19*20* Contributor(s): pschwartau@netscape.com, rogerl@netscape.com21*22* Alternatively, the contents of this file may be used under the terms of23* either the GNU General Public License Version 2 or later (the "GPL"), or24* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),25* in which case the provisions of the GPL or the LGPL are applicable instead26* of those above. If you wish to allow use of your version of this file only27* under the terms of either the GPL or the LGPL, and not to allow others to28* use your version of this file under the terms of the NPL, indicate your29* decision by deleting the provisions above and replace them with the notice30* and other provisions required by the GPL or the LGPL. If you do not delete31* the provisions above, a recipient may use your version of this file under32* the terms of any one of the NPL, the GPL or the LGPL.33*34* ***** END LICENSE BLOCK *****35*36*37* Date: 2002-07-0738* SUMMARY: Testing JS RegExp engine against Perl 5 RegExp engine.39* Adjust cnLBOUND, cnUBOUND below to restrict which sections are tested.40*41* This test was created by running various patterns and strings through the42* Perl 5 RegExp engine. We saved the results below to test the JS engine.43*44* Each of the examples below is a negative test; that is, each produces a45* null match in Perl. Thus we set |expectedmatch| = |null| in each section.46*47* NOTE: ECMA/JS and Perl do differ on certain points. We have either commented48* out such sections altogether, or modified them to fit what we expect from JS.49*50* EXAMPLES:51*52* - ECMA does support (?: (?= and (?! operators, but doesn't support (?< etc.53*54* - ECMA doesn't support (?(condition)55*56*/57//-----------------------------------------------------------------------------58var i = 0;59var bug = 85721;60var summary = 'Testing regular expression edge cases';61var cnSingleSpace = ' ';62var status = '';63var statusmessages = new Array();64var pattern = '';65var patterns = new Array();66var string = '';67var strings = new Array();68var actualmatch = '';69var actualmatches = new Array();70var expectedmatch = '';71var expectedmatches = new Array();72var cnLBOUND = 0;73var cnUBOUND = 1000;74status = inSection(1);75pattern = /abc/;76string = 'xbc';77actualmatch = string.match(pattern);78expectedmatch = null;79addThis();80status = inSection(2);81pattern = /abc/;82string = 'axc';83actualmatch = string.match(pattern);84expectedmatch = null;85addThis();86status = inSection(3);87pattern = /abc/;88string = 'abx';89actualmatch = string.match(pattern);90expectedmatch = null;91addThis();92status = inSection(4);93pattern = /ab+bc/;94string = 'abc';95actualmatch = string.match(pattern);96expectedmatch = null;97addThis();98status = inSection(5);99pattern = /ab+bc/;100string = 'abq';101actualmatch = string.match(pattern);102expectedmatch = null;103addThis();104status = inSection(6);105pattern = /ab{1,}bc/;106string = 'abq';107actualmatch = string.match(pattern);108expectedmatch = null;109addThis();110status = inSection(7);111pattern = /ab{4,5}bc/;112string = 'abbbbc';113actualmatch = string.match(pattern);114expectedmatch = null;115addThis();116status = inSection(8);117pattern = /ab?bc/;118string = 'abbbbc';119actualmatch = string.match(pattern);120expectedmatch = null;121addThis();122status = inSection(9);123pattern = /^abc$/;124string = 'abcc';125actualmatch = string.match(pattern);126expectedmatch = null;127addThis();128status = inSection(10);129pattern = /^abc$/;130string = 'aabc';131actualmatch = string.match(pattern);132expectedmatch = null;133addThis();134status = inSection(11);135pattern = /abc$/;136string = 'aabcd';137actualmatch = string.match(pattern);138expectedmatch = null;139addThis();140status = inSection(12);141pattern = /a.*c/;142string = 'axyzd';143actualmatch = string.match(pattern);144expectedmatch = null;145addThis();146status = inSection(13);147pattern = /a[bc]d/;148string = 'abc';149actualmatch = string.match(pattern);150expectedmatch = null;151addThis();152status = inSection(14);153pattern = /a[b-d]e/;154string = 'abd';155actualmatch = string.match(pattern);156expectedmatch = null;157addThis();158status = inSection(15);159pattern = /a[^bc]d/;160string = 'abd';161actualmatch = string.match(pattern);162expectedmatch = null;163addThis();164status = inSection(16);165pattern = /a[^-b]c/;166string = 'a-c';167actualmatch = string.match(pattern);168expectedmatch = null;169addThis();170status = inSection(17);171pattern = /a[^]b]c/;172string = 'a]c';173actualmatch = string.match(pattern);174expectedmatch = null;175addThis();176status = inSection(18);177pattern = /\by\b/;178string = 'xy';179actualmatch = string.match(pattern);180expectedmatch = null;181addThis();182status = inSection(19);183pattern = /\by\b/;184string = 'yz';185actualmatch = string.match(pattern);186expectedmatch = null;187addThis();188status = inSection(20);189pattern = /\by\b/;190string = 'xyz';191actualmatch = string.match(pattern);192expectedmatch = null;193addThis();194status = inSection(21);195pattern = /\Ba\B/;196string = 'a-';197actualmatch = string.match(pattern);198expectedmatch = null;199addThis();200status = inSection(22);201pattern = /\Ba\B/;202string = '-a';203actualmatch = string.match(pattern);204expectedmatch = null;205addThis();206status = inSection(23);207pattern = /\Ba\B/;208string = '-a-';209actualmatch = string.match(pattern);210expectedmatch = null;211addThis();212status = inSection(24);213pattern = /\w/;214string = '-';215actualmatch = string.match(pattern);216expectedmatch = null;217addThis();218status = inSection(25);219pattern = /\W/;220string = 'a';221actualmatch = string.match(pattern);222expectedmatch = null;223addThis();224status = inSection(26);225pattern = /a\sb/;226string = 'a-b';227actualmatch = string.match(pattern);228expectedmatch = null;229addThis();230status = inSection(27);231pattern = /\d/;232string = '-';233actualmatch = string.match(pattern);234expectedmatch = null;235addThis();236status = inSection(28);237pattern = /\D/;238string = '1';239actualmatch = string.match(pattern);240expectedmatch = null;241addThis();242status = inSection(29);243pattern = /[\w]/;244string = '-';245actualmatch = string.match(pattern);246expectedmatch = null;247addThis();248status = inSection(30);249pattern = /[\W]/;250string = 'a';251actualmatch = string.match(pattern);252expectedmatch = null;253addThis();254status = inSection(31);255pattern = /a[\s]b/;256string = 'a-b';257actualmatch = string.match(pattern);258expectedmatch = null;259addThis();260status = inSection(32);261pattern = /[\d]/;262string = '-';263actualmatch = string.match(pattern);264expectedmatch = null;265addThis();266status = inSection(33);267pattern = /[\D]/;268string = '1';269actualmatch = string.match(pattern);270expectedmatch = null;271addThis();272status = inSection(34);273pattern = /$b/;274string = 'b';275actualmatch = string.match(pattern);276expectedmatch = null;277addThis();278status = inSection(35);279pattern = /^(ab|cd)e/;280string = 'abcde';281actualmatch = string.match(pattern);282expectedmatch = null;283addThis();284status = inSection(36);285pattern = /a[bcd]+dcdcde/;286string = 'adcdcde';287actualmatch = string.match(pattern);288expectedmatch = null;289addThis();290status = inSection(37);291pattern = /(bc+d$|ef*g.|h?i(j|k))/;292string = 'effg';293actualmatch = string.match(pattern);294expectedmatch = null;295addThis();296status = inSection(38);297pattern = /(bc+d$|ef*g.|h?i(j|k))/;298string = 'bcdd';299actualmatch = string.match(pattern);300expectedmatch = null;301addThis();302status = inSection(39);303pattern = /[k]/;304string = 'ab';305actualmatch = string.match(pattern);306expectedmatch = null;307addThis();308// MODIFIED - ECMA has different rules for paren contents.309status = inSection(40);310pattern = /(a)|\1/;311string = 'x';312actualmatch = string.match(pattern);313//expectedmatch = null;314expectedmatch = Array("", undefined);315addThis();316// MODIFIED - ECMA has different rules for paren contents.317status = inSection(41);318pattern = /((\3|b)\2(a)x)+/;319string = 'aaxabxbaxbbx';320actualmatch = string.match(pattern);321//expectedmatch = null;322expectedmatch = Array("ax", "ax", "", "a");323addThis();324status = inSection(42);325pattern = /abc/i;326string = 'XBC';327actualmatch = string.match(pattern);328expectedmatch = null;329addThis();330status = inSection(43);331pattern = /abc/i;332string = 'AXC';333actualmatch = string.match(pattern);334expectedmatch = null;335addThis();336status = inSection(44);337pattern = /abc/i;338string = 'ABX';339actualmatch = string.match(pattern);340expectedmatch = null;341addThis();342status = inSection(45);343pattern = /ab+bc/i;344string = 'ABC';345actualmatch = string.match(pattern);346expectedmatch = null;347addThis();348status = inSection(46);349pattern = /ab+bc/i;350string = 'ABQ';351actualmatch = string.match(pattern);352expectedmatch = null;353addThis();354status = inSection(47);355pattern = /ab{1,}bc/i;356string = 'ABQ';357actualmatch = string.match(pattern);358expectedmatch = null;359addThis();360status = inSection(48);361pattern = /ab{4,5}?bc/i;362string = 'ABBBBC';363actualmatch = string.match(pattern);364expectedmatch = null;365addThis();366status = inSection(49);367pattern = /ab??bc/i;368string = 'ABBBBC';369actualmatch = string.match(pattern);370expectedmatch = null;371addThis();372status = inSection(50);373pattern = /^abc$/i;374string = 'ABCC';375actualmatch = string.match(pattern);376expectedmatch = null;377addThis();378status = inSection(51);379pattern = /^abc$/i;380string = 'AABC';381actualmatch = string.match(pattern);382expectedmatch = null;383addThis();384status = inSection(52);385pattern = /a.*c/i;386string = 'AXYZD';387actualmatch = string.match(pattern);388expectedmatch = null;389addThis();390status = inSection(53);391pattern = /a[bc]d/i;392string = 'ABC';393actualmatch = string.match(pattern);394expectedmatch = null;395addThis();396status = inSection(54);397pattern = /a[b-d]e/i;398string = 'ABD';399actualmatch = string.match(pattern);400expectedmatch = null;401addThis();402status = inSection(55);403pattern = /a[^bc]d/i;404string = 'ABD';405actualmatch = string.match(pattern);406expectedmatch = null;407addThis();408status = inSection(56);409pattern = /a[^-b]c/i;410string = 'A-C';411actualmatch = string.match(pattern);412expectedmatch = null;413addThis();414status = inSection(57);415pattern = /a[^]b]c/i;416string = 'A]C';417actualmatch = string.match(pattern);418expectedmatch = null;419addThis();420status = inSection(58);421pattern = /$b/i;422string = 'B';423actualmatch = string.match(pattern);424expectedmatch = null;425addThis();426status = inSection(59);427pattern = /^(ab|cd)e/i;428string = 'ABCDE';429actualmatch = string.match(pattern);430expectedmatch = null;431addThis();432status = inSection(60);433pattern = /a[bcd]+dcdcde/i;434string = 'ADCDCDE';435actualmatch = string.match(pattern);436expectedmatch = null;437addThis();438status = inSection(61);439pattern = /(bc+d$|ef*g.|h?i(j|k))/i;440string = 'EFFG';441actualmatch = string.match(pattern);442expectedmatch = null;443addThis();444status = inSection(62);445pattern = /(bc+d$|ef*g.|h?i(j|k))/i;446string = 'BCDD';447actualmatch = string.match(pattern);448expectedmatch = null;449addThis();450status = inSection(63);451pattern = /[k]/i;452string = 'AB';453actualmatch = string.match(pattern);454expectedmatch = null;455addThis();456status = inSection(64);457pattern = /^(a\1?){4}$/;458string = 'aaaaaaaaa';459actualmatch = string.match(pattern);460expectedmatch = null;461addThis();462status = inSection(65);463pattern = /^(a\1?){4}$/;464string = 'aaaaaaaaaaa';465actualmatch = string.match(pattern);466expectedmatch = null;467addThis();468/* ECMA doesn't support (?(469status = inSection(66);470pattern = /^(a(?(1)\1)){4}$/;471string = 'aaaaaaaaa';472actualmatch = string.match(pattern);473expectedmatch = null;474addThis();475status = inSection(67);476pattern = /^(a(?(1)\1)){4}$/;477string = 'aaaaaaaaaaa';478actualmatch = string.match(pattern);479expectedmatch = null;480addThis();481*/482/* ECMA doesn't support (?<483status = inSection(68);484pattern = /(?<=a)b/;485string = 'cb';486actualmatch = string.match(pattern);487expectedmatch = null;488addThis();489status = inSection(69);490pattern = /(?<=a)b/;491string = 'b';492actualmatch = string.match(pattern);493expectedmatch = null;494addThis();495status = inSection(70);496pattern = /(?<!c)b/;497string = 'cb';498actualmatch = string.match(pattern);499expectedmatch = null;500addThis();501*/502/* ECMA doesn't support (?(condition)503status = inSection(71);504pattern = /(?:(?i)a)b/;505string = 'aB';506actualmatch = string.match(pattern);507expectedmatch = null;508addThis();509status = inSection(72);510pattern = /((?i)a)b/;511string = 'aB';512actualmatch = string.match(pattern);513expectedmatch = null;514addThis();515status = inSection(73);516pattern = /(?i:a)b/;517string = 'aB';518actualmatch = string.match(pattern);519expectedmatch = null;520addThis();521status = inSection(74);522pattern = /((?i:a))b/;523string = 'aB';524actualmatch = string.match(pattern);525expectedmatch = null;526addThis();527status = inSection(75);528pattern = /(?:(?-i)a)b/i;529string = 'Ab';530actualmatch = string.match(pattern);531expectedmatch = null;532addThis();533status = inSection(76);534pattern = /((?-i)a)b/i;535string = 'Ab';536actualmatch = string.match(pattern);537expectedmatch = null;538addThis();539status = inSection(77);540pattern = /(?:(?-i)a)b/i;541string = 'AB';542actualmatch = string.match(pattern);543expectedmatch = null;544addThis();545status = inSection(78);546pattern = /((?-i)a)b/i;547string = 'AB';548actualmatch = string.match(pattern);549expectedmatch = null;550addThis();551status = inSection(79);552pattern = /(?-i:a)b/i;553string = 'Ab';554actualmatch = string.match(pattern);555expectedmatch = null;556addThis();557status = inSection(80);558pattern = /((?-i:a))b/i;559string = 'Ab';560actualmatch = string.match(pattern);561expectedmatch = null;562addThis();563status = inSection(81);564pattern = /(?-i:a)b/i;565string = 'AB';566actualmatch = string.match(pattern);567expectedmatch = null;568addThis();569status = inSection(82);570pattern = /((?-i:a))b/i;571string = 'AB';572actualmatch = string.match(pattern);573expectedmatch = null;574addThis();575status = inSection(83);576pattern = /((?-i:a.))b/i;577string = 'a\nB';578actualmatch = string.match(pattern);579expectedmatch = null;580addThis();581status = inSection(84);582pattern = /((?s-i:a.))b/i;583string = 'B\nB';584actualmatch = string.match(pattern);585expectedmatch = null;586addThis();587*/588/* ECMA doesn't support (?<589status = inSection(85);590pattern = /(?<![cd])b/;591string = 'dbcb';592actualmatch = string.match(pattern);593expectedmatch = null;594addThis();595status = inSection(86);596pattern = /(?<!(c|d))b/;597string = 'dbcb';598actualmatch = string.match(pattern);599expectedmatch = null;600addThis();601*/602status = inSection(87);603pattern = /^(?:a?b?)*$/;604string = 'a--';605actualmatch = string.match(pattern);606expectedmatch = null;607addThis();608status = inSection(88);609pattern = /^b/;610string = 'a\nb\nc\n';611actualmatch = string.match(pattern);612expectedmatch = null;613addThis();614status = inSection(89);615pattern = /()^b/;616string = 'a\nb\nc\n';617actualmatch = string.match(pattern);618expectedmatch = null;619addThis();620/* ECMA doesn't support (?(621status = inSection(90);622pattern = /(?(1)a|b)/;623string = 'a';624actualmatch = string.match(pattern);625expectedmatch = null;626addThis();627status = inSection(91);628pattern = /(x)?(?(1)a|b)/;629string = 'a';630actualmatch = string.match(pattern);631expectedmatch = null;632addThis();633status = inSection(92);634pattern = /()(?(1)b|a)/;635string = 'a';636actualmatch = string.match(pattern);637expectedmatch = null;638addThis();639status = inSection(93);640pattern = /^(\()?blah(?(1)(\)))$/;641string = 'blah)';642actualmatch = string.match(pattern);643expectedmatch = null;644addThis();645status = inSection(94);646pattern = /^(\()?blah(?(1)(\)))$/;647string = '(blah';648actualmatch = string.match(pattern);649expectedmatch = null;650addThis();651status = inSection(95);652pattern = /^(\(+)?blah(?(1)(\)))$/;653string = 'blah)';654actualmatch = string.match(pattern);655expectedmatch = null;656addThis();657status = inSection(96);658pattern = /^(\(+)?blah(?(1)(\)))$/;659string = '(blah';660actualmatch = string.match(pattern);661expectedmatch = null;662addThis();663status = inSection(97);664pattern = /(?(?{0})a|b)/;665string = 'a';666actualmatch = string.match(pattern);667expectedmatch = null;668addThis();669status = inSection(98);670pattern = /(?(?{1})b|a)/;671string = 'a';672actualmatch = string.match(pattern);673expectedmatch = null;674addThis();675status = inSection(99);676pattern = /(?(?!a)a|b)/;677string = 'a';678actualmatch = string.match(pattern);679expectedmatch = null;680addThis();681status = inSection(100);682pattern = /(?(?=a)b|a)/;683string = 'a';684actualmatch = string.match(pattern);685expectedmatch = null;686addThis();687*/688status = inSection(101);689pattern = /^(?=(a+?))\1ab/;690string = 'aaab';691actualmatch = string.match(pattern);692expectedmatch = null;693addThis();694status = inSection(102);695pattern = /^(?=(a+?))\1ab/;696string = 'aaab';697actualmatch = string.match(pattern);698expectedmatch = null;699addThis();700status = inSection(103);701pattern = /([\w:]+::)?(\w+)$/;702string = 'abcd:';703actualmatch = string.match(pattern);704expectedmatch = null;705addThis();706status = inSection(104);707pattern = /([\w:]+::)?(\w+)$/;708string = 'abcd:';709actualmatch = string.match(pattern);710expectedmatch = null;711addThis();712status = inSection(105);713pattern = /(>a+)ab/;714string = 'aaab';715actualmatch = string.match(pattern);716expectedmatch = null;717addThis();718status = inSection(106);719pattern = /a\Z/;720string = 'a\nb\n';721actualmatch = string.match(pattern);722expectedmatch = null;723addThis();724status = inSection(107);725pattern = /a\z/;726string = 'a\nb\n';727actualmatch = string.match(pattern);728expectedmatch = null;729addThis();730status = inSection(108);731pattern = /a$/;732string = 'a\nb\n';733actualmatch = string.match(pattern);734expectedmatch = null;735addThis();736status = inSection(109);737pattern = /a\z/;738string = 'b\na\n';739actualmatch = string.match(pattern);740expectedmatch = null;741addThis();742status = inSection(110);743pattern = /a\z/m;744string = 'a\nb\n';745actualmatch = string.match(pattern);746expectedmatch = null;747addThis();748status = inSection(111);749pattern = /a\z/m;750string = 'b\na\n';751actualmatch = string.match(pattern);752expectedmatch = null;753addThis();754status = inSection(112);755pattern = /aa\Z/;756string = 'aa\nb\n';757actualmatch = string.match(pattern);758expectedmatch = null;759addThis();760status = inSection(113);761pattern = /aa\z/;762string = 'aa\nb\n';763actualmatch = string.match(pattern);764expectedmatch = null;765addThis();766status = inSection(114);767pattern = /aa$/;768string = 'aa\nb\n';769actualmatch = string.match(pattern);770expectedmatch = null;771addThis();772status = inSection(115);773pattern = /aa\z/;774string = 'b\naa\n';775actualmatch = string.match(pattern);776expectedmatch = null;777addThis();778status = inSection(116);779pattern = /aa\z/m;780string = 'aa\nb\n';781actualmatch = string.match(pattern);782expectedmatch = null;783addThis();784status = inSection(117);785pattern = /aa\z/m;786string = 'b\naa\n';787actualmatch = string.match(pattern);788expectedmatch = null;789addThis();790status = inSection(118);791pattern = /aa\Z/;792string = 'ac\nb\n';793actualmatch = string.match(pattern);794expectedmatch = null;795addThis();796status = inSection(119);797pattern = /aa\z/;798string = 'ac\nb\n';799actualmatch = string.match(pattern);800expectedmatch = null;801addThis();802status = inSection(120);803pattern = /aa$/;804string = 'ac\nb\n';805actualmatch = string.match(pattern);806expectedmatch = null;807addThis();808status = inSection(121);809pattern = /aa\Z/;810string = 'b\nac\n';811actualmatch = string.match(pattern);812expectedmatch = null;813addThis();814status = inSection(122);815pattern = /aa\z/;816string = 'b\nac\n';817actualmatch = string.match(pattern);818expectedmatch = null;819addThis();820status = inSection(123);821pattern = /aa$/;822string = 'b\nac\n';823actualmatch = string.match(pattern);824expectedmatch = null;825addThis();826status = inSection(124);827pattern = /aa\Z/;828string = 'b\nac';829actualmatch = string.match(pattern);830expectedmatch = null;831addThis();832status = inSection(125);833pattern = /aa\z/;834string = 'b\nac';835actualmatch = string.match(pattern);836expectedmatch = null;837addThis();838status = inSection(126);839pattern = /aa$/;840string = 'b\nac';841actualmatch = string.match(pattern);842expectedmatch = null;843addThis();844status = inSection(127);845pattern = /aa\Z/m;846string = 'ac\nb\n';847actualmatch = string.match(pattern);848expectedmatch = null;849addThis();850status = inSection(128);851pattern = /aa\z/m;852string = 'ac\nb\n';853actualmatch = string.match(pattern);854expectedmatch = null;855addThis();856status = inSection(129);857pattern = /aa$/m;858string = 'ac\nb\n';859actualmatch = string.match(pattern);860expectedmatch = null;861addThis();862status = inSection(130);863pattern = /aa\Z/m;864string = 'b\nac\n';865actualmatch = string.match(pattern);866expectedmatch = null;867addThis();868status = inSection(131);869pattern = /aa\z/m;870string = 'b\nac\n';871actualmatch = string.match(pattern);872expectedmatch = null;873addThis();874status = inSection(132);875pattern = /aa$/m;876string = 'b\nac\n';877actualmatch = string.match(pattern);878expectedmatch = null;879addThis();880status = inSection(133);881pattern = /aa\Z/m;882string = 'b\nac';883actualmatch = string.match(pattern);884expectedmatch = null;885addThis();886status = inSection(134);887pattern = /aa\z/m;888string = 'b\nac';889actualmatch = string.match(pattern);890expectedmatch = null;891addThis();892status = inSection(135);893pattern = /aa$/m;894string = 'b\nac';895actualmatch = string.match(pattern);896expectedmatch = null;897addThis();898status = inSection(136);899pattern = /aa\Z/;900string = 'ca\nb\n';901actualmatch = string.match(pattern);902expectedmatch = null;903addThis();904status = inSection(137);905pattern = /aa\z/;906string = 'ca\nb\n';907actualmatch = string.match(pattern);908expectedmatch = null;909addThis();910status = inSection(138);911pattern = /aa$/;912string = 'ca\nb\n';913actualmatch = string.match(pattern);914expectedmatch = null;915addThis();916status = inSection(139);917pattern = /aa\Z/;918string = 'b\nca\n';919actualmatch = string.match(pattern);920expectedmatch = null;921addThis();922status = inSection(140);923pattern = /aa\z/;924string = 'b\nca\n';925actualmatch = string.match(pattern);926expectedmatch = null;927addThis();928status = inSection(141);929pattern = /aa$/;930string = 'b\nca\n';931actualmatch = string.match(pattern);932expectedmatch = null;933addThis();934status = inSection(142);935pattern = /aa\Z/;936string = 'b\nca';937actualmatch = string.match(pattern);938expectedmatch = null;939addThis();940status = inSection(143);941pattern = /aa\z/;942string = 'b\nca';943actualmatch = string.match(pattern);944expectedmatch = null;945addThis();946status = inSection(144);947pattern = /aa$/;948string = 'b\nca';949actualmatch = string.match(pattern);950expectedmatch = null;951addThis();952status = inSection(145);953pattern = /aa\Z/m;954string = 'ca\nb\n';955actualmatch = string.match(pattern);956expectedmatch = null;957addThis();958status = inSection(146);959pattern = /aa\z/m;960string = 'ca\nb\n';961actualmatch = string.match(pattern);962expectedmatch = null;963addThis();964status = inSection(147);965pattern = /aa$/m;966string = 'ca\nb\n';967actualmatch = string.match(pattern);968expectedmatch = null;969addThis();970status = inSection(148);971pattern = /aa\Z/m;972string = 'b\nca\n';973actualmatch = string.match(pattern);974expectedmatch = null;975addThis();976status = inSection(149);977pattern = /aa\z/m;978string = 'b\nca\n';979actualmatch = string.match(pattern);980expectedmatch = null;981addThis();982status = inSection(150);983pattern = /aa$/m;984string = 'b\nca\n';985actualmatch = string.match(pattern);986expectedmatch = null;987addThis();988status = inSection(151);989pattern = /aa\Z/m;990string = 'b\nca';991actualmatch = string.match(pattern);992expectedmatch = null;993addThis();994status = inSection(152);995pattern = /aa\z/m;996string = 'b\nca';997actualmatch = string.match(pattern);998expectedmatch = null;999addThis();1000status = inSection(153);1001pattern = /aa$/m;1002string = 'b\nca';1003actualmatch = string.match(pattern);1004expectedmatch = null;1005addThis();1006status = inSection(154);1007pattern = /ab\Z/;1008string = 'ab\nb\n';1009actualmatch = string.match(pattern);1010expectedmatch = null;1011addThis();1012status = inSection(155);1013pattern = /ab\z/;1014string = 'ab\nb\n';1015actualmatch = string.match(pattern);1016expectedmatch = null;1017addThis();1018status = inSection(156);1019pattern = /ab$/;1020string = 'ab\nb\n';1021actualmatch = string.match(pattern);1022expectedmatch = null;1023addThis();1024status = inSection(157);1025pattern = /ab\z/;1026string = 'b\nab\n';1027actualmatch = string.match(pattern);1028expectedmatch = null;1029addThis();1030status = inSection(158);1031pattern = /ab\z/m;1032string = 'ab\nb\n';1033actualmatch = string.match(pattern);1034expectedmatch = null;1035addThis();1036status = inSection(159);1037pattern = /ab\z/m;1038string = 'b\nab\n';1039actualmatch = string.match(pattern);1040expectedmatch = null;1041addThis();1042status = inSection(160);1043pattern = /ab\Z/;1044string = 'ac\nb\n';1045actualmatch = string.match(pattern);1046expectedmatch = null;1047addThis();1048status = inSection(161);1049pattern = /ab\z/;1050string = 'ac\nb\n';1051actualmatch = string.match(pattern);1052expectedmatch = null;1053addThis();1054status = inSection(162);1055pattern = /ab$/;1056string = 'ac\nb\n';1057actualmatch = string.match(pattern);1058expectedmatch = null;1059addThis();1060status = inSection(163);1061pattern = /ab\Z/;1062string = 'b\nac\n';1063actualmatch = string.match(pattern);1064expectedmatch = null;1065addThis();1066status = inSection(164);1067pattern = /ab\z/;1068string = 'b\nac\n';1069actualmatch = string.match(pattern);1070expectedmatch = null;1071addThis();1072status = inSection(165);1073pattern = /ab$/;1074string = 'b\nac\n';1075actualmatch = string.match(pattern);1076expectedmatch = null;1077addThis();1078status = inSection(166);1079pattern = /ab\Z/;1080string = 'b\nac';1081actualmatch = string.match(pattern);1082expectedmatch = null;1083addThis();1084status = inSection(167);1085pattern = /ab\z/;1086string = 'b\nac';1087actualmatch = string.match(pattern);1088expectedmatch = null;1089addThis();1090status = inSection(168);1091pattern = /ab$/;1092string = 'b\nac';1093actualmatch = string.match(pattern);1094expectedmatch = null;1095addThis();1096status = inSection(169);1097pattern = /ab\Z/m;1098string = 'ac\nb\n';1099actualmatch = string.match(pattern);1100expectedmatch = null;1101addThis();1102status = inSection(170);1103pattern = /ab\z/m;1104string = 'ac\nb\n';1105actualmatch = string.match(pattern);1106expectedmatch = null;1107addThis();1108status = inSection(171);1109pattern = /ab$/m;1110string = 'ac\nb\n';1111actualmatch = string.match(pattern);1112expectedmatch = null;1113addThis();1114status = inSection(172);1115pattern = /ab\Z/m;1116string = 'b\nac\n';1117actualmatch = string.match(pattern);1118expectedmatch = null;1119addThis();1120status = inSection(173);1121pattern = /ab\z/m;1122string = 'b\nac\n';1123actualmatch = string.match(pattern);1124expectedmatch = null;1125addThis();1126status = inSection(174);1127pattern = /ab$/m;1128string = 'b\nac\n';1129actualmatch = string.match(pattern);1130expectedmatch = null;1131addThis();1132status = inSection(175);1133pattern = /ab\Z/m;1134string = 'b\nac';1135actualmatch = string.match(pattern);1136expectedmatch = null;1137addThis();1138status = inSection(176);1139pattern = /ab\z/m;1140string = 'b\nac';1141actualmatch = string.match(pattern);1142expectedmatch = null;1143addThis();1144status = inSection(177);1145pattern = /ab$/m;1146string = 'b\nac';1147actualmatch = string.match(pattern);1148expectedmatch = null;1149addThis();1150status = inSection(178);1151pattern = /ab\Z/;1152string = 'ca\nb\n';1153actualmatch = string.match(pattern);1154expectedmatch = null;1155addThis();1156status = inSection(179);1157pattern = /ab\z/;1158string = 'ca\nb\n';1159actualmatch = string.match(pattern);1160expectedmatch = null;1161addThis();1162status = inSection(180);1163pattern = /ab$/;1164string = 'ca\nb\n';1165actualmatch = string.match(pattern);1166expectedmatch = null;1167addThis();1168status = inSection(181);1169pattern = /ab\Z/;1170string = 'b\nca\n';1171actualmatch = string.match(pattern);1172expectedmatch = null;1173addThis();1174status = inSection(182);1175pattern = /ab\z/;1176string = 'b\nca\n';1177actualmatch = string.match(pattern);1178expectedmatch = null;1179addThis();1180status = inSection(183);1181pattern = /ab$/;1182string = 'b\nca\n';1183actualmatch = string.match(pattern);1184expectedmatch = null;1185addThis();1186status = inSection(184);1187pattern = /ab\Z/;1188string = 'b\nca';1189actualmatch = string.match(pattern);1190expectedmatch = null;1191addThis();1192status = inSection(185);1193pattern = /ab\z/;1194string = 'b\nca';1195actualmatch = string.match(pattern);1196expectedmatch = null;1197addThis();1198status = inSection(186);1199pattern = /ab$/;1200string = 'b\nca';1201actualmatch = string.match(pattern);1202expectedmatch = null;1203addThis();1204status = inSection(187);1205pattern = /ab\Z/m;1206string = 'ca\nb\n';1207actualmatch = string.match(pattern);1208expectedmatch = null;1209addThis();1210status = inSection(188);1211pattern = /ab\z/m;1212string = 'ca\nb\n';1213actualmatch = string.match(pattern);1214expectedmatch = null;1215addThis();1216status = inSection(189);1217pattern = /ab$/m;1218string = 'ca\nb\n';1219actualmatch = string.match(pattern);1220expectedmatch = null;1221addThis();1222status = inSection(190);1223pattern = /ab\Z/m;1224string = 'b\nca\n';1225actualmatch = string.match(pattern);1226expectedmatch = null;1227addThis();1228status = inSection(191);1229pattern = /ab\z/m;1230string = 'b\nca\n';1231actualmatch = string.match(pattern);1232expectedmatch = null;1233addThis();1234status = inSection(192);1235pattern = /ab$/m;1236string = 'b\nca\n';1237actualmatch = string.match(pattern);1238expectedmatch = null;1239addThis();1240status = inSection(193);1241pattern = /ab\Z/m;1242string = 'b\nca';1243actualmatch = string.match(pattern);1244expectedmatch = null;1245addThis();1246status = inSection(194);1247pattern = /ab\z/m;1248string = 'b\nca';1249actualmatch = string.match(pattern);1250expectedmatch = null;1251addThis();1252status = inSection(195);1253pattern = /ab$/m;1254string = 'b\nca';1255actualmatch = string.match(pattern);1256expectedmatch = null;1257addThis();1258status = inSection(196);1259pattern = /abb\Z/;1260string = 'abb\nb\n';1261actualmatch = string.match(pattern);1262expectedmatch = null;1263addThis();1264status = inSection(197);1265pattern = /abb\z/;1266string = 'abb\nb\n';1267actualmatch = string.match(pattern);1268expectedmatch = null;1269addThis();1270status = inSection(198);1271pattern = /abb$/;1272string = 'abb\nb\n';1273actualmatch = string.match(pattern);1274expectedmatch = null;1275addThis();1276status = inSection(199);1277pattern = /abb\z/;1278string = 'b\nabb\n';1279actualmatch = string.match(pattern);1280expectedmatch = null;1281addThis();1282status = inSection(200);1283pattern = /abb\z/m;1284string = 'abb\nb\n';1285actualmatch = string.match(pattern);1286expectedmatch = null;1287addThis();1288status = inSection(201);1289pattern = /abb\z/m;1290string = 'b\nabb\n';1291actualmatch = string.match(pattern);1292expectedmatch = null;1293addThis();1294status = inSection(202);1295pattern = /abb\Z/;1296string = 'ac\nb\n';1297actualmatch = string.match(pattern);1298expectedmatch = null;1299addThis();1300status = inSection(203);1301pattern = /abb\z/;1302string = 'ac\nb\n';1303actualmatch = string.match(pattern);1304expectedmatch = null;1305addThis();1306status = inSection(204);1307pattern = /abb$/;1308string = 'ac\nb\n';1309actualmatch = string.match(pattern);1310expectedmatch = null;1311addThis();1312status = inSection(205);1313pattern = /abb\Z/;1314string = 'b\nac\n';1315actualmatch = string.match(pattern);1316expectedmatch = null;1317addThis();1318status = inSection(206);1319pattern = /abb\z/;1320string = 'b\nac\n';1321actualmatch = string.match(pattern);1322expectedmatch = null;1323addThis();1324status = inSection(207);1325pattern = /abb$/;1326string = 'b\nac\n';1327actualmatch = string.match(pattern);1328expectedmatch = null;1329addThis();1330status = inSection(208);1331pattern = /abb\Z/;1332string = 'b\nac';1333actualmatch = string.match(pattern);1334expectedmatch = null;1335addThis();1336status = inSection(209);1337pattern = /abb\z/;1338string = 'b\nac';1339actualmatch = string.match(pattern);1340expectedmatch = null;1341addThis();1342status = inSection(210);1343pattern = /abb$/;1344string = 'b\nac';1345actualmatch = string.match(pattern);1346expectedmatch = null;1347addThis();1348status = inSection(211);1349pattern = /abb\Z/m;1350string = 'ac\nb\n';1351actualmatch = string.match(pattern);1352expectedmatch = null;1353addThis();1354status = inSection(212);1355pattern = /abb\z/m;1356string = 'ac\nb\n';1357actualmatch = string.match(pattern);1358expectedmatch = null;1359addThis();1360status = inSection(213);1361pattern = /abb$/m;1362string = 'ac\nb\n';1363actualmatch = string.match(pattern);1364expectedmatch = null;1365addThis();1366status = inSection(214);1367pattern = /abb\Z/m;1368string = 'b\nac\n';1369actualmatch = string.match(pattern);1370expectedmatch = null;1371addThis();1372status = inSection(215);1373pattern = /abb\z/m;1374string = 'b\nac\n';1375actualmatch = string.match(pattern);1376expectedmatch = null;1377addThis();1378status = inSection(216);1379pattern = /abb$/m;1380string = 'b\nac\n';1381actualmatch = string.match(pattern);1382expectedmatch = null;1383addThis();1384status = inSection(217);1385pattern = /abb\Z/m;1386string = 'b\nac';1387actualmatch = string.match(pattern);1388expectedmatch = null;1389addThis();1390status = inSection(218);1391pattern = /abb\z/m;1392string = 'b\nac';1393actualmatch = string.match(pattern);1394expectedmatch = null;1395addThis();1396status = inSection(219);1397pattern = /abb$/m;1398string = 'b\nac';1399actualmatch = string.match(pattern);1400expectedmatch = null;1401addThis();1402status = inSection(220);1403pattern = /abb\Z/;1404string = 'ca\nb\n';1405actualmatch = string.match(pattern);1406expectedmatch = null;1407addThis();1408status = inSection(221);1409pattern = /abb\z/;1410string = 'ca\nb\n';1411actualmatch = string.match(pattern);1412expectedmatch = null;1413addThis();1414status = inSection(222);1415pattern = /abb$/;1416string = 'ca\nb\n';1417actualmatch = string.match(pattern);1418expectedmatch = null;1419addThis();1420status = inSection(223);1421pattern = /abb\Z/;1422string = 'b\nca\n';1423actualmatch = string.match(pattern);1424expectedmatch = null;1425addThis();1426status = inSection(224);1427pattern = /abb\z/;1428string = 'b\nca\n';1429actualmatch = string.match(pattern);1430expectedmatch = null;1431addThis();1432status = inSection(225);1433pattern = /abb$/;1434string = 'b\nca\n';1435actualmatch = string.match(pattern);1436expectedmatch = null;1437addThis();1438status = inSection(226);1439pattern = /abb\Z/;1440string = 'b\nca';1441actualmatch = string.match(pattern);1442expectedmatch = null;1443addThis();1444status = inSection(227);1445pattern = /abb\z/;1446string = 'b\nca';1447actualmatch = string.match(pattern);1448expectedmatch = null;1449addThis();1450status = inSection(228);1451pattern = /abb$/;1452string = 'b\nca';1453actualmatch = string.match(pattern);1454expectedmatch = null;1455addThis();1456status = inSection(229);1457pattern = /abb\Z/m;1458string = 'ca\nb\n';1459actualmatch = string.match(pattern);1460expectedmatch = null;1461addThis();1462status = inSection(230);1463pattern = /abb\z/m;1464string = 'ca\nb\n';1465actualmatch = string.match(pattern);1466expectedmatch = null;1467addThis();1468status = inSection(231);1469pattern = /abb$/m;1470string = 'ca\nb\n';1471actualmatch = string.match(pattern);1472expectedmatch = null;1473addThis();1474status = inSection(232);1475pattern = /abb\Z/m;1476string = 'b\nca\n';1477actualmatch = string.match(pattern);1478expectedmatch = null;1479addThis();1480status = inSection(233);1481pattern = /abb\z/m;1482string = 'b\nca\n';1483actualmatch = string.match(pattern);1484expectedmatch = null;1485addThis();1486status = inSection(234);1487pattern = /abb$/m;1488string = 'b\nca\n';1489actualmatch = string.match(pattern);1490expectedmatch = null;1491addThis();1492status = inSection(235);1493pattern = /abb\Z/m;1494string = 'b\nca';1495actualmatch = string.match(pattern);1496expectedmatch = null;1497addThis();1498status = inSection(236);1499pattern = /abb\z/m;1500string = 'b\nca';1501actualmatch = string.match(pattern);1502expectedmatch = null;1503addThis();1504status = inSection(237);1505pattern = /abb$/m;1506string = 'b\nca';1507actualmatch = string.match(pattern);1508expectedmatch = null;1509addThis();1510status = inSection(238);1511pattern = /a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/;1512string = 'x';1513actualmatch = string.match(pattern);1514expectedmatch = null;1515addThis();1516status = inSection(239);1517pattern = /\GX.*X/;1518string = 'aaaXbX';1519actualmatch = string.match(pattern);1520expectedmatch = null;1521addThis();1522status = inSection(240);1523pattern = /\.c(pp|xx|c)?$/i;1524string = 'Changes';1525actualmatch = string.match(pattern);1526expectedmatch = null;1527addThis();1528status = inSection(241);1529pattern = /^([a-z]:)/;1530string = 'C:/';1531actualmatch = string.match(pattern);1532expectedmatch = null;1533addThis();1534status = inSection(242);1535pattern = /(\w)?(abc)\1b/;1536string = 'abcab';1537actualmatch = string.match(pattern);1538expectedmatch = null;1539addThis();1540/* ECMA doesn't support (?(1541status = inSection(243);1542pattern = /^(a)?(?(1)a|b)+$/;1543string = 'a';1544actualmatch = string.match(pattern);1545expectedmatch = null;1546addThis();1547*/1548//-----------------------------------------------------------------------------1549test();1550//-----------------------------------------------------------------------------1551function addThis()1552{1553 if(omitCurrentSection())1554 return;1555 statusmessages[i] = status;1556 patterns[i] = pattern;1557 strings[i] = string;1558 actualmatches[i] = actualmatch;1559 expectedmatches[i] = expectedmatch;1560 i++;1561}1562function omitCurrentSection()1563{1564 try1565 {1566 // current section number is in global status variable1567 var n = status.match(/(\d+)/)[1];1568 return ((n < cnLBOUND) || (n > cnUBOUND));1569 }1570 catch(e)1571 {1572 return false;1573 }1574}1575function test()1576{1577 enterFunc ('test');1578 printBugNumber (bug);1579 printStatus (summary);1580 testRegExp(statusmessages, patterns, strings, actualmatches, expectedmatches);1581 exitFunc ('test');...
user.controller.js
Source:user.controller.js
...24 }25});26const Op = Sequelize.Op;27exports.allAccess = (req, res) => {28 res.status(200).send("Public Content.");29 };30exports.userBoard = (req, res) => {31 res.status(200).send("User Content.");32};33exports.adminBoard = (req, res) => {34 res.status(200).send("Admin Content.");35};36exports.moderatorBoard = (req, res) => {37 res.status(200).send("Moderator Content.");38};39exports.userAll = (req, res) => {40 User.findAll({41 where: {42 admin: '0'43 }44 })45 .then(users => {46 res.status(200).send(users)47 })48 .catch(err => {49 res.status(500).send([])50 });51}52exports.adminAll = (req, res) => {53 User.findAll({54 where: {55 admin: '1'56 }57 })58 .then(users => {59 res.status(200).send(users)60 })61 .catch(err => {62 res.status(500).send([])63 });64}65exports.userActiveAll = (req, res) => {66 User.findAll({67 where: {68 admin: '0',69 active: 'YES'70 }71 })72 .then(users => {73 res.status(200).send(users)74 })75 .catch(err => {76 res.status(500).send([])77 });78}79exports.userDeactiveAll = (req, res) => {80 User.findAll({81 where: {82 admin: '0',83 active: 'NO'84 }85 })86 .then(users => {87 res.status(200).send(users)88 })89 .catch(err => {90 res.status(500).send([])91 });92}93exports.userOne = (req, res) => {94 User.findOne({95 where: {96 id: req.body.id97 }98 })99 .then(user => {100 res.status(200).send(user)101 })102 .catch(err => {103 res.status(500).send({})104 });105}106exports.update = (req, res) => {107 let user = req.body;108 let id = req.body.id;109 delete user.id;110 delete user.updatedAt;111 if(user.password)112 user.password = bcrypt.hashSync(user.password, 8);113 User.update(114 user,115 {where: {id: id}}116 )117 .then(user => {118 return res.status(200).send({ status:'success', message: "Ação realizada com sucesso!" });119 })120 .catch(err => {121 return res.status(500).send({ status:'fail', message: err.message });122 });123}124exports.updatePassword = (req, res) => {125 User.findOne({126 where: {127 id: req.body.id128 }129 }).then(user => {130 if (!user) {131 return res.status(404).send({ message: "Usuário não encontrado." });132 }133 var passwordIsValid = bcrypt.compareSync(134 req.body.current_password,135 user.password136 );137 console.log(passwordIsValid);138 if (!passwordIsValid) {139 return res.status(401).send({ status:'fail', message: "Senha inválida!" });140 }141 User.update(142 {password: bcrypt.hashSync(req.body.password, 8)},143 {where: {id: req.body.id}}144 )145 .then(user => {146 return res.status(200).send({ status:'success', message: "Ação realizada com sucesso!" });147 })148 .catch(err => {149 return res.status(500).send({ status:'fail', message: err.message });150 });151 })152 .catch(err => {153 res.status(500).send({ message: err.message });154 });155}156exports.delete = (req, res) => {157 console.log(req.body)158 User.destroy(159 {where: {id: req.body.id}}160 )161 .then(user => {162 Deposit.destroy(163 {where: {user_id: req.body.id}}164 )165 Withdraw.destroy(166 {where: {user_id: req.body.id}}167 )168 Contract_history.destroy(169 {where: {user_id: req.body.id}}170 )171 Contract.destroy(172 {where: {user_id: req.body.id}}173 )174 Case.destroy(175 {where: {user_id: req.body.id}}176 )177 Contract_pdf.destroy(178 {where: {user_id: req.body.id}}179 )180 Case_deposit.destroy(181 {where: {user_id: req.body.id}}182 )183 return res.status(200).send({ status:'success', message: "Ação realizada com sucesso!" });184 })185 .catch(err => {186 return res.status(500).send({ status:'fail', message: err.message });187 });188}189exports.setActive = (req, res) => {190 let upload = multer({ storage: storage,limits:{fileSize:'10mb'}, fileFilter: multerHelper.pdfFilter}).single('admin_pdf');191 upload(req, res, function(err) {192 if (req.fileValidationError) {193 return res.status(200).send({ status:'fail', message: req.fileValidationError });194 }195 else if (!req.file) {196 User.update(197 {198 active: req.body.active,199 },200 {where: {id: req.body.userId}}201 )202 .then(user => {203 let now = moment();204 Contract.create(205 {206 user_id: req.body.userId,207 open_value: req.body.investment,208 invest_type: req.body.investment_type,209 start_date: now.format("YYYY-MM-DD"),210 status: 'processando',211 percent: req.body.investment_type === 'FLEXIVEL' ? constant_config.FLEX_DEFAULT_PERCENT: constant_config.CRESC_DEFAULT_PERCENT,212 end_date: req.body.investment_type === 'FLEXIVEL' ? moment(now.format("YYYY-MM-DD")).add(1, 'M') : moment(now.format("YYYY-MM-DD")).add(8, 'M')213 }214 )215 .then(res_data => {216 Contract_history.create(217 {218 user_id: res_data.user_id,219 value: res_data.open_value,220 contract_id: res_data.id,221 action_type: 0,222 invest_type: res_data.invest_type223 }224 )225 let contract_pdf_create = {226 user_id: req.body.userId,227 invest_type: req.body.investment_type,228 }229 if (req.body.investment_type === 'FLEXIVEL') {230 Contract_pdf.create(contract_pdf_create)231 } else if (req.body.investment_type === 'CRESCIMENTO') {232 Contract_percent.create({233 contract_id: res_data.id,234 percent: constant_config.CRESC_DEFAULT_PERCENT235 })236 contract_pdf_create = {237 user_id: req.body.userId,238 invest_type: req.body.investment_type,239 contract_id: res_data.id240 }241 Contract_pdf.create(contract_pdf_create)242 }243 Case.count({244 where: {user_id: req.body.userId}}).then(count => {245 if( count === 0 ) {246 Case.create({user_id: req.body.userId, balance: 0}).then(create_case => {247 console.log(create_case)248 })249 }250 })251 return res.status(200).send({ status:'success', message: "Ação realizada com sucesso!" });252 })253 .catch(err => {254 return res.status(200).send({ status:'fail', message: err.message });255 });256 })257 .catch(err => {258 return res.status(200).send({ status:'fail', message: err.message });259 });260 return res.status(200).send({ status:'success', message: "Ação realizada com sucesso!" });261 }262 else if (err instanceof multer.MulterError) {263 return res.status(200).send({ status:'fail', message: err });264 }265 else if (err) {266 return res.status(200).send({ status:'fail', message: err });267 }else if (req.file) {268 User.update(269 {270 active: req.body.active,271 },272 { where: { id: req.body.userId } }273 )274 .then(user => {275 let now = moment();276 Contract.create(277 {278 user_id: req.body.userId,279 open_value: req.body.investment,280 invest_type: req.body.investment_type,281 start_date: now.format("YYYY-MM-DD"),282 status: 'processando',283 percent: req.body.investment_type === 'FLEXIVEL' ? constant_config.FLEX_DEFAULT_PERCENT: constant_config.CRESC_DEFAULT_PERCENT,284 end_date: req.body.investment_type == 'FLEXIVEL' ? moment(now.format("YYYY-MM-DD")).add(1, 'M') : moment(now.format("YYYY-MM-DD")).add(8, 'M')285 }286 )287 .then(res_data => {288 Contract_history.create(289 {290 user_id: res_data.user_id,291 value: res_data.open_value,292 contract_id: res_data.id,293 action_type: 0,294 invest_type: res_data.invest_type295 }296 )297 let contract_pdf_create = {298 user_id: req.body.userId,299 admin_pdf: req.file.path,300 invest_type: req.body.investment_type,301 }302 if (req.body.investment_type === 'FLEXIVEL') {303 contract_pdf_create = {304 user_id: req.body.userId,305 admin_pdf: req.file.path,306 invest_type: req.body.investment_type,307 }308 } else if (req.body.investment_type === 'CRESCIMENTO') {309 Contract_percent.create({310 contract_id: res_data.id,311 percent: constant_config.CRESC_DEFAULT_PERCENT312 })313 contract_pdf_create = {314 user_id: req.body.userId,315 admin_pdf2: req.file.path,316 invest_type: req.body.investment_type,317 contract_id: res_data.id318 }319 }320 Contract_pdf.create(contract_pdf_create)321 Case.count({322 where: { user_id: req.body.userId }323 }).then(count => {324 if (count == 0) {325 Case.create({ user_id: req.body.userId, balance: 0 }).then(create_case => {326 console.log(create_case)327 })328 }329 })330 return res.status(200).send({ status: 'success', message: "Ação realizada com sucesso!" });331 })332 .catch(err => {333 return res.status(200).send({ status: 'fail', message: err.message });334 });335 })336 .catch(err => {337 return res.status(200).send({ status: 'fail', message: err.message });338 });339 }340 })341}342exports.userBank = (req, res) => {343 Bank.findOne({344 include: [{345 model: Bank_list, User346 }],347 where: {348 user_id: req.body.user_id349 }350 })351 .then(bank => {352 res.status(200).send(bank)353 })354 .catch(err => {355 res.status(500).send({})356 });357}358exports.bankUpdate = (req, res) => {359 let bank = req.body;360 Bank.findOne({361 where: {362 user_id: req.body.user_id363 }364 })365 .then(res_data => {366 if(!res_data) {367 Bank.create(368 bank369 )370 .then(res_data => {371 return res.status(200).send({ status:'success', message: "Ação realizada com sucesso!" });372 })373 .catch(err => {374 return res.status(500).send({ status:'fail', message: err.message });375 });376 } else {377 let user_id = req.body.user_id;378 delete bank.user_id;379 delete bank.updatedAt;380 Bank.update(381 bank,382 {where: {user_id: user_id}}383 )384 .then(res_data => {385 return res.status(200).send({ status:'success', message: "Ação realizada com sucesso!" });386 })387 .catch(err => {388 return res.status(500).send({ status:'fail', message: err.message });389 });390 }391 }).catch(err => {392 return res.status(500).send({ status:'fail', message: err.message });393 });394}395exports.getBalance = (req, res) => {396 let now = moment();397 console.log('-----------get balance-------------')398 if(moment().isBetween(now.date(2).format("YYYY-MM-DD"), now.endOf('month').format("YYYY-MM-DD"))) {399 console.log('-----------get balance-------------')400 Case.findOne({401 include: [{402 model: User,403 }],404 where: {405 user_id: req.body.user_id406 }407 })408 .then(data => {409 console.log('-----------get balance-------------')410 console.log(data)411 res.status(200).send(data)412 })413 .catch(err => {414 res.status(200).send({status: 'fail', message: "Você não tem saldo suficiente"})415 });416 }else {417 console.log('-----------get balance-------------')418 res.status(200).send({status: 'fail', title: 'Saque', message: 'O saque ficará disponÃvel entre os dias 25 e 30 de cada mês.'})419 }420}421exports.contract_all = (req, res) => {422 Contract_pdf.findAll({423 include: [424 {425 model: User,426 attributes: ['id', 'cpf', 'email', 'full_name'],427 },428 {429 model: Contract430 }431 ],432 where: req.body433 })434 .then(users => {435 res.status(200).send(users)436 })437 .catch(err => {438 res.status(500).send([])439 });440}441exports.contract_by_user = (req, res) => {442 Contract_pdf.findOne({443 where: {444 user_id: req.body.user_id445 }446 })447 .then(data => {448 res.status(200).send(data)449 })450 .catch(err => {451 res.status(500).send(null)452 });453}454exports.download_contract = (req, res) => {455 const filepath = req.body.pdf_path;456 res.download(filepath, "contract.pdf")457}458exports.admin_upload_contract = (req, res) => {459 let upload = multer({ storage: storage,limits:{fileSize:'10mb'}, fileFilter: multerHelper.pdfFilter}).single('admin_pdf');460 upload(req, res, function(err) {461 if (req.fileValidationError) {462 return res.status(200).send({ status:'fail', message: req.fileValidationError });463 }464 else if (!req.file) {465 return res.status(200).send({ status:'fail', message: 'please select file' });466 }467 else if (err instanceof multer.MulterError) {468 return res.status(200).send({ status:'fail', message: err });469 }470 else if (err) {471 return res.status(200).send({ status:'fail', message: err });472 }473 let update_data = {474 user_id: req.body.userId,475 admin_pdf: req.file.path476 }477 if(req.body.pdf_field == "admin_pdf") {478 update_data = {479 user_id: req.body.userId,480 admin_pdf: req.file.path481 }482 }else if(req.body.pdf_field == 'admin_pdf2'){483 update_data = {484 user_id: req.body.userId,485 admin_pdf2: req.file.path486 }487 }488 Contract_pdf.update(489 update_data,490 {where: {contract_id: req.body.id}}491 )492 .then(res_data => {493 return res.status(200).send({ status:'success', message: "upload success" });494 })495 .catch(err => {496 return res.status(200).send({ status:'fail', message: "upload fail" });497 });498 })499}500exports.user_upload_contract = (req, res) => {501 let upload = multer({ storage: storage,limits:{fileSize:'10mb'}, fileFilter: multerHelper.pdfFilter}).single('user_pdf');502 upload(req, res, function(err) {503 if (req.fileValidationError) {504 return res.status(200).send({ status:'fail', message: req.fileValidationError });505 }506 else if (!req.file) {507 return res.status(200).send({ status:'fail', message: 'please select file' });508 }509 else if (err instanceof multer.MulterError) {510 return res.status(200).send({ status:'fail', message: err });511 }512 else if (err) {513 return res.status(200).send({ status:'fail', message: err });514 }515 let update_data = {516 user_pdf: req.file.path517 }518 let where_con = {user_id: req.userId}519 if(req.body.pdf_field == "user_pdf") {520 update_data = {521 user_pdf: req.file.path522 }523 }else if(req.body.pdf_field == 'user_pdf2'){524 update_data = {525 user_pdf2: req.file.path526 }527 where_con = {user_id: req.userId, contract_id: req.body.contract_id}528 }529 Contract_pdf.update(530 update_data,531 {where: where_con}532 )533 .then(res_data => {534 return res.status(200).send({ status:'success', message: "upload success" });535 })536 .catch(err => {537 return res.status(200).send({ status:'fail', message: "upload fail" });538 });539 })540}541exports.download_user_contract = (req, res) => {542 Contract_pdf.findOne({where: {user_id: req.userId}}).then(data => {543 let filepath = data.admin_pdf544 if(req.body.invest_type == 'CRESCIMENTO') {545 filepath = data.admin_pdf2546 }else if(req.body.invest_type == 'FLEXIVEL') {547 filepath = data.admin_pdf548 }549 res.download(filepath, "contract.pdf")550 })551}552exports.download_user_contract_by_cp = (req, res) => {553 Contract_pdf.findOne({where: {id: req.body.contract_pdf_id}}).then(data => {554 const filepath = data.admin_pdf2555 res.download(filepath, "contract.pdf")556 })557}558exports.check_cpf_user = (req, res) => {559 User.findOne({where: {cpf: req.body.cpf, active: 'YES'}}).then(data => {560 return res.status(200).send({cpf_user: data})561 }).catch(err => {562 return res.status(200).send({cpf_user: null});563 });564}565exports.bank_all = (req, res) => {566 Bank_list.findAll()567 .then(datas => {568 res.status(200).send(datas)569 })570 .catch(err => {571 res.status(500).send([])572 });573}574exports.all_case_deposit = (req, res) => {575 Case_deposit.findAll({include: [User]})576 .then(datas => {577 res.status(200).send(datas)578 })579 .catch(err => {580 res.status(500).send([])581 });582}583exports.add_fund = (req, res) => {584 let now = moment();585 Case_deposit.create(586 {587 admin_id: req.userId,588 user_id: req.body.user_id,589 amount: req.body.amount,590 }591 )592 .then(res_data => {593 Case.count({where: {user_id: req.body.user_id}}).then(count => {594 if(count == 0 ) {595 Case.create({user_id: req.body.user_id, balance: req.body.amount}).then(create_case => {596 })597 }else if(count > 0) {598 Case.increment(599 {balance: req.body.amount},600 {where: {user_id: req.body.user_id}}601 )602 }603 })604 return res.status(200).send({ status:'success', message: "Ação realizada com sucesso!" });605 })606 .catch(err => {607 return res.status(500).send({ status:'fail', message: err.message });608 });609}610exports.setProfit = (req, res) => {611 User.update(612 {profit_percent: req.body.profit_percent},613 {where: {id: req.body.user_id}}614 )615 .then(user => {616 return res.status(200).send({ status:'success', message: "Ação realizada com sucesso!" });617 })618 .catch(err => {619 return res.status(500).send({ status:'fail', message: err.message });620 });621}622exports.getPlanSum = (req, res) => {623 let param = { where: { invest_type: req.body.invest_type, status: 'processando' } };624 if(req.body.invest_type == '' || req.body.invest_type == null) {625 param = {where: {status: 'processando'}};626 }627 Contract.sum('open_value', param).then(sum => {628 return res.status(200).send({ status:'success', sum: sum })629 }).catch(err => {630 return res.status(200).send({ status:'fail', message: err.message })631 })632}633exports.getPlanSumByUser = (req, res) => {634 let param = { where: { invest_type: req.body.invest_type, user_id: req.userId, status: 'processando' } };635 if(req.body.invest_type == '' || req.body.invest_type == null) {636 param = { where: { user_id: req.userId, status: 'processando' } };637 }638 Contract.sum('open_value', param).then(sum => {639 Contract.max('end_date', param).then(max => {640 return res.status(200).send({ status:'success', sum: sum, max: max })641 }).catch(err => {642 return res.status(200).send({ status:'fail', message: err.message })643 })644 }).catch(err => {645 return res.status(200).send({ status:'fail', message: err.message })646 })647}648exports.getPlanExpDateByUser = (req, res) => {649 let param = { where: { invest_type: req.body.invest_type, user_id: req.userId } };650 if(req.body.invest_type == '' || req.body.invest_type == null) {651 param = {};652 }653 Contract.max('end_date', param).then(max => {654 return res.status(200).send({ status:'success', max: max })655 }).catch(err => {656 return res.status(200).send({ status:'fail', message: err.message })657 })658}659exports.withdraw_sum_pending = (req, res) => {660 Withdraw.sum('value', {where: {status: 'pendente'}}).then(sum => {661 return res.status(200).send({ status:'success', sum: sum })662 }).catch(err => {663 return res.status(200).send({ status:'fail', message: err.message })664 })665}666exports.withdraw_sum_paid = (req, res) => {667 Withdraw.sum(668 'value',669 { where:670 {671 status: 'concluÃdo',672 updatedAt: {673 [Op.gt]: moment(moment().format("YYYY-MM-DD")).subtract(1,'months').startOf('month').format('YYYY-MM-DD'),674 [Op.lte]: moment(moment().format("YYYY-MM-DD")).subtract(1,'months').endOf('month').format('YYYY-MM-DD')675 }676 }677 }678 )679 .then(sum => {680 return res.status(200).send({ status:'success', sum: sum })681 }).catch(err => {682 return res.status(200).send({ status:'fail', message: err.message })683 })684}685exports.active_users_count = (req, res) => {686 User.count({where: {active: 'YES', admin: '0'}}).then(count => {687 return res.status(200).send({ status:'success', sum: count })688 }).catch(err => {689 return res.status(200).send({ status:'fail', message: err.message })690 })691}692exports.getExpiredProfitSumByUser = (req, res) => {693 Contract.findAll(694 {695 where: { status: 'concluÃdo', user_id: req.userId },696 raw: true697 }698 ).then((expired_datas) => {699 var total_sum = 0;700 var flexible_total_sum = 0;701 var item_total_sum = 0;702 if (expired_datas.length > 0) {703 expired_datas.forEach(function(item, index) {704 if(item.invest_type === 'CRESCIMENTO') {705 item_total_sum = Number(item.open_value)706 for(let i = 1; i <= 8; i++){707 item_total_sum = item_total_sum*item.percent/100 + item_total_sum708 }709 total_sum = total_sum + item_total_sum710 }else {711 item_total_sum = Number(item.open_value)712 item_total_sum = item_total_sum*item.percent/100 + item_total_sum713 flexible_total_sum = flexible_total_sum + item_total_sum714 }715 });716 return res.status(200).send({ status: 'success', sum: total_sum + flexible_total_sum });717 }else {718 return res.status(200).send({ status:'fail', sum: 0 })719 }720 }).catch(err => {721 return res.status(200).send({ status:'fail', message: err.message })722 });723}724exports.plan_numbers_this_month = (req, res) => {725 Contract.count(726 {727 where: {728 invest_type: 'CRESCIMENTO',729 status: 'processando',730 start_date: {731 [Op.gte]: moment(moment().format('YYYY-MM-DD')).subtract(0, 'months').startOf('month').format('YYYY-MM-DD'),732 [Op.lte]: moment(moment().format('YYYY-MM-DD')).subtract(0, 'months').endOf('month').format('YYYY-MM-DD')733 }734 }735 }736 ).then(count => {737 return res.status(200).send({ status: 'success', sum: count });738 }).catch(err => {739 return res.status(200).send({ status: 'fail', message: err.message });740 });741};742exports.cresc_plan_total = (req, res) => {743/* Contract.findAll({744 attributes: [745 [Sequelize.literal('SUM(open_value + 8 * open_value * percent / 100)'), 'totalsum']746 ],747 where: {748 invest_type: 'CRESCIMENTO',749 status: 'processando'750 }751 }).then(result => {752 return res.status(200).send({ status:'success', sum: result })753 }).catch(err => {754 return res.status(200).send({ status:'fail', message: err.message })755 })756 Contract.sum('open_value', { where: { invest_type: 'CRESCIMENTO' } }).then(sum => {757 return res.status(200).send({ status:'success', sum: sum })758 }).catch(err => {759 return res.status(200).send({ status:'fail', message: err.message })760 })*/761 Contract.findAll(762 {763 where: { status: 'processando', invest_type: 'CRESCIMENTO' },764 raw: true765 }766 ).then((expired_datas) => {767 var total_sum = 0;768 if (expired_datas.length > 0) {769 expired_datas.forEach(function(item, index) {770 var item_total_sum = Number(item.open_value)771 for(let i = 1; i <= 8; i++){772 item_total_sum = item_total_sum*item.percent/100 + item_total_sum773 }774 total_sum = total_sum + item_total_sum775 });776 return res.status(200).send({ status:'success', sum: total_sum})777 }else {778 return res.status(200).send({ status:'success', sum: 0 })779 }780 }).catch(err => {781 return res.status(200).send({ status:'fail', message: err.message })782 });783}784exports.admin_deposit_to_user = (req, res) => {785 let params = req.body;786 let now = moment();787 console.log(params.percent)788 Deposit.create(789 {790 admin_value: params.open_value,791 invest_type: params.invest_type,792 percent: params.percent,793 user_id: params.user_id,794 status: 'concluÃdo',795 admin_id: req.userId,796 type: 1797 }798 );799 if(params.invest_type === 'FLEXIVEL') {800 Contract.findAll(801 {802 where: { invest_type: 'FLEXIVEL', user_id: params.user_id },803 raw: true804 }805 ).then((flexible_datas) => {806 if (flexible_datas.length == 0) {807 Contract.create(808 {809 user_id: params.user_id,810 open_value: params.open_value,811 invest_type: 'FLEXIVEL',812 // start_date: now.format("YYYY-MM-DD"),813 // end_date: moment(now.format("YYYY-MM-DD")).add(1, 'M'),814 end_date: moment(moment(params.start_date).format("YYYY-MM-DD")).add(1, 'M'),815 start_date: moment(params.start_date).format("YYYY-MM-DD"),816 status: 'processando',817 // percent: constant_config.FLEX_DEFAULT_PERCENT,818 percent: params.percent819 }820 ).then(res_data => {821 Contract_history.create(822 {823 user_id: res_data.user_id,824 value: res_data.open_value,825 contract_id: res_data.id,826 action_type: 0,827 invest_type: res_data.invest_type828 }829 )830 let contract_pdf_create = {831 user_id: params.user_id,832 invest_type: 'FLEXIVEL'833 }834 Contract_pdf.create(contract_pdf_create)835 return res.status(200).send({ status:'success', message: "Ação realizada com sucesso!" });836 })837 .catch(err => {838 return res.status(200).send({ status:'fail', message: err.message });839 });840 }else if (flexible_datas.length > 0) {841 Contract.findOne(842 {843 where: { invest_type: 'FLEXIVEL', user_id: params.user_id, status: 'processando' },844 raw: true845 }846 ).then((flex_pending_data) => {847 if(flex_pending_data) {848 Contract.update(849 { open_value: Number(flex_pending_data.open_value) + Number(params.open_value), percent: params.percent },850 { where: { id: flex_pending_data.id } }851 )852 .then(user => {853 return res.status(200).send({ status: 'success', message: 'Ação realizada com sucesso!' });854 })855 .catch(err => {856 return res.status(500).send({ status: 'fail', message: err.message });857 });858 }else {859 Contract.create(860 {861 user_id: params.user_id,862 open_value: params.open_value,863 invest_type: 'FLEXIVEL',864 // start_date: now.format("YYYY-MM-DD"),865 // end_date: moment(now.format("YYYY-MM-DD")).add(1, 'M'),866 end_date: moment(moment(params.start_date).format("YYYY-MM-DD")).add(1, 'M'),867 start_date: moment(params.start_date).format("YYYY-MM-DD"),868 status: 'processando',869 // percent: constant_config.FLEX_DEFAULT_PERCENT,870 percent: params.percent871 }872 ).then(res_data => {873 Contract_history.create(874 {875 user_id: res_data.user_id,876 value: res_data.open_value,877 contract_id: res_data.id,878 action_type: 0,879 invest_type: res_data.invest_type880 }881 )882 let contract_pdf_create = {883 user_id: params.user_id,884 invest_type: 'FLEXIVEL'885 }886 Contract_pdf.create(contract_pdf_create)887 return res.status(200).send({ status:'success', message: "Ação realizada com sucesso!" });888 })889 .catch(err => {890 return res.status(200).send({ status:'fail', message: err.message });891 });892 }893 })894 }895 })896 }else if(params.invest_type === 'CRESCIMENTO'){897 Contract.create(898 {899 user_id: params.user_id,900 open_value: params.open_value,901 invest_type: 'CRESCIMENTO',902 // start_date: now.format("YYYY-MM-DD"),903 // end_date: moment(now.format("YYYY-MM-DD")).add(8, 'M'),904 end_date: moment(moment(params.start_date).format("YYYY-MM-DD")).add(8, 'M'),905 start_date: moment(params.start_date).format("YYYY-MM-DD"),906 status: 'processando',907 // percent: constant_config.CRESC_DEFAULT_PERCENT,908 percent: params.percent909 }910 )911 .then(res_data => {912 Contract_history.create(913 {914 user_id: res_data.user_id,915 value: res_data.open_value,916 contract_id: res_data.id,917 action_type: 0,918 invest_type: res_data.invest_type919 }920 )921 Contract_percent.create({922 contract_id: res_data.id,923 // percent: constant_config.CRESC_DEFAULT_PERCENT924 percent: params.percent,925 })926 let contract_pdf_create = {927 user_id: params.user_id,928 invest_type: 'CRESCIMENTO',929 contract_id: res_data.id930 }931 Contract_pdf.create(contract_pdf_create)932 return res.status(200).send({ status:'success', message: "Ação realizada com sucesso!" });933 })934 .catch(err => {935 return res.status(200).send({ status:'fail', message: err.message });936 });937 }else {938 return res.status(200).send({ status: 'fail', message: 'fail' });939 }940};941exports.admin_create = (req, res) => {942 // Save User to Database943 let create_data = req.body;944 create_data.password = bcrypt.hashSync(req.body.password, 8);945 delete create_data.confirm;946 create_data.admin = '1';947 create_data.client_type = 'ADMIN';948 console.log(create_data);949 User.create(create_data)950 .then(user => {951 user.setRoles([2]).then(() => {952 res.send({ status: 'success', message: "Ação realizada com sucesso!" });953 });954 })955 .catch(err => {956 res.status(500).send({ stauts: 'fail', message: err.message });957 });...
testIncomplete.js
Source:testIncomplete.js
1/*2 * Copyright 2012, Mozilla Foundation and contributors3 *4 * Licensed under the Apache License, Version 2.0 (the "License");5 * you may not use this file except in compliance with the License.6 * You may obtain a copy of the License at7 *8 * http://www.apache.org/licenses/LICENSE-2.09 *10 * Unless required by applicable law or agreed to in writing, software11 * distributed under the License is distributed on an "AS IS" BASIS,12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.13 * See the License for the specific language governing permissions and14 * limitations under the License.15 */16'use strict';17var assert = require('../testharness/assert');18var helpers = require('./helpers');19exports.testBasic = function(options) {20 return helpers.audit(options, [21 {22 setup: 'tsu 2 extra',23 check: {24 args: {25 num: { value: 2, type: 'Argument' }26 }27 },28 post: function() {29 var requisition = options.requisition;30 assert.is(requisition._unassigned.length,31 1,32 'single unassigned: tsu 2 extra');33 assert.is(requisition._unassigned[0].param.type.isIncompleteName,34 false,35 'unassigned.isIncompleteName: tsu 2 extra');36 }37 },38 {39 setup: 'tsu',40 check: {41 args: {42 num: { value: undefined, type: 'BlankArgument' }43 }44 }45 },46 {47 setup: 'tsg',48 check: {49 args: {50 solo: { type: 'BlankArgument' },51 txt1: { type: 'BlankArgument' },52 bool: { type: 'BlankArgument' },53 txt2: { type: 'BlankArgument' },54 num: { type: 'BlankArgument' }55 }56 }57 }58 ]);59};60exports.testCompleted = function(options) {61 return helpers.audit(options, [62 {63 setup: 'tsela<TAB>',64 check: {65 args: {66 command: { name: 'tselarr', type: 'Argument' },67 num: { type: 'BlankArgument' },68 arr: { type: 'ArrayArgument' }69 }70 }71 },72 {73 setup: 'tsn dif ',74 check: {75 input: 'tsn dif ',76 hints: '<text>',77 markup: 'VVVVVVVV',78 cursor: 8,79 status: 'ERROR',80 args: {81 command: { name: 'tsn dif', type: 'MergedArgument' },82 text: { type: 'BlankArgument', status: 'INCOMPLETE' }83 }84 }85 },86 {87 setup: 'tsn di<TAB>',88 check: {89 input: 'tsn dif ',90 hints: '<text>',91 markup: 'VVVVVVVV',92 cursor: 8,93 status: 'ERROR',94 args: {95 command: { name: 'tsn dif', type: 'Argument' },96 text: { type: 'BlankArgument', status: 'INCOMPLETE' }97 }98 }99 },100 // The above 2 tests take different routes to 'tsn dif '.101 // The results should be similar. The difference is in args.command.type.102 {103 setup: 'tsg -',104 check: {105 input: 'tsg -',106 hints: '-txt1 <solo> [options]',107 markup: 'VVVVI',108 cursor: 5,109 status: 'ERROR',110 args: {111 solo: { value: undefined, status: 'INCOMPLETE' },112 txt1: { value: undefined, status: 'VALID' },113 bool: { value: false, status: 'VALID' },114 txt2: { value: undefined, status: 'VALID' },115 num: { value: undefined, status: 'VALID' }116 }117 }118 },119 {120 setup: 'tsg -<TAB>',121 check: {122 input: 'tsg --txt1 ',123 hints: '<string> <solo> [options]',124 markup: 'VVVVIIIIIIV',125 cursor: 11,126 status: 'ERROR',127 args: {128 solo: { value: undefined, status: 'INCOMPLETE' },129 txt1: { value: undefined, status: 'INCOMPLETE' },130 bool: { value: false, status: 'VALID' },131 txt2: { value: undefined, status: 'VALID' },132 num: { value: undefined, status: 'VALID' }133 }134 }135 },136 {137 setup: 'tsg --txt1 fred',138 check: {139 input: 'tsg --txt1 fred',140 hints: ' <solo> [options]',141 markup: 'VVVVVVVVVVVVVVV',142 status: 'ERROR',143 args: {144 solo: { value: undefined, status: 'INCOMPLETE' },145 txt1: { value: 'fred', status: 'VALID' },146 bool: { value: false, status: 'VALID' },147 txt2: { value: undefined, status: 'VALID' },148 num: { value: undefined, status: 'VALID' }149 }150 }151 },152 {153 setup: 'tscook key value --path path --',154 check: {155 input: 'tscook key value --path path --',156 hints: 'domain [options]',157 markup: 'VVVVVVVVVVVVVVVVVVVVVVVVVVVVVII',158 status: 'ERROR',159 args: {160 key: { value: 'key', status: 'VALID' },161 value: { value: 'value', status: 'VALID' },162 path: { value: 'path', status: 'VALID' },163 domain: { value: undefined, status: 'VALID' },164 secure: { value: false, status: 'VALID' }165 }166 }167 },168 {169 setup: 'tscook key value --path path --domain domain --',170 check: {171 input: 'tscook key value --path path --domain domain --',172 hints: 'secure [options]',173 markup: 'VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVII',174 status: 'ERROR',175 args: {176 key: { value: 'key', status: 'VALID' },177 value: { value: 'value', status: 'VALID' },178 path: { value: 'path', status: 'VALID' },179 domain: { value: 'domain', status: 'VALID' },180 secure: { value: false, status: 'VALID' }181 }182 }183 }184 ]);185};186exports.testCase = function(options) {187 return helpers.audit(options, [188 {189 setup: 'tsg AA',190 check: {191 input: 'tsg AA',192 hints: ' [options] -> aaa',193 markup: 'VVVVII',194 status: 'ERROR',195 args: {196 solo: { value: undefined, text: 'AA', status: 'INCOMPLETE' },197 txt1: { value: undefined, status: 'VALID' },198 bool: { value: false, status: 'VALID' },199 txt2: { value: undefined, status: 'VALID' },200 num: { value: undefined, status: 'VALID' }201 }202 }203 }204 ]);205};206exports.testIncomplete = function(options) {207 return helpers.audit(options, [208 {209 setup: 'tsm a a -',210 check: {211 args: {212 abc: { value: 'a', type: 'Argument' },213 txt: { value: 'a', type: 'Argument' },214 num: { value: undefined, arg: ' -', type: 'Argument', status: 'INCOMPLETE' }215 }216 }217 },218 {219 setup: 'tsg -',220 check: {221 args: {222 solo: { type: 'BlankArgument' },223 txt1: { type: 'BlankArgument' },224 bool: { type: 'BlankArgument' },225 txt2: { type: 'BlankArgument' },226 num: { type: 'BlankArgument' }227 }228 },229 post: function() {230 var requisition = options.requisition;231 assert.is(requisition._unassigned[0],232 requisition.getAssignmentAt(5),233 'unassigned -');234 assert.is(requisition._unassigned.length,235 1,236 'single unassigned - tsg -');237 assert.is(requisition._unassigned[0].param.type.isIncompleteName,238 true,239 'unassigned.isIncompleteName: tsg -');240 }241 }242 ]);243};244exports.testRepeated = function(options) {245 return helpers.audit(options, [246 {247 setup: 'tscook key value --path jjj --path kkk',248 check: {249 input: 'tscook key value --path jjj --path kkk',250 hints: ' [options]',251 markup: 'VVVVVVVVVVVVVVVVVVVVVVVVVVVVEEEEEEVEEE',252 cursor: 38,253 current: '__unassigned',254 status: 'ERROR',255 options: [ ],256 message: '',257 predictions: [ ],258 unassigned: [ ' --path', ' kkk' ],259 args: {260 command: { name: 'tscook' },261 key: {262 value: 'key',263 arg: ' key',264 status: 'VALID',265 message: ''266 },267 value: {268 value: 'value',269 arg: ' value',270 status: 'VALID',271 message: ''272 },273 path: {274 value: 'jjj',275 arg: ' --path jjj',276 status: 'VALID',277 message: ''278 },279 domain: {280 value: undefined,281 arg: '',282 status: 'VALID',283 message: ''284 },285 secure: {286 value: false,287 arg: '',288 status: 'VALID',289 message: ''290 },291 }292 }293 }294 ]);295};296exports.testHidden = function(options) {297 return helpers.audit(options, [298 {299 setup: 'tshidde',300 check: {301 input: 'tshidde',302 hints: ' -> tse',303 status: 'ERROR'304 }305 },306 {307 setup: 'tshidden',308 check: {309 input: 'tshidden',310 hints: ' [options]',311 markup: 'VVVVVVVV',312 status: 'VALID',313 args: {314 visible: { value: undefined, status: 'VALID' },315 invisiblestring: { value: undefined, status: 'VALID' },316 invisibleboolean: { value: false, status: 'VALID' }317 }318 }319 },320 {321 setup: 'tshidden --vis',322 check: {323 input: 'tshidden --vis',324 hints: 'ible [options]',325 markup: 'VVVVVVVVVIIIII',326 status: 'ERROR',327 args: {328 visible: { value: undefined, status: 'VALID' },329 invisiblestring: { value: undefined, status: 'VALID' },330 invisibleboolean: { value: false, status: 'VALID' }331 }332 }333 },334 {335 setup: 'tshidden --invisiblestrin',336 check: {337 input: 'tshidden --invisiblestrin',338 hints: ' [options]',339 markup: 'VVVVVVVVVEEEEEEEEEEEEEEEE',340 status: 'ERROR',341 args: {342 visible: { value: undefined, status: 'VALID' },343 invisiblestring: { value: undefined, status: 'VALID' },344 invisibleboolean: { value: false, status: 'VALID' }345 }346 }347 },348 {349 setup: 'tshidden --invisiblestring',350 check: {351 input: 'tshidden --invisiblestring',352 hints: ' <string> [options]',353 markup: 'VVVVVVVVVIIIIIIIIIIIIIIIII',354 status: 'ERROR',355 args: {356 visible: { value: undefined, status: 'VALID' },357 invisiblestring: { value: undefined, status: 'INCOMPLETE' },358 invisibleboolean: { value: false, status: 'VALID' }359 }360 }361 },362 {363 setup: 'tshidden --invisiblestring x',364 check: {365 input: 'tshidden --invisiblestring x',366 hints: ' [options]',367 markup: 'VVVVVVVVVVVVVVVVVVVVVVVVVVVV',368 status: 'VALID',369 args: {370 visible: { value: undefined, status: 'VALID' },371 invisiblestring: { value: 'x', status: 'VALID' },372 invisibleboolean: { value: false, status: 'VALID' }373 }374 }375 },376 {377 setup: 'tshidden --invisibleboolea',378 check: {379 input: 'tshidden --invisibleboolea',380 hints: ' [options]',381 markup: 'VVVVVVVVVEEEEEEEEEEEEEEEEE',382 status: 'ERROR',383 args: {384 visible: { value: undefined, status: 'VALID' },385 invisiblestring: { value: undefined, status: 'VALID' },386 invisibleboolean: { value: false, status: 'VALID' }387 }388 }389 },390 {391 setup: 'tshidden --invisibleboolean',392 check: {393 input: 'tshidden --invisibleboolean',394 hints: ' [options]',395 markup: 'VVVVVVVVVVVVVVVVVVVVVVVVVVV',396 status: 'VALID',397 args: {398 visible: { value: undefined, status: 'VALID' },399 invisiblestring: { value: undefined, status: 'VALID' },400 invisibleboolean: { value: true, status: 'VALID' }401 }402 }403 },404 {405 setup: 'tshidden --visible xxx',406 check: {407 input: 'tshidden --visible xxx',408 markup: 'VVVVVVVVVVVVVVVVVVVVVV',409 status: 'VALID',410 hints: '',411 args: {412 visible: { value: 'xxx', status: 'VALID' },413 invisiblestring: { value: undefined, status: 'VALID' },414 invisibleboolean: { value: false, status: 'VALID' }415 }416 }417 }418 ]);...
smb-common.pac
Source:smb-common.pac
1enum SMBVersion {2 SMB1 = 0xff534d42, # \xffSMB3 SMB2 = 0xfe534d42, # \xfeSMB4 SMB3 = 0xfd534d42, # \xfdSMB (implies use of transform_header)5};6enum TransactionType {7 SMB_MAILSLOT_BROWSE, # \MAILSLOT\BROWSE - MS Browse Protocol8 SMB_MAILSLOT_LANMAN, # \MAILSLOT\LANMAN - deprecated cmds9 SMB_PIPE, # \PIPE\* named pipes?10 SMB_RAP, # \PIPE\LANMAN - remote administration protocol11 SMB_UNKNOWN, # there are probably lots of these12};13enum SMB_Command {14 SMB_COM_CREATE_DIRECTORY = 0x00,15 SMB_COM_DELETE_DIRECTORY = 0x01,16 SMB_COM_OPEN = 0x02,17 SMB_COM_CREATE = 0x03,18 SMB_COM_CLOSE = 0x04,19 SMB_COM_FLUSH = 0x05,20 SMB_COM_DELETE = 0x06,21 SMB_COM_RENAME = 0x07,22 SMB_COM_QUERY_INFORMATION = 0x08,23 SMB_COM_SET_INFORMATION = 0x09,24 SMB_COM_READ = 0x0A,25 SMB_COM_WRITE = 0x0B,26 SMB_COM_LOCK_BYTE_RANGE = 0x0C,27 SMB_COM_UNLOCK_BYTE_RANGE = 0x0D,28 SMB_COM_CREATE_TEMPORARY = 0x0E,29 SMB_COM_CREATE_NEW = 0x0F,30 SMB_COM_CHECK_DIRECTORY = 0x10,31 SMB_COM_PROCESS_EXIT = 0x11,32 SMB_COM_SEEK = 0x12,33 SMB_COM_LOCK_AND_READ = 0x13,34 SMB_COM_WRITE_AND_UNLOCK = 0x14,35 SMB_COM_READ_RAW = 0x1A,36 SMB_COM_READ_MPX = 0x1B,37 SMB_COM_READ_MPX_SECONDARY = 0x1C,38 SMB_COM_WRITE_RAW = 0x1D,39 SMB_COM_WRITE_MPX = 0x1E,40 SMB_COM_WRITE_MPX_SECONDARY = 0x1F,41 SMB_COM_WRITE_COMPLETE = 0x20,42 SMB_COM_QUERY_SERVER = 0x21,43 SMB_COM_SET_INFORMATION2 = 0x22,44 SMB_COM_QUERY_INFORMATION2 = 0x23,45 SMB_COM_LOCKING_ANDX = 0x24,46 SMB_COM_TRANSACTION = 0x25,47 SMB_COM_TRANSACTION_SECONDARY = 0x26,48 SMB_COM_IOCTL = 0x27,49 SMB_COM_IOCTL_SECONDARY = 0x28,50 SMB_COM_COPY = 0x29,51 SMB_COM_MOVE = 0x2A,52 SMB_COM_ECHO = 0x2B,53 SMB_COM_WRITE_AND_CLOSE = 0x2C,54 SMB_COM_OPEN_ANDX = 0x2D,55 SMB_COM_READ_ANDX = 0x2E,56 SMB_COM_WRITE_ANDX = 0x2F,57 SMB_COM_NEW_FILE_SIZE = 0x30,58 SMB_COM_CLOSE_AND_TREE_DISC = 0x31,59 SMB_COM_TRANSACTION2 = 0x32,60 SMB_COM_TRANSACTION2_SECONDARY = 0x33,61 SMB_COM_FIND_CLOSE2 = 0x34,62 SMB_COM_FIND_NOTIFY_CLOSE = 0x35,63 SMB_COM_TREE_CONNECT = 0x70,64 SMB_COM_TREE_DISCONNECT = 0x71,65 SMB_COM_NEGOTIATE = 0x72,66 SMB_COM_SESSION_SETUP_ANDX = 0x73,67 SMB_COM_LOGOFF_ANDX = 0x74,68 SMB_COM_TREE_CONNECT_ANDX = 0x75,69 SMB_COM_QUERY_INFORMATION_DISK = 0x80,70 SMB_COM_SEARCH = 0x81,71 SMB_COM_FIND = 0x82,72 SMB_COM_FIND_UNIQUE = 0x83,73 SMB_COM_FIND_CLOSE = 0x84,74 SMB_COM_NT_TRANSACT = 0xA0,75 SMB_COM_NT_TRANSACT_SECONDARY = 0xA1,76 SMB_COM_NT_CREATE_ANDX = 0xA2,77 SMB_COM_NT_CANCEL = 0xA4,78 SMB_COM_NT_RENAME = 0xA5,79 SMB_COM_OPEN_PRINT_FILE = 0xC0,80 SMB_COM_WRITE_PRINT_FILE = 0xC1,81 SMB_COM_CLOSE_PRINT_FILE = 0xC2,82 SMB_COM_GET_PRINT_QUEUE = 0xC3,83 SMB_COM_READ_BULK = 0xD8,84 SMB_COM_WRITE_BULK = 0xD9,85 SMB_COM_WRITE_BULK_DATA = 0xDA,86};87enum SMB_Status {88 # 0x00089 STATUS_SUCCESS = 0x00000000,90 STATUS_NOTIFY_ENUM_DIR = 0x0000010C,91 STATUS_INVALID_SMB = 0x00010002,92 STATUS_SMB_BAD_TID = 0x00050002,93 STATUS_SMB_BAD_FID = 0x00060001,94 STATUS_OS2_INVALID_ACCESS = 0x000C0001,95 # 0x00196 STATUS_SMB_BAD_COMMAND = 0x00160002,97 # 0x00598 STATUS_SMB_BAD_UID = 0x005B0002,99 # 0x007100 STATUS_OS2_NO_MORE_SIDS = 0x00710001,101 STATUS_OS2_INVALID_LEVEL = 0x007C0001,102 # 0x008103 STATUS_OS2_NEGATIVE_SEEK = 0x00830001,104 # 0x00A105 STATUS_OS2_CANCEL_VIOLATION = 0x00AD0001,106 STATUS_OS2_ATOMIC_LOCKS_NOT_SUPPORTED = 0x00AE0001,107 # 0x00F108 STATUS_SMB_USE_MPX = 0x00FA0002,109 STATUS_SMB_USE_STANDARD = 0x00FB0002,110 STATUS_SMB_CONTINUE_MPX = 0x00FC0002,111 # 0x01112 STATUS_OS2_CANNOT_COPY = 0x010A0001,113 STATUS_OS2_EAS_DIDNT_FIT = 0x01130001,114 # 0x03115 STATUS_OS2_EA_ACCESS_DENIED = 0x03E20001,116 # 0x8117 STATUS_BUFFER_OVERFLOW = 0x80000005,118 STATUS_NO_MORE_FILES = 0x80000006,119 STATUS_DEVICE_PAPER_EMPTY = 0x8000000E,120 STATUS_STOPPED_ON_SYMLINK = 0x8000002D,121 # 0xC000000122 STATUS_UNSUCCESSFUL = 0xC0000001,123 STATUS_NOT_IMPLEMENTED = 0xC0000002,124 STATUS_INVALID_INFO_CLASS = 0xC0000003,125 STATUS_INVALID_HANDLE = 0xC0000008,126 STATUS_INVALID_PARAMETER = 0xC000000D,127 STATUS_NO_SUCH_DEVICE = 0xC000000E,128 STATUS_NO_SUCH_FILE = 0xC000000F,129 # 0xC000001130 STATUS_INVALID_DEVICE_REQUEST = 0xC0000010,131 STATUS_END_OF_FILE = 0xC0000011,132 STATUS_WRONG_VOLUME = 0xC0000012,133 STATUS_NONEXISTENT_SECTOR = 0xC0000015,134 STATUS_NO_MEDIA_IN_DEVICE = 0xC0000013,135 STATUS_MORE_PROCESSING_REQUIRED = 0xC0000016,136 STATUS_INVALID_LOCK_SEQUENCE = 0xC000001E,137 STATUS_INVALID_VIEW_SIZE = 0xC000001F,138 # 0xC000002139 STATUS_ALREADY_COMMITTED = 0xC0000021,140 STATUS_ACCESS_DENIED = 0xC0000022,141 STATUS_BUFFER_TOO_SMALL = 0xC0000023,142 STATUS_OBJECT_TYPE_MISMATCH = 0xC0000024,143 STATUS_HANDLE_NOT_CLOSABLE = 0xC0000025,144 # 0xC000003145 STATUS_DISK_CORRUPT_ERROR = 0xC0000032,146 STATUS_OBJECT_NAME_NOT_FOUND = 0xC0000034,147 STATUS_OBJECT_NAME_COLLISION = 0xC0000035,148 STATUS_PORT_DISCONNECTED = 0xC0000037,149 STATUS_OBJECT_PATH_INVALID = 0xC0000039,150 STATUS_OBJECT_PATH_NOT_FOUND = 0xC000003A,151 STATUS_OBJECT_PATH_SYNTAX_BAD = 0xC000003B,152 STATUS_DATA_ERROR = 0xC000003E,153 STATUS_CRC_ERROR = 0xC000003F,154 # 0xC000004155 STATUS_SECTION_TOO_BIG = 0xC0000040,156 STATUS_PORT_CONNECTION_REFUSED = 0xC0000041,157 STATUS_INVALID_PORT_HANDLE = 0xC0000042,158 STATUS_SHARING_VIOLATION = 0xC0000043,159 STATUS_THREAD_IS_TERMINATING = 0xC000004B,160 STATUS_EAS_NOT_SUPPORTED = 0xC000004F,161 # 0xC000005162 STATUS_EA_TOO_LARGE = 0xC0000050,163 STATUS_FILE_LOCK_CONFLICT = 0xC0000054,164 STATUS_LOCK_NOT_GRANTED = 0xC0000055,165 STATUS_DELETE_PENDING = 0xC0000056,166 # 0xC000006167 STATUS_PRIVILEGE_NOT_HELD = 0xC0000061,168 STATUS_LOGON_FAILURE = 0xC000006D,169 STATUS_WRONG_PASSWORD = 0xC000006A,170 STATUS_INVALID_LOGON_HOURS = 0xC000006F,171 # 0xC000007172 STATUS_INVALID_WORKSTATION = 0xC0000070,173 STATUS_PASSWORD_EXPIRED = 0xC0000071,174 STATUS_ACCOUNT_DISABLED = 0xC0000072,175 STATUS_RANGE_NOT_LOCKED = 0xC000007E,176 STATUS_DISK_FULL = 0xC000007F,177 # 0xC000009178 STATUS_TOO_MANY_PAGING_FILES = 0xC0000097,179 STATUS_DFS_EXIT_PATH_FOUND = 0xC000009B,180 STATUS_DEVICE_DATA_ERROR = 0xC000009C,181 # 0xC00000A182 STATUS_MEDIA_WRITE_PROTECTED = 0xC00000A2,183 STATUS_BAD_IMPERSONATION_LEVEL = 0xC00000A5,184 STATUS_INSTANCE_NOT_AVAILABLE = 0xC00000AB,185 STATUS_PIPE_NOT_AVAILABLE = 0xC00000AC,186 STATUS_PIPE_STATE = 0xC00000AD,187 STATUS_PIPE_BUSY = 0xC00000AE,188 STATUS_ILLEGAL_FUNCTION = 0xC00000AF,189 # 0xC00000B190 STATUS_PIPE_DISCONNECTED = 0xC00000B0,191 STATUS_PIPE_CLOSING = 0xC00000B1,192 STATUS_INVALID_READ_MODE = 0xC00000B4,193 STATUS_IO_TIMEOUT = 0xC00000B5,194 STATUS_FILE_IS_A_DIRECTORY = 0xC00000BA,195 STATUS_NOT_SUPPORTED = 0xC00000BB,196 # 0xC00000C197 STATUS_UNEXPECTED_NETWORK_ERROR = 0xC00000C4,198 STATUS_PRINT_QUEUE_FULL = 0xC00000C6,199 STATUS_NO_SPOOL_SPACE = 0xC00000C7,200 STATUS_PRINT_CANCELLED = 0xC00000C8,201 STATUS_NETWORK_NAME_DELETED = 0xC00000C9,202 STATUS_NETWORK_ACCESS_DENIED = 0xC00000CA,203 STATUS_BAD_DEVICE_TYPE = 0xC00000CB,204 STATUS_BAD_NETWORK_NAME = 0xC00000CC,205 STATUS_TOO_MANY_SESSIONS = 0xC00000CE,206 # 0xC00000D207 STATUS_REQUEST_NOT_ACCEPTED = 0xC00000D0,208 STATUS_NOT_SAME_DEVICE = 0xC00000D4,209 STATUS_FILE_RENAMED = 0xC00000D5,210 STATUS_PIPE_EMPTY = 0xC00000D9,211 # 0xC00000F212 STATUS_REDIRECTOR_NOT_STARTED = 0xC00000FB,213 # 0xC00001214 STATUS_DIRECTORY_NOT_EMPTY = 0xC0000101,215 STATUS_PROCESS_IS_TERMINATING = 0xC000010A,216 STATUS_TOO_MANY_OPENED_FILES = 0xC000011F,217 STATUS_CANNOT_DELETE = 0xC0000121,218 STATUS_FILE_DELETED = 0xC0000123,219 STATUS_FILE_CLOSED = 0xC0000128,220 STATUS_INVALID_DEVICE_STATE = 0xC0000184,221 STATUS_ACCOUNT_EXPIRED = 0xC0000193,222 # 0xC00002223 STATUS_USER_SESSION_DELETED = 0xC0000203,224 STATUS_INSUFF_SERVER_RESOURCES = 0xC0000205,225 STATUS_PASSWORD_MUST_CHANGE = 0xC0000224,226 STATUS_ACCOUNT_LOCKED_OUT = 0xC0000234,227 STATUS_PATH_NOT_COVERED = 0xC0000257,228 # 0xC00003229 STATUS_NETWORK_SESSION_EXPIRED = 0xC000035C,230 # 0xC0002231 STATUS_SMB_TOO_MANY_UIDS = 0xC000205A,232 # 0xF233 STATUS_SMB_NO_SUPPORT = 0xFFFF0002,234};235function determine_transaction_type(header: SMB_Header, name: SMB_string): TransactionType236 %{237 if ( name == NULL )238 {239 return SMB_UNKNOWN;240 }241 if ( (${header.unicode} && ${name.u.s}->size() > 10 && ${name.u.s[0]} == '\\' && 242 ${name.u.s[2]} == 'P' && 243 ${name.u.s[4]} == 'I' && 244 ${name.u.s[6]} == 'P' && 245 ${name.u.s[8]} == 'E' && 246 ${name.u.s[10]} == '\\') ||247 (!${header.unicode} && ${name.a}->size() > 5 && ${name.a}->val()->at(0) == '\\' && 248 ${name.a}->val()->at(1) == 'P' && 249 ${name.a}->val()->at(2) == 'I' &&250 ${name.a}->val()->at(3) == 'P' && 251 ${name.a}->val()->at(4) == 'E' && 252 ${name.a}->val()->at(5) == '\\') )253 {254 if ( (${header.unicode} && ${name.u.s}->size() > 22 && ${name.u.s[12]} == 'L' && 255 ${name.u.s[14]} == 'A' && 256 ${name.u.s[16]} == 'N' && 257 ${name.u.s[18]} == 'M' && 258 ${name.u.s[20]} == 'A' && 259 ${name.u.s[22]} == 'N') ||260 (!${header.unicode} && ${name.a}->size() > 11 && ${name.a}->val()->at(6) == 'L' && 261 ${name.a}->val()->at(7) == 'A' && 262 ${name.a}->val()->at(8) == 'N' && 263 ${name.a}->val()->at(9) == 'M' && 264 ${name.a}->val()->at(10) == 'A' && 265 ${name.a}->val()->at(11) == 'N') )266 {267 return SMB_RAP;268 }269 return SMB_PIPE;270 }271 return SMB_UNKNOWN;...
status.js
Source:status.js
1/*2 * status.js3 * 4 * dependencies: prototype.js, effects.js, lowpro.js5 * 6 * --------------------------------------------------------------------------7 * 8 * Allows you to display a status message when submiting a form. To use,9 * simply add the following to application.js:10 * 11 * Event.addBehavior({'form': Status.FormBehavior()});12 * 13 * And then add an "onsubmit_status" to each form that you want to display14 * a status message on submit for:15 * 16 * <form onsubmit_status="Saving changes" ...>17 * 18 * Some code taken from popup.js.19 * 20 * For more information, see:21 * 22 * http://wiseheartdesign.com/articles/2009/12/16/statusjs-work-well-with-messages/23 * 24 * --------------------------------------------------------------------------25 * 26 * Copyright (c) 2008-2009, John W. Long27 * Portions copyright (c) 2008, Five Points Solutions, Inc.28 * 29 * Permission is hereby granted, free of charge, to any person obtaining a30 * copy of this software and associated documentation files (the "Software"),31 * to deal in the Software without restriction, including without limitation32 * the rights to use, copy, modify, merge, publish, distribute, sublicense,33 * and/or sell copies of the Software, and to permit persons to whom the34 * Software is furnished to do so, subject to the following conditions:35 * 36 * The above copyright notice and this permission notice shall be included in37 * all copies or substantial portions of the Software.38 * 39 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR40 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,41 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL42 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER43 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING44 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER45 * DEALINGS IN THE SOFTWARE.46 *47 */48var Status = {49 CornerThickness: 12,50 SpinnerImage: '/images/status_spinner.gif',51 SpinnerImageWidth: 32,52 SpinnerImageHeight: 33,53 BackgroundImage: '/images/status_background.png',54 TopLeftImage: '/images/status_top_left.png',55 TopRightImage: '/images/status_top_right.png',56 BottomLeftImage: '/images/status_bottom_left.png',57 BottomRightImage: '/images/status_bottom_right.png',58 MessageFontFamily: '"Trebuchet MS", Verdana, Arial, Helvetica, sans-serif',59 MessageFontSize: '14px',60 MessageColor: '#e5e5e5',61 Modal: false,62 ModalOverlayColor: 'white',63 ModalOverlayOpacity: 0.464};65Status.window = function() {66 if (!this.statusWindow) this.statusWindow = new Status.Window();67 return this.statusWindow;68}69Status.BackgroundImages = function() {70 return $A([71 Status.SpinnerImage,72 Status.BackgroundImage,73 Status.TopLeftImage,74 Status.TopRightImage,75 Status.BottomLeftImage,76 Status.BottomRightImage77 ]);78}79Status.preloadImages = function() {80 if (!Status.imagesPreloaded) {81 Status.BackgroundImages().each(function(src) {82 var image = new Image();83 image.src = src;84 });85 Status.preloadedImages = true;86 }87}88Status.FormBehavior = Behavior.create({89 initialize: function() {90 var attr = this.element.attributes['data-onsubmit_status']91 if (attr) this.status = attr.value; 92 if (this.status) this.element.observe('submit', function() { showStatus(this.status) }.bind(this));93 }94});95Status.LinkBehavior = Behavior.create({96 initialize: function() {97 var attr = this.element.attributes['data-onclick_status']98 if (attr) this.status = attr.value; 99 if (this.status) this.element.observe('click', function() { showStatus(this.status) }.bind(this));100 }101});102Status.Window = Class.create({103 initialize: function() {104 Status.preloadImages();105 this.buildWindow();106 },107 108 buildWindow: function() {109 this.element = $table({'class': 'status_window', style: 'display: none; position: absolute; border-collapse: collapse; padding: 0px; margin: 0px; z-index: 10000'});110 var tbody = $tbody();111 this.element.insert(tbody)112 113 var top_row = $tr();114 top_row.insert($td({style: 'background: url(' + Status.TopLeftImage + '); height: ' + Status.CornerThickness + 'px; width: ' + Status.CornerThickness + 'px; padding: 0px'}));115 top_row.insert($td({style: 'background: url(' + Status.BackgroundImage + '); height: ' + Status.CornerThickness + 'px; padding: 0px'}))116 top_row.insert($td({style: 'background: url(' + Status.TopRightImage + '); height: ' + Status.CornerThickness + 'px; width: ' + Status.CornerThickness + 'px; padding: 0px'}));117 tbody.insert(top_row);118 119 var content_row = $tr();120 content_row.insert($td({style: 'background: url(' + Status.BackgroundImage + '); width: ' + Status.CornerThickness + 'px; padding: 0px'}, ''));121 this.content = $td({'class': 'status_content', style: 'background: url(' + Status.BackgroundImage + '); padding: 0px ' + Status.CornerThickness + 'px'});122 content_row.insert(this.content);123 content_row.insert($td({style: 'background: url(' + Status.BackgroundImage + '); width: ' + Status.CornerThickness + 'px; padding: 0px'}, ''));124 tbody.insert(content_row);125 126 var bottom_row = $tr();127 bottom_row.insert($td({style: 'background: url(' + Status.BottomLeftImage + '); height: ' + Status.CornerThickness + 'px; width: ' + Status.CornerThickness + 'px; padding: 0px'}));128 bottom_row.insert($td({style: 'background: url(' + Status.BackgroundImage + '); height: ' + Status.CornerThickness + 'px; padding: 0px'}))129 bottom_row.insert($td({style: 'background: url(' + Status.BottomRightImage + '); height: ' + Status.CornerThickness + 'px; width: ' + Status.CornerThickness + 'px; padding: 0px'}));130 tbody.insert(bottom_row);131 132 this.spinner = $img({src: Status.SpinnerImage, width: Status.SpinnerImageWidth, height: Status.SpinnerImageHeight, alt: ''});133 this.status = $div({'class': 'status_message', style: 'color: ' + Status.MessageColor + '; font-family: ' + Status.MessageFontFamily + '; font-size: ' + Status.MessageFontSize});134 135 var table = $table({border: 0, cellpadding: 0, cellspacing: 0, style: 'table-layout: auto'},136 $tbody(137 $tr(138 $td({style: 'width: ' + Status.SpinnerImageWidth + 'px'}, this.spinner),139 $td({style: 'padding-left: ' + Status.CornerThickness + 'px'}, this.status)140 )141 )142 );143 this.content.insert(table);144 145 var body = $$('body').first();146 body.insert(this.element);147 },148 149 setStatus: function(value) {150 this.status.update(value)151 },152 153 getStatus: function() {154 return this.status.innerHTML();155 },156 157 show: function(modal) {158 this.centerWindowInView();159 if (modal || Status.Modal) this._showModalOverlay();160 this.element.show();161 },162 163 hide: function() {164 this._hideModalOverlay();165 this.element.hide();166 },167 168 toggle: function() {169 if (this.visible()) {170 this.hide();171 } else {172 this.show();173 }174 },175 176 visible: function() {177 return this.element.visible();178 },179 180 centerWindowInView: function() {181 var offsets = document.viewport.getScrollOffsets();182 this.element.setStyle({183 left: parseInt(offsets.left + (document.viewport.getWidth() - this.element.getWidth()) / 2) + 'px',184 top: parseInt(offsets.top + (document.viewport.getHeight() - this.element.getHeight()) / 2.2) + 'px'185 });186 },187 188 _showModalOverlay: function() {189 if (!this.overlay) {190 this.overlay = $div({style: 'position: absolute; background-color: ' + Status.ModalOverlayColor + '; top: 0px; left: 0px; z-index: 100;'});191 this.overlay.setStyle('position: fixed');192 this.overlay.setOpacity(Status.ModalOverlayOpacity);193 document.body.insert(this.overlay);194 }195 this.overlay.setStyle('height: ' + document.viewport.getHeight() + 'px; width: ' + document.viewport.getWidth() + 'px;');196 this.overlay.show();197 },198 199 _hideModalOverlay: function() {200 if (this.overlay) this.overlay.hide();201 }202});203Event.observe(document, 'dom:loaded', function() {204 Status.preloadImages();205});206// Sets the status to string207function setStatus(string) {208 Status.window().setStatus(string);209 if (Status.window().visible()) Status.window().centerWindowInView();210}211// Sets the status to string and shows the status window. If modal is passed212// as true a white transparent div that covers the entire page is positioned213// under the status window causing a diming effect and preventing stray mouse214// clicks.215function showStatus(string, modal) {216 setStatus(string);217 Status.window().show(modal);218}219// Hides the status window220function hideStatus() {221 Status.window().hide();...
lexical-001.js
Source:lexical-001.js
1/*2* The contents of this file are subject to the Netscape Public3* License Version 1.1 (the "License"); you may not use this file4* except in compliance with the License. You may obtain a copy of5* the License at http://www.mozilla.org/NPL/6*7* Software distributed under the License is distributed on an "AS8* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or9* implied. See the License for the specific language governing10* rights and limitations under the License.11*12* The Original Code is mozilla.org code.13*14* The Initial Developer of the Original Code is Netscape15* Communications Corporation. Portions created by Netscape are16* Copyright (C) 1998 Netscape Communications Corporation. All17* Rights Reserved.18*19* Contributor(s): pschwartau@netscape.com 20* 26 November 200021*22*23*SUMMARY: Testing numeric literals that begin with 0. 24*This test arose from Bugzilla bug 49233.25*The best explanation is from jsscan.c: 26*27* "We permit 08 and 09 as decimal numbers, which makes 28* our behaviour a superset of the ECMA numeric grammar. 29* We might not always be so permissive, so we warn about it."30*31*Thus an expression 010 will evaluate, as always, as an octal (to 8).32*However, 018 will evaluate as a decimal, to 18. Even though the33*user began the expression as an octal, he later used a non-octal34*digit. We forgive this and assume he intended a decimal. If the35*JavaScript "strict" option is set though, we will give a warning.36*/37//-------------------------------------------------------------------------------------------------38var bug = '49233';39var summary = 'Testing numeric literals that begin with 0';40var statprefix = 'Testing ';41var quote = "'";42var status = new Array();43var actual = new Array();44var expect = new Array();45status[0]=showStatus('01')46actual[0]=0147expect[0]=148status[1]=showStatus('07')49actual[1]=0750expect[1]=751status[2]=showStatus('08')52actual[2]=0853expect[2]=854status[3]=showStatus('09')55actual[3]=0956expect[3]=957status[4]=showStatus('010')58actual[4]=01059expect[4]=860status[5]=showStatus('017')61actual[5]=01762expect[5]=1563status[6]=showStatus('018')64actual[6]=01865expect[6]=1866status[7]=showStatus('019')67actual[7]=01968expect[7]=1969status[8]=showStatus('079')70actual[8]=07971expect[8]=7972status[9]=showStatus('0079')73actual[9]=007974expect[9]=7975status[10]=showStatus('099')76actual[10]=09977expect[10]=9978status[11]=showStatus('0099')79actual[11]=009980expect[11]=9981status[12]=showStatus('000000000077')82actual[12]=00000000007783expect[12]=6384status[13]=showStatus('000000000078')85actual[13]=00000000007886expect[13]=7887status[14]=showStatus('0000000000770000')88actual[14]=000000000077000089expect[14]=25804890status[15]=showStatus('0000000000780000')91actual[15]=000000000078000092expect[15]=78000093status[16]=showStatus('0765432198')94actual[16]=076543219895expect[16]=76543219896status[17]=showStatus('00076543219800')97actual[17]=0007654321980098expect[17]=7654321980099status[18]=showStatus('0000001001007')100actual[18]=0000001001007101expect[18]=262663102status[19]=showStatus('0000001001009')103actual[19]=0000001001009104expect[19]=1001009105status[20]=showStatus('070')106actual[20]=070107expect[20]=56108status[21]=showStatus('080')109actual[21]=080110expect[21]=80111//-------------------------------------------------------------------------------------------------112test();113//-------------------------------------------------------------------------------------------------114function showStatus(msg)115{116 return (statprefix + quote + msg + quote);117}118function test() 119{120 enterFunc ('test'); 121 printBugNumber (bug);122 printStatus (summary);123 for (i=0; i !=status.length; i++)124 {125 reportCompare (expect[i], actual[i], status[i]);126 }127 exitFunc ('test');...
helper.js
Source:helper.js
1define(["handlebars"],function() {2 3 4 5 Handlebars.registerHelper('taskStatu', function(data) {6 var taskStatus = '';7 8 switch (data) {9 10 case 1:11 taskStatus = 'æªå·¡æ£';12 break;13 case 2:14 taskStatus = 'å·¡æ£ä¸';15 break;16 case 3:17 taskStatus = '已巡æ£'; 18 break;19 case 5:20 taskStatus = 'ä»»å¡å¤±è´¥';21 case 6:22 taskStatus = 'ä»»å¡å¤±è´¥';23 break;24 case 7:25 taskStatus = 'ä»»å¡å¤±è´¥';26 break27 default:28 taskStatus = 'æªç¥'; 29 break;30 31 }32 33 return taskStatus;34 });35 Handlebars.registerHelper('isShowLine', function(data,options) {36 if(data===null){37 return "--"38 }else{39 return data40 }41 });42 Handlebars.registerHelper('isred', function(status) {43 if(status === 1 || status === "1"){44 return "gray"45 }46 if(status === 2 || status === "2"){47 return "inspect"48 }49 if(status === 3 || status === "3"){50 return "green"51 }52 if (status === 5 || status === "5") {53 return "colorRed"54 } else if (status === 6 || status === "6") {55 return "colorRed"56 } else if (status === 7 || status === "7") {57 return "colorRed"58 }59 return "";60 });61 Handlebars.registerHelper('iserrorHidden', function(status) {62 if (status === 5 || status === "5") {63 return ""64 } else if (status === 6 || status === "6") {65 return ""66 }else if (status === 7 || status === "7") {67 return ""68 }69 return "hidden";70 });71 Handlebars.registerHelper('taskerroinfo', function(status) {72 if (status === 5 || status === "5") {73 jQuery("#onlineBox li.taskitem .statuslist").find("p").removeClass("hasPad");74 return "å ç¨"75 } else if (status === 6 || status === "6") {76 jQuery("#onlineBox li.taskitem .statuslist").find("p").removeClass("hasPad");77 return "æ°æ®ååå¼å¸¸"78 }else if(status === 7 || status === "7"){79 jQuery("#onlineBox li.taskitem .statuslist").find("p").removeClass("hasPad");80 return "PCCå¼å¸¸" 81 }82 return "æªç¥";83 });84 ...
Using AI Code Generation
1const puppeteer = require('puppeteer');2(async () => {3 const browser = await puppeteer.launch();4 const page = await browser.newPage();5 await page.screenshot({path: 'example.png'});6 console.log(await page.status());7 await browser.close();8})();
Using AI Code Generation
1const puppeteer = require('puppeteer');2(async () => {3 const browser = await puppeteer.launch();4 const page = await browser.newPage();5 console.log(response.status());6 await browser.close();7})();8### 7. Page.waitForNavigation() method9const puppeteer = require('puppeteer');10(async () => {11 const browser = await puppeteer.launch();12 const page = await browser.newPage();13 await page.click('a[href="/intl/en/about"]');14 await page.waitForNavigation();15 await page.screenshot({ path: 'about.png' });16 await browser.close();17})();18### 8. Page.waitForSelector() method19const puppeteer = require('puppeteer');20(async () => {21 const browser = await puppeteer.launch();22 const page = await browser.newPage();23 await page.waitForSelector('.gLFyf');24 await page.type('.gLFyf', 'Puppeteer');25 await page.screenshot({ path: 'puppeteer.png' });26 await browser.close();27})();28### 9. Page.waitForXPath() method29const puppeteer = require('puppeteer');30(async () => {31 const browser = await puppeteer.launch();32 const page = await browser.newPage();
Using AI Code Generation
1const puppeteer = require('puppeteer');2(async () => {3 const browser = await puppeteer.launch();4 const page = await browser.newPage();5 const status = await page.status();6 console.log(status);7 await browser.close();8})();9const puppeteer = require('puppeteer');10(async () => {11 const browser = await puppeteer.launch();12 const page = await browser.newPage();13 const target = await page.target();14 console.log(target);15 await browser.close();16})();17const puppeteer = require('puppeteer');18(async () => {19 const browser = await puppeteer.launch();20 const page = await browser.newPage();21 const title = await page.title();22 console.log(title);23 await browser.close();24})();25const puppeteer = require('puppeteer');26(async () => {27 const browser = await puppeteer.launch();28 const page = await browser.newPage();29 await page.type('input[title="Search"]', 'Hello World');30 await browser.close();31})();32const puppeteer = require('puppeteer');33(async () => {34 const browser = await puppeteer.launch();35 const page = await browser.newPage();36 const userAgent = await page.userAgent();37 console.log(userAgent);38 await browser.close();39})();40const puppeteer = require('puppeteer');
Using AI Code Generation
1const puppeteer = require('puppeteer');2(async () => {3 const browser = await puppeteer.launch();4 const page = await browser.newPage();5 console.log(await page.title());6 await browser.close();7})();8const puppeteer = require('puppeteer');9(async () => {10 const browser = await puppeteer.launch();11 const page = await browser.newPage();12 console.log(await page.title());13 await browser.close();14})();15const puppeteer = require('puppeteer');16(async () => {17 const browser = await puppeteer.launch();18 const page = await browser.newPage();19 console.log(await page.title());20 await browser.close();21})();22const puppeteer = require('puppeteer');23(async () => {24 const browser = await puppeteer.launch();25 const page = await browser.newPage();26 console.log(await page.title());27 await browser.close();28})();29const puppeteer = require('puppeteer');30(async () => {31 const browser = await puppeteer.launch();32 const page = await browser.newPage();33 console.log(await page.title());34 await browser.close();35})();36const puppeteer = require('puppeteer');37(async () => {38 const browser = await puppeteer.launch();39 const page = await browser.newPage();40 console.log(await page.title());41 await browser.close();42})();43const puppeteer = require('puppeteer');44(async () => {45 const browser = await puppeteer.launch();46 const page = await browser.newPage();47 console.log(await page.title());48 await browser.close();49})();
Using AI Code Generation
1const puppeteer = require('puppeteer');2(async () => {3const browser = await puppeteer.launch({headless: false});4const page = await browser.newPage();5await page.screenshot({path: 'google.png'});6await browser.close();7})();
Using AI Code Generation
1const puppeteer = require('puppeteer');2const fs = require('fs');3(async () => {4 const browser = await puppeteer.launch();5 const page = await browser.newPage();6 await page.screenshot({path: 'google.png'});7 const status = await response.status();8 console.log(status);9 await browser.close();10})();11{12 "scripts": {13 },14 "dependencies": {15 }16}17{18 "dependencies": {19 "puppeteer": {20 "requires": {21 }22 }23 }24}
Using AI Code Generation
1const puppeteer = require('puppeteer');2const fs = require('fs');3const path = require('path');4(async () => {5 const browser = await puppeteer.launch();6 const page = await browser.newPage();7 await page.screenshot({path: 'google.png'});8 await browser.close();9})();10const puppeteer = require('puppeteer');11const fs = require('fs');12const path = require('path');13(async () => {14 const browser = await puppeteer.launch();15 const page = await browser.newPage();16 await page.screenshot({path: 'google.png'});17 await browser.close();18})();19const puppeteer = require('puppeteer');20const fs = require('fs');21const path = require('path');22(async () => {23 const browser = await puppeteer.launch();24 const page = await browser.newPage();25 await page.screenshot({path: 'google.png'});26 await browser.close();27})();28const puppeteer = require('puppeteer');29const fs = require('fs');30const path = require('path');31(async () => {32 const browser = await puppeteer.launch();33 const page = await browser.newPage();34 await page.screenshot({path: 'google.png'});35 await browser.close();36})();37const puppeteer = require('puppeteer');38const fs = require('fs');39const path = require('path');40(async () => {41 const browser = await puppeteer.launch();42 const page = await browser.newPage();43 await page.screenshot({path: 'google.png'});44 await browser.close();45})();46const puppeteer = require('puppeteer');47const fs = require('fs');48const path = require('path');49(async () => {50 const browser = await puppeteer.launch();
Using AI Code Generation
1const puppeteer = require('puppeteer');2(async () => {3 const browser = await puppeteer.launch();4 const page = await browser.newPage();5 await page.waitFor(2000);6 console.log(await page.status());7 await browser.close();8})();9### Page.waitForNavigation([options])10const puppeteer = require('puppeteer');11(async () => {12 const browser = await puppeteer.launch();13 const page = await browser.newPage();14 await page.waitFor(2000);15 await page.click('a[href="/intl/en/about/products/"]');16 await page.waitForNavigation();17 console.log(await page.title());18 await browser.close();19})();20### Page.waitForRequest(url[, options])21const puppeteer = require('puppeteer');22(async () => {23 const browser = await puppeteer.launch();24 const page = await browser.newPage();25 const [request] = await Promise.all([26 page.click('a[href="/intl/en/about/products/"]'),27 ]);28 console.log(request.url());29 await browser.close();30})();
Using AI Code Generation
1const puppeteer = require('puppeteer');2const assert = require('assert');3(async () => {4 const browser = await puppeteer.launch({ headless: false });5 const page = await browser.newPage();6 assert.equal(response.status(), 200);7 await page.waitFor(5000);8 await browser.close();9})();10const puppeteer = require('puppeteer');11const assert = require('assert');12(async () => {13 const browser = await puppeteer.launch({ headless: false });14 const page = await browser.newPage();15 assert.equal(response.statusText(), "OK");16 await page.waitFor(5000);17 await browser.close();18})();19const puppeteer = require('puppeteer');20const assert = require('assert');21(async () => {22 const browser = await puppeteer.launch({ headless: false });23 const page = await browser.newPage();24 await page.waitFor(5000);25 await browser.close();26})();27const puppeteer = require('puppeteer');28const assert = require('assert');29(async () => {30 const browser = await puppeteer.launch({ headless: false });31 const page = await browser.newPage();32 assert.equal(response.fromCache(), false);33 await page.waitFor(5000);34 await browser.close();35})();36const puppeteer = require('puppeteer');37const assert = require('assert');38(async () => {39 const browser = await puppeteer.launch({ headless: false });40 const page = await browser.newPage();
Using AI Code Generation
1const puppeteer = require('puppeteer');2const fs = require('fs');3const path = require('path');4const url = require('url');5const {promisify} = require('util');6const writeFile = promisify(fs.writeFile);7const mkdir = promisify(fs.mkdir);8(async () => {9 const browser = await puppeteer.launch();10 const page = await browser.newPage();11 const status = await page.status();12 console.log(status);13 await browser.close();14})();15const puppeteer = require('puppeteer');16const fs = require('fs');17const path = require('path');18const url = require('url');19const {promisify} = require('util');20const writeFile = promisify(fs.writeFile);21const mkdir = promisify(fs.mkdir);22(async () => {23 const browser = await puppeteer.launch();24 const page = await browser.newPage();25 await page.setViewport({26 });27 await page.screenshot({path: 'example.png'});28 await browser.close();29})();30const puppeteer = require('puppeteer');31const fs = require('fs');32const path = require('path');33const url = require('url');34const {promisify} = require('util');35const writeFile = promisify(fs.writeFile);36const mkdir = promisify(fs.mkdir);37(async () => {38 const browser = await puppeteer.launch();39 const page = await browser.newPage();40 await page.setExtraHTTPHeaders({41 });42 await page.screenshot({path: 'example.png'});43 await browser.close();44})();45const puppeteer = require('puppeteer');46const fs = require('fs');47const path = require('path');48const url = require('url');49const {promisify} = require('util');50const writeFile = promisify(fs.writeFile);51const mkdir = promisify(fs.mkdir);52(async () => {53 const browser = await puppeteer.launch();
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!