How to use the @effectful/transducers.Tag.object function in @effectful/transducers

To help you get started, we’ve selected a few @effectful/transducers examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github awto / effectfuljs / packages / core / src / state.js View on Github external
sl.tok(Tag.object, Tag.Identifier, { sym: ctx }),
              sl.tok(Tag.property, Tag.Identifier, {
                node: { name: fld.subField }
              }),
              ...sl.leave()
            );
          } else init.push(sl.tok(Tag.object, Tag.Identifier, { sym: ctx }));
          init.push(
            sl.tok(Tag.property, Tag.Identifier, {
              node: { name: fld.fieldName }
            }),
            ...sl.leave()
          );
        } else init.push(sl.tok(Tag.init, Tag.Identifier, { sym: fld }));
      } else {
        const pos = varField ? Tag.object : Tag.init;
        init.push(sl.tok(pos, Tag.Identifier, { sym: ctx }));
        if (varField) {
          init.unshift(sl.enter(Tag.init, Tag.MemberExpression));
          init.push(
            sl.tok(Tag.property, Tag.Identifier, {
              node: { name: root.opts.varStorageField }
            }),
            ...sl.leave()
          );
        }
      }
      if (closConv && !closField) {
        saved.set(copy, {
          raw: null,
          init: [
            sl.enter(Tag.init, Tag.MemberExpression),
github awto / effectfuljs / packages / core / src / state.js View on Github external
if (closConv) {
    closures = root.closSavedDecls;
    closArg = root.closureArgSym;
  }
  if (ctxDeps && ctxDeps.size && root.opts.closureShortcuts !== false) {
    const varField = root.opts.varStorageField;
    const closField = root.opts.closureStorageField;
    for (const { copy, fld, ctx } of ctxDeps.values()) {
      const init = [];
      if (fld) {
        if (fld.interpr === Bind.ctxField) {
          init.push(sl.enter(Tag.init, Tag.MemberExpression));
          if (fld.subField) {
            init.push(
              sl.enter(Tag.object, Tag.MemberExpression),
              sl.tok(Tag.object, Tag.Identifier, { sym: ctx }),
              sl.tok(Tag.property, Tag.Identifier, {
                node: { name: fld.subField }
              }),
              ...sl.leave()
            );
          } else init.push(sl.tok(Tag.object, Tag.Identifier, { sym: ctx }));
          init.push(
            sl.tok(Tag.property, Tag.Identifier, {
              node: { name: fld.fieldName }
            }),
            ...sl.leave()
          );
        } else init.push(sl.tok(Tag.init, Tag.Identifier, { sym: fld }));
      } else {
        const pos = varField ? Tag.object : Tag.init;
        init.push(sl.tok(pos, Tag.Identifier, { sym: ctx }));
github awto / effectfuljs / packages / core / src / state.js View on Github external
lhs: false,
              rhs: true,
              decl: false
            });
            continue;
          case Tag.CallExpression:
            if (s.cur().type !== Tag.MemberExpression) break;
            const m = s.take();
            if (s.cur().type !== Tag.Super) {
              yield i;
              yield m;
              continue;
            }
            yield i;
            yield s.enter(Tag.callee, Tag.MemberExpression);
            yield s.enter(Tag.object, Tag.MemberExpression, m.value);
            yield* walk();
            yield* s.leave();
            s.close(m);
            yield s.tok(Tag.property, Tag.Identifier, {
              node: { name: "call" }
            });
            yield* s.leave();
            yield* s.till(i => i.pos === Tag.arguments);
            yield s.tok(Tag.push, Tag.Identifier, {
              sym: thisSym,
              lhs: false,
              rhs: true,
              decl: false
            });
            continue;
          case Tag.Super:
github awto / effectfuljs / packages / core / src / state.js View on Github external
const closField = root.opts.closureStorageField;
    for (const { copy, fld, ctx } of ctxDeps.values()) {
      const init = [];
      if (fld) {
        if (fld.interpr === Bind.ctxField) {
          init.push(sl.enter(Tag.init, Tag.MemberExpression));
          if (fld.subField) {
            init.push(
              sl.enter(Tag.object, Tag.MemberExpression),
              sl.tok(Tag.object, Tag.Identifier, { sym: ctx }),
              sl.tok(Tag.property, Tag.Identifier, {
                node: { name: fld.subField }
              }),
              ...sl.leave()
            );
          } else init.push(sl.tok(Tag.object, Tag.Identifier, { sym: ctx }));
          init.push(
            sl.tok(Tag.property, Tag.Identifier, {
              node: { name: fld.fieldName }
            }),
            ...sl.leave()
          );
        } else init.push(sl.tok(Tag.init, Tag.Identifier, { sym: fld }));
      } else {
        const pos = varField ? Tag.object : Tag.init;
        init.push(sl.tok(pos, Tag.Identifier, { sym: ctx }));
        if (varField) {
          init.unshift(sl.enter(Tag.init, Tag.MemberExpression));
          init.push(
            sl.tok(Tag.property, Tag.Identifier, {
              node: { name: root.opts.varStorageField }
            }),