code: private boolean isLocalValueType(JSType typei, AbstractCompiler compiler) {
        checkNotNull(typei);
        JSType nativeObj = compiler.getTypeRegistry().getNativeType(JSTypeNative.OBJECT_TYPE);
        JSType subtype = typei.meetWith(nativeObj);
        // If the type includes anything related to a object type, don't assume
        // anything about the locality of the value.
        return subtype.isEmptyType();
      }
docs: Return whether {@code type} is guaranteed to be a that of a "local value".
  
  <p>For the purposes of purity analysis we really only care whether a return value is
  immutable and identity-less; such values can't contribute to side-effects. Therefore, this
  method is implemented to check if {@code type} is that of a primitive, since primitives
  exhibit both relevant behaviours.