mirror of https://github.com/status-im/metro.git
Small refactor
Summary: This test can be simplified. Reviewed By: davidaurelio Differential Revision: D6834289 fbshipit-source-id: 23072230ce844c39b5fba30cfe7ad51e5a879bed
This commit is contained in:
parent
bd345427a8
commit
7fcff0a976
|
@ -33,13 +33,18 @@ const babelOptions = {
|
||||||
retainLines: false,
|
retainLines: false,
|
||||||
};
|
};
|
||||||
|
|
||||||
function normalize({code}) {
|
function normalize({code}): string {
|
||||||
if (code === undefined || code === null) {
|
if (code === undefined || code === null) {
|
||||||
return 'FAIL';
|
return 'FAIL';
|
||||||
}
|
}
|
||||||
return transformSync(code, babelOptions).code;
|
return transformSync(code, babelOptions).code;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function fold(filename, code): string {
|
||||||
|
const p = parse(code);
|
||||||
|
return normalize(constantFolding(filename, p));
|
||||||
|
}
|
||||||
|
|
||||||
describe('constant expressions', () => {
|
describe('constant expressions', () => {
|
||||||
it('can optimize conditional expressions with constant conditions', () => {
|
it('can optimize conditional expressions with constant conditions', () => {
|
||||||
const code = `
|
const code = `
|
||||||
|
@ -53,7 +58,7 @@ describe('constant expressions', () => {
|
||||||
'foo'==='bar' ? b : c,
|
'foo'==='bar' ? b : c,
|
||||||
f() ? g() : h()
|
f() ? g() : h()
|
||||||
);`;
|
);`;
|
||||||
expect(normalize(constantFolding('arbitrary.js', parse(code)))).toEqual(
|
expect(fold('arbitrary.js', code)).toEqual(
|
||||||
'a(true,true,2,true,{},{a:1},c,f()?g():h());',
|
'a(true,true,2,true,{},{a:1},c,f()?g():h());',
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
@ -63,9 +68,7 @@ describe('constant expressions', () => {
|
||||||
var b = 'android' == 'android'
|
var b = 'android' == 'android'
|
||||||
? ('production' != 'production' ? 'a' : 'A')
|
? ('production' != 'production' ? 'a' : 'A')
|
||||||
: 'i';`;
|
: 'i';`;
|
||||||
expect(normalize(constantFolding('arbitrary.js', parse(code)))).toEqual(
|
expect(fold('arbitrary.js', code)).toEqual("var a=1;var b='A';");
|
||||||
"var a=1;var b='A';",
|
|
||||||
);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('can optimize logical operator expressions with constant conditions', () => {
|
it('can optimize logical operator expressions with constant conditions', () => {
|
||||||
|
@ -73,9 +76,7 @@ describe('constant expressions', () => {
|
||||||
var a = true || 1;
|
var a = true || 1;
|
||||||
var b = 'android' == 'android' &&
|
var b = 'android' == 'android' &&
|
||||||
'production' != 'production' || null || "A";`;
|
'production' != 'production' || null || "A";`;
|
||||||
expect(normalize(constantFolding('arbitrary.js', parse(code)))).toEqual(
|
expect(fold('arbitrary.js', code)).toEqual('var a=true;var b="A";');
|
||||||
'var a=true;var b="A";',
|
|
||||||
);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('can optimize logical operators with partly constant operands', () => {
|
it('can optimize logical operators with partly constant operands', () => {
|
||||||
|
@ -86,7 +87,7 @@ describe('constant expressions', () => {
|
||||||
var d = null || z();
|
var d = null || z();
|
||||||
var e = !1 && z();
|
var e = !1 && z();
|
||||||
`;
|
`;
|
||||||
expect(normalize(constantFolding('arbitrary.js', parse(code)))).toEqual(
|
expect(fold('arbitrary.js', code)).toEqual(
|
||||||
'var a="truthy";var b=z();var c=null;var d=z();var e=false;',
|
'var a="truthy";var b=z();var c=null;var d=z();var e=false;',
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
@ -97,7 +98,7 @@ describe('constant expressions', () => {
|
||||||
var a = 1;
|
var a = 1;
|
||||||
}
|
}
|
||||||
`;
|
`;
|
||||||
expect(normalize(constantFolding('arbitrary.js', parse(code)))).toEqual('');
|
expect(fold('arbitrary.js', code)).toEqual('');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('can optimize if-else-branches with constant conditions', () => {
|
it('can optimize if-else-branches with constant conditions', () => {
|
||||||
|
@ -112,9 +113,7 @@ describe('constant expressions', () => {
|
||||||
var a = 'b';
|
var a = 'b';
|
||||||
}
|
}
|
||||||
`;
|
`;
|
||||||
expect(normalize(constantFolding('arbitrary.js', parse(code)))).toEqual(
|
expect(fold('arbitrary.js', code)).toEqual('{var a=3;var b=a+4;}');
|
||||||
'{var a=3;var b=a+4;}',
|
|
||||||
);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('can optimize nested if-else constructs', () => {
|
it('can optimize nested if-else constructs', () => {
|
||||||
|
@ -133,8 +132,6 @@ describe('constant expressions', () => {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
`;
|
`;
|
||||||
expect(normalize(constantFolding('arbitrary.js', parse(code)))).toEqual(
|
expect(fold('arbitrary.js', code)).toEqual("{{require('c');}}");
|
||||||
"{{require('c');}}",
|
|
||||||
);
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue