@glimmer/compiler
Version:
35 lines (30 loc) • 3.63 kB
JavaScript
import { generateSyntaxError } from '@glimmer/syntax';
import { Err, Ok } from '../../../../shared/result';
import * as mir from '../../../2-encoding/mir';
import { VISIT_EXPRS } from '../../visitors/expressions';
function assertLogKeyword(node) {
let {
args: {
named,
positional
}
} = node;
if (named && !named.isEmpty()) {
return Err(generateSyntaxError(`(log) does not take any named arguments`, node.loc));
}
return Ok(positional);
}
function translateLogKeyword({
node,
state
}, positional) {
return VISIT_EXPRS.Positional(positional, state).mapOk(positional => new mir.Log({
positional,
loc: node.loc
}));
}
export const logKeyword = {
assert: assertLogKeyword,
translate: translateLogKeyword
};
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL2NvbXBpbGVyL2xpYi9wYXNzZXMvMS1ub3JtYWxpemF0aW9uL2tleXdvcmRzL3V0aWxzL2xvZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxTQUFnQixtQkFBaEIsUUFBMkMsaUJBQTNDO0FBRUEsU0FBUyxHQUFULEVBQWMsRUFBZCxRQUFnQywyQkFBaEM7QUFDQSxPQUFPLEtBQUssR0FBWixNQUFxQix5QkFBckI7QUFFQSxTQUFTLFdBQVQsUUFBNEIsNEJBQTVCOztBQUdBLFNBQVMsZ0JBQVQsQ0FBMEIsSUFBMUIsRUFBa0Q7QUFDaEQsTUFBSTtBQUNGLElBQUEsSUFBSSxFQUFFO0FBQUUsTUFBQSxLQUFGO0FBQVMsTUFBQTtBQUFUO0FBREosTUFFQSxJQUZKOztBQUlBLE1BQUksS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU4sRUFBZCxFQUErQjtBQUM3QixXQUFPLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyx5Q0FBRCxFQUE0QyxJQUFJLENBQUMsR0FBakQsQ0FBcEIsQ0FBVjtBQUNEOztBQUVELFNBQU8sRUFBRSxDQUFDLFVBQUQsQ0FBVDtBQUNEOztBQUVELFNBQVMsbUJBQVQsQ0FDRTtBQUFFLEVBQUEsSUFBRjtBQUFRLEVBQUE7QUFBUixDQURGLEVBRUUsVUFGRixFQUV1QztBQUVyQyxTQUFPLFdBQVcsQ0FBQyxVQUFaLENBQXVCLFVBQXZCLEVBQW1DLEtBQW5DLEVBQTBDLEtBQTFDLENBQ0osVUFBRCxJQUFnQixJQUFJLEdBQUcsQ0FBQyxHQUFSLENBQVk7QUFBRSxJQUFBLFVBQUY7QUFBYyxJQUFBLEdBQUcsRUFBRSxJQUFJLENBQUM7QUFBeEIsR0FBWixDQURYLENBQVA7QUFHRDs7QUFFRCxPQUFPLE1BQU0sVUFBVSxHQUluQjtBQUNGLEVBQUEsTUFBTSxFQUFFLGdCQUROO0FBRUYsRUFBQSxTQUFTLEVBQUU7QUFGVCxDQUpHIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVNUdjIsIGdlbmVyYXRlU3ludGF4RXJyb3IgfSBmcm9tICdAZ2xpbW1lci9zeW50YXgnO1xuXG5pbXBvcnQgeyBFcnIsIE9rLCBSZXN1bHQgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQvcmVzdWx0JztcbmltcG9ydCAqIGFzIG1pciBmcm9tICcuLi8uLi8uLi8yLWVuY29kaW5nL21pcic7XG5pbXBvcnQgeyBOb3JtYWxpemF0aW9uU3RhdGUgfSBmcm9tICcuLi8uLi9jb250ZXh0JztcbmltcG9ydCB7IFZJU0lUX0VYUFJTIH0gZnJvbSAnLi4vLi4vdmlzaXRvcnMvZXhwcmVzc2lvbnMnO1xuaW1wb3J0IHsgR2VuZXJpY0tleXdvcmROb2RlLCBLZXl3b3JkRGVsZWdhdGUgfSBmcm9tICcuLi9pbXBsJztcblxuZnVuY3Rpb24gYXNzZXJ0TG9nS2V5d29yZChub2RlOiBHZW5lcmljS2V5d29yZE5vZGUpOiBSZXN1bHQ8QVNUdjIuUG9zaXRpb25hbEFyZ3VtZW50cz4ge1xuICBsZXQge1xuICAgIGFyZ3M6IHsgbmFtZWQsIHBvc2l0aW9uYWwgfSxcbiAgfSA9IG5vZGU7XG5cbiAgaWYgKG5hbWVkICYmICFuYW1lZC5pc0VtcHR5KCkpIHtcbiAgICByZXR1cm4gRXJyKGdlbmVyYXRlU3ludGF4RXJyb3IoYChsb2cpIGRvZXMgbm90IHRha2UgYW55IG5hbWVkIGFyZ3VtZW50c2AsIG5vZGUubG9jKSk7XG4gIH1cblxuICByZXR1cm4gT2socG9zaXRpb25hbCk7XG59XG5cbmZ1bmN0aW9uIHRyYW5zbGF0ZUxvZ0tleXdvcmQoXG4gIHsgbm9kZSwgc3RhdGUgfTogeyBub2RlOiBBU1R2Mi5DYWxsRXhwcmVzc2lvbjsgc3RhdGU6IE5vcm1hbGl6YXRpb25TdGF0ZSB9LFxuICBwb3NpdGlvbmFsOiBBU1R2Mi5Qb3NpdGlvbmFsQXJndW1lbnRzXG4pOiBSZXN1bHQ8bWlyLkxvZz4ge1xuICByZXR1cm4gVklTSVRfRVhQUlMuUG9zaXRpb25hbChwb3NpdGlvbmFsLCBzdGF0ZSkubWFwT2soXG4gICAgKHBvc2l0aW9uYWwpID0+IG5ldyBtaXIuTG9nKHsgcG9zaXRpb25hbCwgbG9jOiBub2RlLmxvYyB9KVxuICApO1xufVxuXG5leHBvcnQgY29uc3QgbG9nS2V5d29yZDogS2V5d29yZERlbGVnYXRlPFxuICBBU1R2Mi5DYWxsRXhwcmVzc2lvbiB8IEFTVHYyLkFwcGVuZENvbnRlbnQsXG4gIEFTVHYyLlBvc2l0aW9uYWxBcmd1bWVudHMsXG4gIG1pci5Mb2dcbj4gPSB7XG4gIGFzc2VydDogYXNzZXJ0TG9nS2V5d29yZCxcbiAgdHJhbnNsYXRlOiB0cmFuc2xhdGVMb2dLZXl3b3JkLFxufTtcbiJdLCJzb3VyY2VSb290IjoiIn0=