Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | 8x 8x 1x 60x 50x 50x 14x 12x 1x 8x | const assert = require('assert'); const testASTShape = require('./utils/test-ast-shape'); function isHMR(identifier) { return testASTShape(identifier.parentPath, { type: 'CallExpression', callee: { type: 'MemberExpression', object: { name: 'reactHotLoader' }, property: { name: 'register' } } }); } function validateReferences(references) { references.forEach(ref => { const { parentPath, parent, node } = ref; if (parentPath.isCallExpression() && parent.callee === node) return; if (parentPath.isSpreadElement()) return; if (parentPath.isMemberExpression()) return; // The return value from `style9.create` should be a function, but the // compiler turns it into an object. Therefore only access to properties // is allowed. React Hot Loader accesses all bindings, so a temporary // workaround is required. React Fast Refresh does not have this problem. assert( isHMR(ref), ref.buildCodeFrameError( 'Return value from style9.create has to be called as a function or accessed as an object' ) ); }); } module.exports = { validateReferences }; |