UNPKG

@glimmer/util

Version:

Common utilities used in Glimmer

46 lines (39 loc) 4.1 kB
export function dict() { return Object.create(null); } export function isDict(u) { return u !== null && u !== undefined; } export function isObject(u) { return typeof u === 'function' || typeof u === 'object' && u !== null; } export class StackImpl { constructor(values = []) { this.current = null; this.stack = values; } get size() { return this.stack.length; } push(item) { this.current = item; this.stack.push(item); } pop() { let item = this.stack.pop(); let len = this.stack.length; this.current = len === 0 ? null : this.stack[len - 1]; return item === undefined ? null : item; } nth(from) { let len = this.stack.length; return len < from ? null : this.stack[len - from]; } isEmpty() { return this.stack.length === 0; } toArray() { return this.stack; } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3V0aWwvbGliL2NvbGxlY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU0sU0FBVSxJQUFWLEdBQWM7QUFDbEIsU0FBTyxNQUFNLENBQUMsTUFBUCxDQUFjLElBQWQsQ0FBUDtBQUNEO0FBRUQsT0FBTSxTQUFVLE1BQVYsQ0FBb0IsQ0FBcEIsRUFBd0I7QUFDNUIsU0FBTyxDQUFDLEtBQUssSUFBTixJQUFjLENBQUMsS0FBSyxTQUEzQjtBQUNEO0FBRUQsT0FBTSxTQUFVLFFBQVYsQ0FBc0IsQ0FBdEIsRUFBMEI7QUFDOUIsU0FBTyxPQUFPLENBQVAsS0FBYSxVQUFiLElBQTRCLE9BQU8sQ0FBUCxLQUFhLFFBQWIsSUFBeUIsQ0FBQyxLQUFLLElBQWxFO0FBQ0Q7QUFFRCxPQUFNLE1BQU8sU0FBUCxDQUFnQjtBQUlwQixFQUFBLFdBQUEsQ0FBWSxNQUFBLEdBQWMsRUFBMUIsRUFBNEI7QUFGckIsU0FBQSxPQUFBLEdBQXFCLElBQXJCO0FBR0wsU0FBSyxLQUFMLEdBQWEsTUFBYjtBQUNEOztBQUVELE1BQVcsSUFBWCxHQUFlO0FBQ2IsV0FBTyxLQUFLLEtBQUwsQ0FBVyxNQUFsQjtBQUNEOztBQUVELEVBQUEsSUFBSSxDQUFDLElBQUQsRUFBUTtBQUNWLFNBQUssT0FBTCxHQUFlLElBQWY7QUFDQSxTQUFLLEtBQUwsQ0FBVyxJQUFYLENBQWdCLElBQWhCO0FBQ0Q7O0FBRUQsRUFBQSxHQUFHLEdBQUE7QUFDRCxRQUFJLElBQUksR0FBRyxLQUFLLEtBQUwsQ0FBVyxHQUFYLEVBQVg7QUFDQSxRQUFJLEdBQUcsR0FBRyxLQUFLLEtBQUwsQ0FBVyxNQUFyQjtBQUNBLFNBQUssT0FBTCxHQUFlLEdBQUcsS0FBSyxDQUFSLEdBQVksSUFBWixHQUFtQixLQUFLLEtBQUwsQ0FBVyxHQUFHLEdBQUcsQ0FBakIsQ0FBbEM7QUFFQSxXQUFPLElBQUksS0FBSyxTQUFULEdBQXFCLElBQXJCLEdBQTRCLElBQW5DO0FBQ0Q7O0FBRUQsRUFBQSxHQUFHLENBQUMsSUFBRCxFQUFhO0FBQ2QsUUFBSSxHQUFHLEdBQUcsS0FBSyxLQUFMLENBQVcsTUFBckI7QUFDQSxXQUFPLEdBQUcsR0FBRyxJQUFOLEdBQWEsSUFBYixHQUFvQixLQUFLLEtBQUwsQ0FBVyxHQUFHLEdBQUcsSUFBakIsQ0FBM0I7QUFDRDs7QUFFRCxFQUFBLE9BQU8sR0FBQTtBQUNMLFdBQU8sS0FBSyxLQUFMLENBQVcsTUFBWCxLQUFzQixDQUE3QjtBQUNEOztBQUVELEVBQUEsT0FBTyxHQUFBO0FBQ0wsV0FBTyxLQUFLLEtBQVo7QUFDRDs7QUFwQ21CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGljdCwgT3B0aW9uLCBTdGFjayB9IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZGljdDxUID0gdW5rbm93bj4oKTogRGljdDxUPiB7XG4gIHJldHVybiBPYmplY3QuY3JlYXRlKG51bGwpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNEaWN0PFQ+KHU6IFQpOiB1IGlzIERpY3QgJiBUIHtcbiAgcmV0dXJuIHUgIT09IG51bGwgJiYgdSAhPT0gdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNPYmplY3Q8VD4odTogVCk6IHUgaXMgb2JqZWN0ICYgVCB7XG4gIHJldHVybiB0eXBlb2YgdSA9PT0gJ2Z1bmN0aW9uJyB8fCAodHlwZW9mIHUgPT09ICdvYmplY3QnICYmIHUgIT09IG51bGwpO1xufVxuXG5leHBvcnQgY2xhc3MgU3RhY2tJbXBsPFQ+IGltcGxlbWVudHMgU3RhY2s8VD4ge1xuICBwcml2YXRlIHN0YWNrOiBUW107XG4gIHB1YmxpYyBjdXJyZW50OiBPcHRpb248VD4gPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKHZhbHVlczogVFtdID0gW10pIHtcbiAgICB0aGlzLnN0YWNrID0gdmFsdWVzO1xuICB9XG5cbiAgcHVibGljIGdldCBzaXplKCkge1xuICAgIHJldHVybiB0aGlzLnN0YWNrLmxlbmd0aDtcbiAgfVxuXG4gIHB1c2goaXRlbTogVCkge1xuICAgIHRoaXMuY3VycmVudCA9IGl0ZW07XG4gICAgdGhpcy5zdGFjay5wdXNoKGl0ZW0pO1xuICB9XG5cbiAgcG9wKCk6IE9wdGlvbjxUPiB7XG4gICAgbGV0IGl0ZW0gPSB0aGlzLnN0YWNrLnBvcCgpO1xuICAgIGxldCBsZW4gPSB0aGlzLnN0YWNrLmxlbmd0aDtcbiAgICB0aGlzLmN1cnJlbnQgPSBsZW4gPT09IDAgPyBudWxsIDogdGhpcy5zdGFja1tsZW4gLSAxXTtcblxuICAgIHJldHVybiBpdGVtID09PSB1bmRlZmluZWQgPyBudWxsIDogaXRlbTtcbiAgfVxuXG4gIG50aChmcm9tOiBudW1iZXIpOiBPcHRpb248VD4ge1xuICAgIGxldCBsZW4gPSB0aGlzLnN0YWNrLmxlbmd0aDtcbiAgICByZXR1cm4gbGVuIDwgZnJvbSA/IG51bGwgOiB0aGlzLnN0YWNrW2xlbiAtIGZyb21dO1xuICB9XG5cbiAgaXNFbXB0eSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zdGFjay5sZW5ndGggPT09IDA7XG4gIH1cblxuICB0b0FycmF5KCk6IFRbXSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhY2s7XG4gIH1cbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=