mirror of
https://github.com/mozilla/pdf.js.git
synced 2025-04-19 06:38:07 +02:00
Update the Babel plugin to remove empty static blocks
This commit updates the Babel plugin to: - apply the same flattening logic that we already have for blocks, to flatten blocks nested inside class static blocks - remove class static blocks when, after flattening all the blocks they contain, they are empty. Before this commit, the transform output was the same as the input.
This commit is contained in:
parent
c60c0d1c6d
commit
995f5a29aa
3 changed files with 33 additions and 1 deletions
|
@ -184,7 +184,7 @@ function babelPluginPDFJSPreprocessor(babel, ctx) {
|
|||
path.replaceWith(t.importExpression(source));
|
||||
}
|
||||
},
|
||||
BlockStatement: {
|
||||
"BlockStatement|StaticBlock": {
|
||||
// Visit node in post-order so that recursive flattening
|
||||
// of blocks works correctly.
|
||||
exit(path) {
|
||||
|
@ -215,6 +215,10 @@ function babelPluginPDFJSPreprocessor(babel, ctx) {
|
|||
}
|
||||
subExpressionIndex++;
|
||||
}
|
||||
|
||||
if (node.type === "StaticBlock" && node.body.length === 0) {
|
||||
path.remove();
|
||||
}
|
||||
},
|
||||
},
|
||||
Function: {
|
||||
|
|
8
external/builder/fixtures_babel/staticblock-expected.js
vendored
Normal file
8
external/builder/fixtures_babel/staticblock-expected.js
vendored
Normal file
|
@ -0,0 +1,8 @@
|
|||
class A {
|
||||
static {
|
||||
foo();
|
||||
}
|
||||
static {
|
||||
var a = 0;
|
||||
}
|
||||
}
|
20
external/builder/fixtures_babel/staticblock.js
vendored
Normal file
20
external/builder/fixtures_babel/staticblock.js
vendored
Normal file
|
@ -0,0 +1,20 @@
|
|||
class A {
|
||||
static {}
|
||||
static {
|
||||
{ foo() }
|
||||
}
|
||||
static {
|
||||
{;}
|
||||
}
|
||||
static {
|
||||
if (PDFJSDev.test('TRUE')) {
|
||||
var a = 0;
|
||||
}
|
||||
}
|
||||
|
||||
static {
|
||||
if (PDFJSDev.test('FALSE')) {
|
||||
var a = 1;
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue