function parseMetaWithErrors(src) {
  const isObj = isObject(src);
  const custom = isObj && src.custom || getDefaultCustom();
  const errors = [];
  const meta = parseMeta(isObj ? src.code : src, { errors });
  if (meta) {
    testerBatch(errors);
    testScript('', { meta, custom });
    testerBatch();
  } else {
    errors.push(i18n('labelNoName')); // used by confirm app
  }
  return {
    meta,
    errors: errors.length ? errors : null,
  };
}
@param {string | {code:string, custom:VMScript.Custom}} src
@return {{ meta: VMScript.Meta, errors: string[] }}