_computeLineSpans = args => {
  const spans = [];
  const currentStyle = new Map(); // try with formatting until we find something unsupported

  let i = 0;

  for (; i < args.length; i++) {
    const arg = args[i]; // @ts-ignore

    const style = _browserStyleMap[arg];

    if (style !== undefined) {
      currentStyle.set(style.left, style.right);
    } else {
      if (arg.constructor === String || arg.constructor === Number) {
        // @ts-ignore
        const span = dom.element('span', [pair.create('style', dom.mapToStyleString(currentStyle))], [dom.text(arg)]);

        if (span.innerHTML === '') {
          span.innerHTML = '&nbsp;';
        }

        spans.push(span);
      } else {
        break;
      }
    }
  } // append the rest


  for (; i < args.length; i++) {
    let content = args[i];

    if (!(content instanceof Symbol)) {
      if (content.constructor !== String && content.constructor !== Number) {
        content = ' ' + json.stringify(content) + ' ';
      }

      spans.push(dom.element('span', [], [dom.text(
      /** @type {string} */
      content)]));
    }
  }

  return spans;
}
@param {Array<string|Symbol|Object|number>} args
@return {Array<Element>}