Best JavaScript code snippet using wpt
parser.js
Source:parser.js
...6263 }6465 // initialization66 tokenIterator.loadNext();6768 //console.log(tokenIterator.tokens)6970 /*71 * Convention used here:72 * (i) every parsing function assumes it starts where the iterator is left of73 * (ii) every function moves pointer forward iff it is sure it is going to need next token74 * and/or is going to call recursive parsing (ii) 75 * 76 * We distinguish 3 recursive parsing functions:77 * (i) valueParser - parses single value with unary operators - note that it might contain e.q. anchored funcion value78 * then it might call recursively expParser and/or blockParser and return single expression79 * (ii) expParser - parses single expression - grabs all operators and values (with unops) and composes an expression80 * (iii) blockParser - parses an entire block of code (multiple expressions)81 */82 83 848586 function recursiveExpParser(endPred = isSemicolon) {87 var expr = [];8889 var tokenType = tokenIterator.tokenType;90 var currToken = tokenIterator.currToken;9192 // special forms93 if(tokenType === constants.tokenConst.word) {94 switch(currToken) {95 case 'if':96 tokenIterator.loadNext();97 if(tokenIterator.currToken !== '(') {98 throw 'Expected "(" after "if"';99 }100101 tokenIterator.loadNext();102 let ifPred = recursiveExpParser(isClosingBracket);103104 tokenIterator.loadNext();105 if(tokenIterator.currToken !== '{') {106 throw 'Expected "{" in "if" expression';107 };108109 tokenIterator.loadNext();110 let ifBlock = recursiveBlockParser(111 isClosingCurlyBracket,112 isSemicolon,113 false,114 );115116 let partialIf = {117 type: constants.expConst.ifExp,118 pred: ifPred,119 code: encapsBlockExp( ifBlock ),120 else: null,121 }122123 if(tokenIterator.finished()) {124 return partialIf;125 }126127 tokenIterator.loadNext();128 if(tokenIterator.currToken !== 'else') {129 tokenIterator.loadPrev(); // convention130131 return partialIf;132 }133134 tokenIterator.loadNext();135 if(tokenIterator.currToken !== '{') {136 throw 'Expected "{" in "else" expression';137 };138139 tokenIterator.loadNext();140 let elseBlock = recursiveBlockParser(141 isClosingCurlyBracket,142 isSemicolon,143 false,144 );145146 partialIf.else = {147 type: constants.expConst.elseExp,148 code: encapsBlockExp( elseBlock ),149 }150151 return partialIf;152153 case 'for':154 tokenIterator.loadNext();155 if(tokenIterator.currToken !== '(') {156 throw 'Expected "(" after "for"';157 }158159 tokenIterator.loadNext();160 let initExp = recursiveExpParser(isSemicolon);161162 tokenIterator.loadNext();163 let forPred = recursiveExpParser(isSemicolon);164165 tokenIterator.loadNext();166 let forUpdate = recursiveExpParser(isClosingBracket);167168 tokenIterator.loadNext();169 if(tokenIterator.currToken !== '{') {170 throw 'Expected "{" in "for" expression';171 };172173 tokenIterator.loadNext();174 let codeBlockFor = recursiveBlockParser(175 isClosingCurlyBracket,176 isSemicolon,177 false,178 );179 return {180 type: constants.expConst.forExp,181 init: initExp,182 pred: forPred,183 update: forUpdate,184 code: encapsBlockExp( codeBlockFor ),185 };186187 case 'while':188 tokenIterator.loadNext();189 if(tokenIterator.currToken !== '(') {190 throw 'Expected "(" after "while"';191 }192193 tokenIterator.loadNext();194 pred = recursiveExpParser(isClosingBracket);195196 tokenIterator.loadNext();197 if(tokenIterator.currToken !== '{') {198 throw 'Expected "{" in "while" expression';199 };200201 tokenIterator.loadNext();202 let codeBlockWhile = recursiveBlockParser(203 isClosingCurlyBracket,204 isSemicolon,205 false,206 );207 return {208 type: constants.expConst.whileExp,209 pred: pred,210 code: encapsBlockExp( codeBlockWhile ),211 };212 213 case 'break':214 tokenIterator.loadNext();215 if(tokenIterator.currToken !== ';') {216 throw 'break yourself bozo';217 }218 return {219 type: constants.expConst.breakExp220 };221222 case 'continue':223 tokenIterator.loadNext();224 if(tokenIterator.currToken !== ';') {225 throw 'invalida continue';226 }227 return {228 type: constants.expConst.continueExp229 };230231 case 'return':232 tokenIterator.loadNext();233 let retExp = recursiveExpParser(isSemicolon);234 return {235 type: constants.expConst.returnExp,236 exp: retExp,237 };238 }239 }240241 while(true) {242 var tokenType = tokenIterator.tokenType;243 var currToken = tokenIterator.currToken;244245 // if reaching unexpected end - return empty expression246 if(endPred(tokenType, currToken)) {247 return { type: constants.expConst.emptyExp };248 }249 250 // get value251 expr.push(recursiveValueParser());252253 tokenIterator.loadNext();254255 tokenType = tokenIterator.tokenType;256 currToken = tokenIterator.currToken;257 258 // opening square or normal bracket -> array or function aplication -> the only right sided unary operands259 while(currToken === '[' || currToken === '(') {260 tokenIterator.loadNext();261 262 if(currToken == '[') {263 let arrayExp = recursiveExpParser(isClosingSquareBracket);264 expr[expr.length - 1] = {265 type: constants.expConst.arrayApplyExp,266 array: expr[expr.length - 1],267 index: arrayExp,268 }; 269 }270 else {271 let funcApplyExp = recursiveBlockParser(272 isClosingBracket,273 (a, b) => (isClosingBracket(a, b) || isComma(a, b))274 );275 expr[expr.length - 1] = {276 type: constants.expConst.funcInvokeExp,277 func: expr[expr.length - 1],278 args: funcApplyExp,279 }; 280 }281282 tokenIterator.loadNext();283 tokenType = tokenIterator.tokenType;284 currToken = tokenIterator.currToken;285 }286287 // ending symbol288 if(endPred(tokenType, currToken)) {289 return rollOps( expr ); 290 // rollOps defined below - grabs collection of operators and 291 // values and composes single expression292 }293 // if operator, store it and continue294 else if(tokenType === constants.tokenConst.operand) {295 if(!(opconf.validBinops[currToken] ?? false)) {296 throw `Unknown binary operator ${currToken}`;297 }298 expr.push(currToken);299 }300301 tokenIterator.loadNext();302 }303 }304305 // value parser306 function recursiveValueParser() {307308 // useless code, afraid to delete it tho309 if(tokenIterator.iterId >= tokenIterator.tokens.length) {310 return { type: constants.expConst.emptyExp };311 }312313 switch(tokenIterator.tokenType) {314315 // if numeric type316 case constants.tokenConst.number:317 case constants.tokenConst.float:318 return {319 type: constants.expConst.constExp,320 value: {321 type: constants.typeConst.number,322 value: +(tokenIterator.currToken),323 }324 };325326 // if string type327 case constants.tokenConst.string:328 return {329 type: constants.expConst.constExp,330 value: {331 type: constants.typeConst.string,332 value: tokenIterator.currToken,333 }334 };335 336 // if unop337 case constants.tokenConst.operand: 338 if(!(opconf.validUnops[tokenIterator.currToken] ?? false)) {339 throw `Unknown unary operator ${tokenIterator.currToken}`;340 }341 let unaryOp = tokenIterator.currToken;342 tokenIterator.loadNext();343 344 return {345 type: constants.expConst.unopExp,346 op: unaryOp,347 exp: recursiveValueParser(),348 }349 //if special350 case constants.tokenConst.special:351352 // if opeining bracket, read expr until closing bracket353 if(tokenIterator.currToken == '(') {354 tokenIterator.loadNext();355 return recursiveExpParser(isClosingBracket);356 }357 if(tokenIterator.currToken == '[') {358 tokenIterator.loadNext();359360 let res = (recursiveBlockParser(361 isClosingSquareBracket,362 (a, b) => (isClosingSquareBracket(a, b) || isComma(a, b)))363 );364365 return {366 type: constants.expConst.constExp,367 value: {368 type: constants.typeConst.array,369 value: res,370 }371 }372 }373 throw `Invalid special token ${tokenIterator.currToken}`; 374 // word - multiple cases here ingluding true, false, ifs fors, varaibles and so on375 case constants.tokenConst.word:376 switch(tokenIterator.currToken) {377 378 case 'true':379 case 'false': 380 return {381 type: constants.expConst.constExp,382 value: {383 type: constants.typeConst.bool,384 value: tokenIterator.currToken === 'true',385 }386 }387 case 'null':388 return {389 type: constants.expConst.constExp,390 value: {391 type: constants.typeConst.null,392 value: null,393 }394 }395 case 'func':396 tokenIterator.loadNext();397 if(tokenIterator.currToken !== '(') {398 throw 'function';399 }400401 let argsExp = [];402403 tokenIterator.loadNext();404405 while(tokenIterator.currToken !== ')') {406 if(tokenIterator.tokenType !== constants.tokenConst.word) {407 throw 'invalid func agrs';408 }409410 argsExp.push(tokenIterator.currToken);411412 tokenIterator.loadNext();413 if(tokenIterator.currToken === ',') {414 tokenIterator.loadNext();415 continue;416 }417418 if(tokenIterator.currToken !== ')') {419 throw 'invalid func args closing'420 }421 break;422 }423424 tokenIterator.loadNext();425 if(tokenIterator.currToken !== '{') {426 throw 'Invalid function body';427 }428429 tokenIterator.loadNext();430 let funcBody = recursiveBlockParser(431 isClosingCurlyBracket,432 isSemicolon,433 false,434 );435436 return {437 type: constants.expConst.constExp,438 value: {439 type: constants.typeConst.function,440 args: argsExp,441 code: encapsBlockExp( funcBody ),442 }443 };444445 case 'for':446 case 'break':447 case 'continue':448 case 'if':449 case 'else':450 case 'while':451 case 'return':452 throw `invalid var name ${tokenIterator.currToken}`;453 default:454 return {455 type: constants.expConst.varExp,456 token: tokenIterator.currToken,457 }458 }459 }460 }461462 function encapsBlockExp(exps) {463 return {464 type: constants.expConst.blockExp,465 code: exps,466 }467 }468469 function recursiveBlockParser(470 endPred = function() { return tokenIterator.finished(); }, 471 exprPred = isSemicolon,472 breakEarly = true,473 ) {474 var exps = [];475476 while(!endPred(tokenIterator.tokenType, tokenIterator.currToken)) {477 478 exps.push(recursiveExpParser(exprPred));479480 //console.log(`${tokenIterator.currToken} ${tokenIterator.iterId} ${breakEarly}`);481482 if(breakEarly && endPred(tokenIterator.tokenType, tokenIterator.currToken)) {483 //console.log(`${tokenIterator.currToken} ${tokenIterator.iterId}`);484 //console.log('early')485 break;486 }487 488 tokenIterator.loadNext();489490 //console.log('next');491 }492493 //console.log(`${tokenIterator.currToken} ${tokenIterator.iterId}`);494 //console.log('lete')495496 return exps;497 }498499 500 return encapsBlockExp(recursiveBlockParser());501}502
...
ExerciseItem.js
Source:ExerciseItem.js
...54 this.loadExercise(this.props.exercises[0]._id);55 }56 }5758 loadNext() {59 this.props.toCongratulate.call(null);60 let currentExercise = this.state.currentExercise;61 let exercises = this.props.exercises;62 if (currentExercise != null) {63 let currentIndex = this.state.currentIndex + 1;64 let exerciseNumber = parseInt(this.state.exerciseNumber) + 1;65 if (exercises[currentIndex] != undefined) {66 this.setState(67 {68 currentIndex: currentIndex,69 exerciseNumber: exerciseNumber,70 },71 (() => {72 this.loadExercise(exercises[currentIndex]._id);
...
people.js
Source:people.js
...40 41 // Auto render42 Users.on('successLoad', function(){43 if( $("#people-table-body").height() < $(window).height() )44 Users.loadNext();45 });46 47 48/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 49 * Users view50 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */51/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 52 * Initialize 53 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */54 55 People.init = function(){56 People.takeControl();57 var defaultPeriod = ($._GET() || {}).p;58 defaultPeriod && People.setPeriod( defaultPeriod, true );59 Users.loadNext();60 }61 62 63 // Initialize module64 //!People.get("inited") && 65 66 People.setPeriod = function ( period, useSelector ) {67 if(Users.isBusy()) return false;68 people_counter = 0;69 70 var selector = useSelector === true,71 btn = $(selector ? 'li[data-action="setPeriod"]' : this);72 selector && (btn = btn.filter('[data-param="'+period+'"]'));73 btn.makeActive( true );74 $$("#people-table-body").empty();75 Users.resetAll();76 Users.query("period", period);77 Users.loadNext();78 $.cookie("RATING_PEOPLE_PERIOD", period);79 APP.go(window.__APP_goBack_URL + "?p=" + period);80 }81 People.on("loadNext", function(){82 Users.loadNext();83 });84 // try {85 86 // } catch(e) {87 // Users.query('period', $.cookie("RATING_PEOPLE_PERIOD"));88 // }89 90 $( People.init );91/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 92 * Workarounds93 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */94 // $(window).scroll(function(){95 // ($.win.scrollTop() > $(document).height() - $.win.height() - 500)96 // && Users.loadNext();97 // });98 ...
utils.js
Source:utils.js
...53 if (process) {54 process(valid_lines)55 }56 if (start + skip <= file.size) {57 loadNext()58 }59 else {60 resolve()61 }62 }63 };64 loadNext()65 })66}67export function readInChunks(file, progress_callback) {68 return new Promise((resolve, reject) => {69 const reader = new FileReader();70 let fileData = ""71 const chunkSize = 1024 * 100072 let start = 0;73 let stop = chunkSize74 const loadNext = () => {75 const blob = file.slice(start, stop)76 reader.readAsText(blob)77 }78 reader.onloadend = (e) => {79 if (e.target.readyState == FileReader.DONE) {80 fileData += e.target.result;81 start = start + chunkSize;82 stop = stop + chunkSize;83 if (progress_callback) {84 progress_callback(stop * 100.0 / file.size)85 }86 if (start <= file.size) {87 loadNext()88 }89 else {90 resolve(fileData)91 }92 }93 };94 loadNext()95 })...
pageLoader.spec.ts
Source:pageLoader.spec.ts
...7 number: 0,8 } as Page<number>)9 test('given page loader when loading next then it should return true', async () => {10 const pageLoader = new PageLoader(pageRequest, loader)11 expect(await pageLoader.loadNext()).toBeTruthy()12 expect(pageLoader.items).toStrictEqual([1, 2, 3])13 })14 test('given page loader on last page when loading next then it should return false', async () => {15 const pageLoader = new PageLoader(pageRequest, loader)16 expect(await pageLoader.loadNext()).toBeTruthy()17 expect(pageLoader.items).toStrictEqual([1, 2, 3])18 expect(await pageLoader.loadNext()).toBeFalsy()19 })20 test('given page loader when loading next then it should return true until last page is reached', async () => {21 const loader = (pageable: PageRequest) => Promise.resolve({22 content: pageable.page === 1 ? [4, 5, 6] : [1, 2, 3],23 last: pageable.page === 1,24 number: pageable.page || 0,25 } as Page<number>)26 const pageLoader = new PageLoader(pageRequest, loader)27 expect(await pageLoader.loadNext()).toBeTruthy()28 expect(pageLoader.items).toStrictEqual([1, 2, 3])29 expect(await pageLoader.loadNext()).toBeTruthy()30 expect(pageLoader.items).toStrictEqual([1, 2, 3, 4, 5, 6])31 expect(await pageLoader.loadNext()).toBeFalsy()32 })33 test('given exception when loading next then exception is rethrown', async () => {34 const loader = (pageable: PageRequest) => {35 throw new Error('boom')36 }37 const pageLoader = new PageLoader(pageRequest, loader)38 await expect(pageLoader.loadNext()).rejects.toEqual(new Error('boom'))39 })...
Using AI Code Generation
1loadNext();2loadNext();3loadNext();4loadNext();5loadNext();6loadNext();7loadNext();8loadNext();9loadNext();10loadNext();11loadNext();12loadNext();13loadNext();14loadNext();15loadNext();16loadNext();17loadNext();18loadNext();19loadNext();20loadNext();21loadNext();22loadNext();23loadNext();24loadNext();
Using AI Code Generation
1var wpt = require('webpagetest');2var wpt = new WebPageTest('www.webpagetest.org', 'A.1234567890abcdef1234567890abcdef12345678');3wpt.runTest(url, function(err, data) {4 var testId = data.data.testId;5 wpt.checkTestStatus(testId, function(err, data) {6 var results = data.data;7 wpt.loadNext(testId, function(err, data) {8 var results = data.data;9 console.log(results);10 });11 });12});13 if (err) throw err;14 at Request._callback (C:\Users\user\Desktop\wpt15 at self.callback (C:\Users\user\Desktop\wpt16 at emitOne (events.js:77:13)17 at Request.emit (events.js:169:7)18 at Request.onRequestError (C:\Users\user\Desktop\wpt19 at emitOne (events.js:77:13)20 at ClientRequest.emit (events.js:169:7)21 at TLSSocket.socketErrorListener (_http_client.js:259:9)22 at emitOne (events.js:77:13)23var wpt = require('webpagetest
Using AI Code Generation
1var wpt = require('webpagetest');2var options = {3};4var test = new wpt('www.webpagetest.org', options.key);5test.runTest(options.url, options, function(err, data) {6 if (err) {7 console.log(err);8 } else {9 console.log('Test Submitted. Test ID: ' + data.data.testId);10 test.waitForTestToComplete(data.data.testId, options.timeout, function(err, data) {11 if (err) {12 console.log(err);13 } else {14 test.getTestResults(data.data.testId, function(err, data) {15 if (err) {16 console.log(err);17 } else {18 console.log(data.data);19 }20 });21 }22 });23 }24});25var wpt = require('webpagetest');26var options = {27};28var test = new wpt('www.webpagetest.org', options.key);29test.runTest(options.url, options, function(err, data) {30 if (err) {31 console.log(err);32 } else {33 console.log('Test Submitted. Test ID: ' + data.data.testId);34 test.waitForTestToComplete(data.data.testId, options.timeout, function(err, data) {35 if (err) {36 console.log(err);37 } else {38 test.getTestResults(data.data.testId, function(err, data) {39 if (err) {40 console.log(err);41 } else {42 console.log(data.data);43 }44 });45 }46 });47 }48});
Using AI Code Generation
1function loadNext(){2 if (wpt.nextPage()) {3 wpt.startTest();4 } else {5 wpt.stopTest();6 }7}8function loadNext(){9 if (wpt.nextPage()) {10 wpt.startTest();11 } else {12 wpt.stopTest();13 }14}15function loadNext(){16 if (wpt.nextPage()) {17 wpt.startTest();18 } else {19 wpt.stopTest();20 }21}22function loadNext(){23 if (wpt.nextPage()) {24 wpt.startTest();25 } else {26 wpt.stopTest();27 }28}29function loadNext(){30 if (wpt.nextPage()) {31 wpt.startTest();32 } else {
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!!