MCPcopy Index your code
hub / github.com/nodejs/node / tryEnterOrLeaveBlock

Function tryEnterOrLeaveBlock

test/fixtures/snapshot/typescript.js:104135–104171  ·  view source on GitHub ↗

* Tries to enter or leave a code block.

(operationIndex)

Source from the content-addressed store, hash-verified

104133 * Tries to enter or leave a code block.
104134 */
104135 function tryEnterOrLeaveBlock(operationIndex) {
104136 if (blocks) {
104137 for (; blockIndex < blockActions.length && blockOffsets[blockIndex] <= operationIndex; blockIndex++) {
104138 var block = blocks[blockIndex];
104139 var blockAction = blockActions[blockIndex];
104140 switch (block.kind) {
104141 case 0 /* CodeBlockKind.Exception */:
104142 if (blockAction === 0 /* BlockAction.Open */) {
104143 if (!exceptionBlockStack) {
104144 exceptionBlockStack = [];
104145 }
104146 if (!statements) {
104147 statements = [];
104148 }
104149 exceptionBlockStack.push(currentExceptionBlock);
104150 currentExceptionBlock = block;
104151 }
104152 else if (blockAction === 1 /* BlockAction.Close */) {
104153 currentExceptionBlock = exceptionBlockStack.pop();
104154 }
104155 break;
104156 case 1 /* CodeBlockKind.With */:
104157 if (blockAction === 0 /* BlockAction.Open */) {
104158 if (!withBlockStack) {
104159 withBlockStack = [];
104160 }
104161 withBlockStack.push(block);
104162 }
104163 else if (blockAction === 1 /* BlockAction.Close */) {
104164 withBlockStack.pop();
104165 }
104166 break;
104167 // default: do nothing
104168 }
104169 }
104170 }
104171 }
104172 /**
104173 * Writes an operation as a statement to the current label's statement list.
104174 *

Callers 1

writeOperationFunction · 0.85

Calls 2

popMethod · 0.80
pushMethod · 0.45

Tested by

no test coverage detected