Best JavaScript code snippet using istanbul
render-flow.js
Source:render-flow.js
1const DONOTHING = 0;2const LOCAL_TRANSFORM = 1 << 0;3const WORLD_TRANSFORM = 1 << 1;4const TRANSFORM = LOCAL_TRANSFORM | WORLD_TRANSFORM;5const UPDATE_RENDER_DATA = 1 << 2;6const OPACITY = 1 << 3;7const COLOR = 1 << 4;8const RENDER = 1 << 5;9const CUSTOM_IA_RENDER = 1 << 6;10const CHILDREN = 1 << 7;11const POST_UPDATE_RENDER_DATA = 1 << 8;12const POST_RENDER = 1 << 9;13const FINAL = 1 << 10;14let _walker = null;15let _cullingMask = 0;16// 17function RenderFlow () {18 this._func = init;19 this._next = null;20}21let _proto = RenderFlow.prototype;22_proto._doNothing = function () {23};24_proto._localTransform = function (node) {25 node._updateLocalMatrix();26 node._renderFlag &= ~LOCAL_TRANSFORM;27 this._next._func(node);28};29_proto._worldTransform = function (node) {30 _walker.worldMatDirty ++;31 let t = node._matrix;32 let position = node._position;33 t.m12 = position.x;34 t.m13 = position.y;35 node._mulMat(node._worldMatrix, node._parent._worldMatrix, t);36 node._renderFlag &= ~WORLD_TRANSFORM;37 this._next._func(node);38 _walker.worldMatDirty --;39};40_proto._color = function (node) {41 let comp = node._renderComponent;42 if (comp) {43 comp._updateColor();44 }45 else {46 node._renderFlag &= ~COLOR;47 }48 this._next._func(node);49};50_proto._opacity = function (node) {51 _walker.parentOpacityDirty++;52 node._renderFlag &= ~OPACITY;53 this._next._func(node);54 _walker.parentOpacityDirty--;55};56_proto._updateRenderData = function (node) {57 let comp = node._renderComponent;58 comp._assembler.updateRenderData(comp);59 node._renderFlag &= ~UPDATE_RENDER_DATA;60 this._next._func(node);61};62_proto._render = function (node) {63 let comp = node._renderComponent;64 _walker._commitComp(comp, comp._assembler, node._cullingMask);65 this._next._func(node);66};67_proto._customIARender = function (node) {68 let comp = node._renderComponent;69 _walker._commitIA(comp, comp._assembler, node._cullingMask);70 this._next._func(node);71};72_proto._children = function (node) {73 let cullingMask = _cullingMask;74 let parentOpacity = _walker.parentOpacity;75 _walker.parentOpacity *= (node._opacity / 255);76 let worldTransformFlag = _walker.worldMatDirty ? WORLD_TRANSFORM : 0;77 let worldOpacityFlag = _walker.parentOpacityDirty ? COLOR : 0;78 let children = node._children;79 for (let i = 0, l = children.length; i < l; i++) {80 let c = children[i];81 // Advance the modification of the flag to avoid node attribute modification is invalid when opacity === 0.82 c._renderFlag |= worldTransformFlag | worldOpacityFlag;83 if (!c._activeInHierarchy || c._opacity === 0) continue;84 _cullingMask = c._cullingMask = c.groupIndex === 0 ? cullingMask : 1 << c.groupIndex;85 // TODO: Maybe has better way to implement cascade opacity86 c._color.a = c._opacity * _walker.parentOpacity;87 flows[c._renderFlag]._func(c);88 c._color.a = 255;89 }90 _walker.parentOpacity = parentOpacity;91 this._next._func(node);92 _cullingMask = cullingMask;93};94_proto._postUpdateRenderData = function (node) {95 let comp = node._renderComponent;96 comp._postAssembler && comp._postAssembler.updateRenderData(comp);97 node._renderFlag &= ~POST_UPDATE_RENDER_DATA;98 this._next._func(node);99};100_proto._postRender = function (node) {101 let comp = node._renderComponent;102 _walker._commitComp(comp, comp._postAssembler, node._cullingMask);103 this._next._func(node);104};105const EMPTY_FLOW = new RenderFlow();106EMPTY_FLOW._func = EMPTY_FLOW._doNothing;107EMPTY_FLOW._next = EMPTY_FLOW;108let flows = {};109function createFlow (flag, next) {110 let flow = new RenderFlow();111 flow._next = next || EMPTY_FLOW;112 switch (flag) {113 case DONOTHING: 114 flow._func = flow._doNothing;115 break;116 case LOCAL_TRANSFORM: 117 flow._func = flow._localTransform;118 break;119 case WORLD_TRANSFORM: 120 flow._func = flow._worldTransform;121 break;122 case COLOR:123 flow._func = flow._color;124 break;125 case OPACITY:126 flow._func = flow._opacity;127 break;128 case UPDATE_RENDER_DATA:129 flow._func = flow._updateRenderData;130 break;131 case RENDER: 132 flow._func = flow._render;133 break;134 case CUSTOM_IA_RENDER:135 flow._func = flow._customIARender;136 break;137 case CHILDREN: 138 flow._func = flow._children;139 break;140 case POST_UPDATE_RENDER_DATA: 141 flow._func = flow._postUpdateRenderData;142 break;143 case POST_RENDER: 144 flow._func = flow._postRender;145 break;146 }147 return flow;148}149function getFlow (flag) {150 let flow = null;151 let tFlag = FINAL;152 while (tFlag > 0) {153 if (tFlag & flag)154 flow = createFlow(tFlag, flow);155 tFlag = tFlag >> 1;156 }157 return flow;158}159function render (scene) {160 _cullingMask = 1 << scene.groupIndex;161 if (scene._renderFlag & WORLD_TRANSFORM) {162 _walker.worldMatDirty ++;163 scene._calculWorldMatrix();164 scene._renderFlag &= ~WORLD_TRANSFORM;165 flows[scene._renderFlag]._func(scene);166 _walker.worldMatDirty --;167 }168 else {169 flows[scene._renderFlag]._func(scene);170 }171}172// 173function init (node) {174 let flag = node._renderFlag;175 let r = flows[flag] = getFlow(flag);176 r._func(node);177}178RenderFlow.flows = flows;179RenderFlow.createFlow = createFlow;180RenderFlow.render = render;181RenderFlow.init = function (walker) {182 _walker = walker;183 flows[0] = EMPTY_FLOW;184 for (let i = 1; i < FINAL; i++) {185 flows[i] = new RenderFlow();186 }187};188RenderFlow.FLAG_DONOTHING = DONOTHING;189RenderFlow.FLAG_LOCAL_TRANSFORM = LOCAL_TRANSFORM;190RenderFlow.FLAG_WORLD_TRANSFORM = WORLD_TRANSFORM;191RenderFlow.FLAG_TRANSFORM = TRANSFORM;192RenderFlow.FLAG_COLOR = COLOR;193RenderFlow.FLAG_OPACITY = OPACITY;194RenderFlow.FLAG_UPDATE_RENDER_DATA = UPDATE_RENDER_DATA;195RenderFlow.FLAG_RENDER = RENDER;196RenderFlow.FLAG_CUSTOM_IA_RENDER = CUSTOM_IA_RENDER;197RenderFlow.FLAG_CHILDREN = CHILDREN;198RenderFlow.FLAG_POST_UPDATE_RENDER_DATA = POST_UPDATE_RENDER_DATA;199RenderFlow.FLAG_POST_RENDER = POST_RENDER;200RenderFlow.FLAG_FINAL = FINAL;...
Using AI Code Generation
1var fs = require('fs');2var istanbul = require('istanbul');3var instrumenter = new istanbul.Instrumenter();4var code = fs.readFileSync('test.js', 'utf8');5var instrumentedCode = instrumenter.instrumentSync(code, 'test.js');6fs.writeFileSync('test-istanbul.js', instrumentedCode);7var walker = new istanbul.CodeWalker();8walker.walk(code, function (node, metadata) {9 if (metadata.isFunction) {10 console.log("Function: " + metadata.name);11 console.log("Parent: " + metadata.parent);12 }13});
Using AI Code Generation
1var istanbul = require('istanbul');2var fs = require('fs');3var walker = istanbul.walker;4var instrumenter = new istanbul.Instrumenter();5var code = fs.readFileSync('test.js', 'utf8');6var ast = istanbul.parser.parse(code);7var instrumentedCode = instrumenter.instrumentSync(code, 'test.js');8console.log(instrumentedCode);9var callback = function (node, state, c) {10 if (node.type === 'FunctionDeclaration') {11 console.log(node.id.name);12 console.log(walker.parent(state));13 }14 c(node, state);15};16walker.walk(ast, callback, null);17function test() {18 var a = 10;19 var b = a;20 return b;21}22{ node:23 { type: 'Program',
Using AI Code Generation
1var fs = require('fs'),2 istanbul = require('istanbul'),3 instrumenter = new istanbul.Instrumenter(),4 walker = istanbul.utils.walker(),5 code = fs.readFileSync('./test.js', 'utf8'),6 instrumentedCode = instrumenter.instrumentSync(code, './test.js');7walker.on('file', function (file, stat) {8 console.log(file);9 console.log(stat);10 console.log(walker.parent());11});12walker.walkSync('./test.js', instrumentedCode);13{ dev: 16777220,14 birthtime: 2015-02-11T17:52:11.000Z }
Using AI Code Generation
1var fs = require('fs');2var path = require('path');3var walk = require('istanbul-lib-instrument').walk;4var code = fs.readFileSync(path.resolve(__dirname, 'test.js'), 'utf8');5var walker = walk.ancestor(code, {6});7walker.on('node', function (node, state) {8 if (node.type === 'FunctionDeclaration') {9 console.log('FunctionDeclaration: %s', node.id.name);10 } else if (node.type === 'FunctionExpression') {11 console.log('FunctionExpression: %s', state.name);12 }13});14walker.parent();15### walk(code, options)
Using AI Code Generation
1var istanbul = require('istanbul');2var walker = istanbul.utils.walker();3walker.on('node', function (node, st, c) {4 console.log('node:', node);5 console.log('st:', st);6 console.log('c:', c);7 console.log('parent:', walker.parent());8 c(node, st);9});10walker.on('end', function () {11 console.log('done');12});13walker.walk('function foo() { return 1; }');
Using AI Code Generation
1var walker = require('istanbul').utils.ast;2var esprima = require('esprima');3var code = 'function foo() { var x = 1; }';4var ast = esprima.parse(code);5var node = walker.findNode(ast, 'Identifier', 'x');6console.log(walker.parent(ast, node).type);
Using AI Code Generation
1var walker = require('istanbul').lib.astw;2var code = 'var foo = 1;';3var ast = walker.parse(code);4walker.walk(ast, function (node) {5 if (node.type === 'VariableDeclarator') {6 var parent = walker.parent();7 console.log(parent);8 }9});10### `require('istanbul').lib.astw`11The `lib.astw` module provides a method to walk an [esprima](
Using AI Code Generation
1var walker = require('istanbul-walker');2var esprima = require('esprima');3var fs = require('fs');4var estraverse = require('estraverse');5var escodegen = require('escodegen');6var escope = require('escope');7var code = fs.readFileSync('test.js', 'utf8');8var ast = esprima.parse(code, {loc: true, range: true, tokens: true});9var scopeManager = escope.analyze(ast, {ecmaVersion: 6, sourceType: 'module'});10var scope = scopeManager.acquire(ast);11var parent = walker.parent(ast, {loc: true, range: true, tokens: true}, scopeManager);12var skip = walker.skip(ast, {loc: true, range: true, tokens: true}, scopeManager);
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!!