ember-material-icons
Version:
Google Material icons for your ember-cli app
215 lines • 18.4 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const blocks_1 = require("./compiled/blocks");
const compiler_1 = require("./compiler");
const WireFormat = require("@glimmer/wire-format");
const symbol_table_1 = require("./symbol-table");
const functions_1 = require("./syntax/functions");
const specialize_1 = require("./syntax/specialize");
function compileStatement(statement, builder) {
let refined = specialize_1.SPECIALIZE.specialize(statement, builder.symbolTable);
functions_1.STATEMENTS.compile(refined, builder);
}
exports.compileStatement = compileStatement;
class Template {
constructor(statements, symbolTable) {
this.statements = statements;
this.symbolTable = symbolTable;
}
}
exports.Template = Template;
class Layout extends Template {
}
exports.Layout = Layout;
class EntryPoint extends Template {
constructor() {
super(...arguments);
this.compiled = null;
}
compile(env) {
let compiled = this.compiled;
if (!compiled) {
let table = this.symbolTable;
let b = compiler_1.builder(env, table);
for (let i = 0; i < this.statements.length; i++) {
let statement = this.statements[i];
let refined = specialize_1.SPECIALIZE.specialize(statement, table);
functions_1.STATEMENTS.compile(refined, b);
}
compiled = this.compiled = new blocks_1.CompiledProgram(b.start, b.end, this.symbolTable.size);
}
return compiled;
}
}
exports.EntryPoint = EntryPoint;
class InlineBlock extends Template {
constructor() {
super(...arguments);
this.compiled = null;
}
splat(builder) {
let table = builder.symbolTable;
let locals = table.getSymbols().locals;
if (locals) {
builder.pushChildScope();
builder.bindPositionalArgsForLocals(locals);
}
for (let i = 0; i < this.statements.length; i++) {
let statement = this.statements[i];
let refined = specialize_1.SPECIALIZE.specialize(statement, table);
functions_1.STATEMENTS.compile(refined, builder);
}
if (locals) {
builder.popScope();
}
}
compile(env) {
let compiled = this.compiled;
if (!compiled) {
let table = this.symbolTable;
let b = compiler_1.builder(env, table);
this.splat(b);
compiled = this.compiled = new blocks_1.CompiledBlock(b.start, b.end);
}
return compiled;
}
}
exports.InlineBlock = InlineBlock;
class PartialBlock extends Template {
constructor() {
super(...arguments);
this.compiled = null;
}
compile(env) {
let compiled = this.compiled;
if (!compiled) {
let table = this.symbolTable;
let b = compiler_1.builder(env, table);
for (let i = 0; i < this.statements.length; i++) {
let statement = this.statements[i];
let refined = specialize_1.SPECIALIZE.specialize(statement, table);
functions_1.STATEMENTS.compile(refined, b);
}
compiled = this.compiled = new blocks_1.CompiledProgram(b.start, b.end, table.size);
}
return compiled;
}
}
exports.PartialBlock = PartialBlock;
class Scanner {
constructor(block, meta, env) {
this.block = block;
this.meta = meta;
this.env = env;
}
scanEntryPoint() {
let { block, meta } = this;
let symbolTable = symbol_table_1.entryPoint(meta);
let child = scanBlock(block, symbolTable, this.env);
return new EntryPoint(child.statements, symbolTable);
}
scanLayout() {
let { block, meta } = this;
let { named, yields, hasPartials } = block;
let symbolTable = symbol_table_1.layout(meta, named, yields, hasPartials);
let child = scanBlock(block, symbolTable, this.env);
return new Layout(child.statements, symbolTable);
}
scanPartial(symbolTable) {
let { block } = this;
let child = scanBlock(block, symbolTable, this.env);
return new PartialBlock(child.statements, symbolTable);
}
}
exports.default = Scanner;
function scanBlock({ statements }, symbolTable, env) {
return new RawInlineBlock(env, symbolTable, statements).scan();
}
exports.scanBlock = scanBlock;
var BaselineSyntax;
(function (BaselineSyntax) {
const { Ops } = WireFormat;
BaselineSyntax.isScannedComponent = WireFormat.is(Ops.ScannedComponent);
BaselineSyntax.isPrimitiveElement = WireFormat.is(Ops.OpenPrimitiveElement);
BaselineSyntax.isOptimizedAppend = WireFormat.is(Ops.OptimizedAppend);
BaselineSyntax.isUnoptimizedAppend = WireFormat.is(Ops.UnoptimizedAppend);
BaselineSyntax.isAnyAttr = WireFormat.is(Ops.AnyDynamicAttr);
BaselineSyntax.isStaticPartial = WireFormat.is(Ops.StaticPartial);
BaselineSyntax.isDynamicPartial = WireFormat.is(Ops.DynamicPartial);
BaselineSyntax.isFunctionExpression = WireFormat.is(Ops.Function);
BaselineSyntax.isNestedBlock = WireFormat.is(Ops.NestedBlock);
BaselineSyntax.isScannedBlock = WireFormat.is(Ops.ScannedBlock);
BaselineSyntax.isDebugger = WireFormat.is(Ops.Debugger);
var NestedBlock;
(function (NestedBlock) {
function defaultBlock(sexp) {
return sexp[4];
}
NestedBlock.defaultBlock = defaultBlock;
function inverseBlock(sexp) {
return sexp[5];
}
NestedBlock.inverseBlock = inverseBlock;
function params(sexp) {
return sexp[2];
}
NestedBlock.params = params;
function hash(sexp) {
return sexp[3];
}
NestedBlock.hash = hash;
})(NestedBlock = BaselineSyntax.NestedBlock || (BaselineSyntax.NestedBlock = {}));
})(BaselineSyntax = exports.BaselineSyntax || (exports.BaselineSyntax = {}));
const { Ops } = WireFormat;
class RawInlineBlock {
constructor(env, table, statements) {
this.env = env;
this.table = table;
this.statements = statements;
}
scan() {
let buffer = [];
for (let i = 0; i < this.statements.length; i++) {
let statement = this.statements[i];
if (WireFormat.Statements.isBlock(statement)) {
buffer.push(this.specializeBlock(statement));
}
else if (WireFormat.Statements.isComponent(statement)) {
buffer.push(...this.specializeComponent(statement));
}
else {
buffer.push(statement);
}
}
return new InlineBlock(buffer, this.table);
}
specializeBlock(block) {
let [, path, params, hash, template, inverse] = block;
return [Ops.ScannedBlock, path, params, hash, this.child(template), this.child(inverse)];
}
specializeComponent(sexp) {
let [, tag, component] = sexp;
if (this.env.hasComponentDefinition(tag, this.table)) {
let child = this.child(component);
let attrs = new RawInlineBlock(this.env, this.table, component.attrs);
return [[Ops.ScannedComponent, tag, attrs, component.args, child]];
}
else {
let buf = [];
buf.push([Ops.OpenElement, tag, []]);
buf.push(...component.attrs);
buf.push([Ops.FlushElement]);
buf.push(...component.statements);
buf.push([Ops.CloseElement]);
return buf;
}
}
child(block) {
if (!block)
return null;
let table = symbol_table_1.block(this.table, block.locals);
return new RawInlineBlock(this.env, table, block.statements);
}
}
exports.RawInlineBlock = RawInlineBlock;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nhbm5lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9zY2FubmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsOENBQW1FO0FBQ25FLHlDQUFxQztBQUtyQyxtREFBbUQ7QUFDbkQsaURBQTJHO0FBRzNHLGtEQUU0QjtBQUU1QixvREFFNkI7QUFJN0IsMEJBQWlDLFNBQXNDLEVBQUUsT0FBc0I7SUFDN0YsSUFBSSxPQUFPLEdBQUcsdUJBQVUsQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNwRSxzQkFBVSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDdkMsQ0FBQztBQUhELDRDQUdDO0FBRUQ7SUFDRSxZQUFtQixVQUF5QyxFQUFTLFdBQXdCO1FBQTFFLGVBQVUsR0FBVixVQUFVLENBQStCO1FBQVMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7SUFBRyxDQUFDO0NBQ2xHO0FBRkQsNEJBRUM7QUFFRCxZQUFvQixTQUFRLFFBQVE7Q0FFbkM7QUFGRCx3QkFFQztBQUVELGdCQUF3QixTQUFRLFFBQVE7SUFBeEM7O1FBQ1UsYUFBUSxHQUE0QixJQUFJLENBQUM7SUFxQm5ELENBQUM7SUFqQkMsT0FBTyxDQUFDLEdBQWdCO1FBQ3RCLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDN0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztZQUU3QixJQUFJLENBQUMsR0FBRyxrQkFBTyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUU1QixHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7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