pakmanaged.js
function addlabel(name, opts) {
    
        var type  = opts.type;
        var token = opts.token;
        var isblockscoped = opts.isblockscoped;
    
        // Define label in the current function in the current scope.
        if (type === "exception") {
          if (_.has(funct["(context)"], name)) {
            if (funct[name] !== true && !state.option.node) {
              warning("W002", state.tokens.next, name);
            }
          }
        }
    
        if (_.has(funct, name) && !funct["(global)"]) {
          if (funct[name] === true) {
            if (state.option.latedef) {
              if ((state.option.latedef === true && _.contains([funct[name], type], "unction")) ||
                  !_.contains([funct[name], type], "unction")) {
                warning("W003", state.tokens.next, name);
              }
            }
          } else {
            if ((!state.option.shadow || _.contains([ "inner", "outer" ], state.option.shadow)) &&
                type !== "exception" || funct["(blockscope)"].getlabel(name)) {
              warning("W004", state.tokens.next, name);
            }
          }
        }
    
        if (funct["(context)"] && _.has(funct["(context)"], name) && type !== "function") {
          if (state.option.shadow === "outer") {
            warning("W123", state.tokens.next, name);
          }
        }
    
        // if the identifier is blockscoped (a let or a const), add it only to the current blockscope
        if (isblockscoped) {
          funct["(blockscope)"].current.add(name, type, state.tokens.curr);
          if (funct["(blockscope)"].atTop() && exported[name]) {
            state.tokens.curr.exported = true;
          }
        } else {
          funct["(blockscope)"].shadow(name);
          funct[name] = type;
    
          if (token) {
            funct["(tokens)"][name] = token;
          }
    
          if (funct["(global)"]) {
            global[name] = funct;
            if (_.has(implied, name)) {
              if (state.option.latedef) {
                if ((state.option.latedef === true && _.contains([funct[name], type], "unction")) ||
                    !_.contains([funct[name], type], "unction")) {
                  warning("W003", state.tokens.next, name);
                }
              }
    
              delete implied[name];
            }
          } else {
            scope[name] = funct;
          }
        }
      }
function addlabel(name, opts) {
    
        var type  = opts.type;
        var token = opts.token;
        var isblockscoped = opts.isblockscoped;
    
        // Define label in the current function in the current scope.
        if (type === "exception") {
          if (_.has(funct["(context)"], name)) {
            if (funct[name] !== true && !state.option.node) {
              warning("W002", state.tokens.next, name);
            }
          }
        }
    
        if (_.has(funct, name) && !funct["(global)"]) {
          if (funct[name] === true) {
            if (state.option.latedef) {
              if ((state.option.latedef === true && _.contains([funct[name], type], "unction")) ||
                  !_.contains([funct[name], type], "unction")) {
                warning("W003", state.tokens.next, name);
              }
            }
          } else {
            if ((!state.option.shadow || _.contains([ "inner", "outer" ], state.option.shadow)) &&
                type !== "exception" || funct["(blockscope)"].getlabel(name)) {
              warning("W004", state.tokens.next, name);
            }
          }
        }
    
        if (funct["(context)"] && _.has(funct["(context)"], name) && type !== "function") {
          if (state.option.shadow === "outer") {
            warning("W123", state.tokens.next, name);
          }
        }
    
        // if the identifier is blockscoped (a let or a const), add it only to the current blockscope
        if (isblockscoped) {
          funct["(blockscope)"].current.add(name, type, state.tokens.curr);
          if (funct["(blockscope)"].atTop() && exported[name]) {
            state.tokens.curr.exported = true;
          }
        } else {
          funct["(blockscope)"].shadow(name);
          funct[name] = type;
    
          if (token) {
            funct["(tokens)"][name] = token;
          }
    
          if (funct["(global)"]) {
            global[name] = funct;
            if (_.has(implied, name)) {
              if (state.option.latedef) {
                if ((state.option.latedef === true && _.contains([funct[name], type], "unction")) ||
                    !_.contains([funct[name], type], "unction")) {
                  warning("W003", state.tokens.next, name);
                }
              }
    
              delete implied[name];
            }
          } else {
            scope[name] = funct;
          }
        }
      }
function addlabel ( name , opts ) { var type = opts . type ; var token = opts . token ; var isblockscoped = opts . isblockscoped ; // Define label in the current function in the current scope. if ( type === "exception" ) { if ( _ . has ( funct [ "(context)" ] , name ) ) { if ( funct [ name ] !== true && ! state . option . node ) { warning ( "W002" , state . tokens . next , name ) ; } } } if ( _ . has ( funct , name ) && ! funct [ "(global)" ] ) { if ( funct [ name ] === true ) { if ( state . option . latedef ) { if ( ( state . option . latedef === true && _ . contains ( [ funct [ name ] , type ] , "unction" ) ) || ! _ . contains ( [ funct [ name ] , type ] , "unction" ) ) { warning ( "W003" , state . tokens . next , name ) ; } } } else { if ( ( ! state . option . shadow || _ . contains ( [ "inner" , "outer" ] , state . option . shadow ) ) && type !== "exception" || funct [ "(blockscope)" ] . getlabel ( name ) ) { warning ( "W004" , state . tokens . next , name ) ; } } } if ( funct [ "(context)" ] && _ . has ( funct [ "(context)" ] , name ) && type !== "function" ) { if ( state . option . shadow === "outer" ) { warning ( "W123" , state . tokens . next , name ) ; } } // if the identifier is blockscoped (a let or a const), add it only to the current blockscope if ( isblockscoped ) { funct [ "(blockscope)" ] . current . add ( name , type , state . tokens . curr ) ; if ( funct [ "(blockscope)" ] . atTop ( ) && exported [ name ] ) { state . tokens . curr . exported = true ; } } else { funct [ "(blockscope)" ] . shadow ( name ) ; funct [ name ] = type ; if ( token ) { funct [ "(tokens)" ] [ name ] = token ; } if ( funct [ "(global)" ] ) { global [ name ] = funct ; if ( _ . has ( implied , name ) ) { if ( state . option . latedef ) { if ( ( state . option . latedef === true && _ . contains ( [ funct [ name ] , type ] , "unction" ) ) || ! _ . contains ( [ funct [ name ] , type ] , "unction" ) ) { warning ( "W003" , state . tokens . next , name ) ; } } delete implied [ name ] ; } } else { scope [ name ] = funct ; } } }
adds an indentifier to the relevant current scope and creates warnings/errors as necessary name: string opts: { type: string, token: token, isblockscoped: bool }
adds an indentifier to the relevant current scope and creates warnings / errors as necessary name : string opts : { type : string token : token isblockscoped : bool }