code: function importFramework (framework, skip, onto, recursive) {
    framework=resolve(framework);
    var shortName=basename(framework, SUFFIX);
    // Check if the framework has already been loaded
    var fw=cache[shortName];
    if (fw) return;
  
    // Load the main framework binary file
    var frameworkPath = join(framework, shortName);
    var lib = core.dlopen(frameworkPath);
  
    fw = {
      lib: lib,
      name: shortName,
      basePath: framework,
      binaryPath: frameworkPath
    };
  
    // cache before loading bridgesupport files
    cache[shortName] = fw;
  
    // Parse the BridgeSupport file and inline dylib, for the C functions, enums,
    // and other symbols not introspectable at runtime.
    parseBridgeFile(fw, onto, recursive);
  
    // Iterate through the loaded classes list and define "setup getters" for them.
    if (!skip) {
      var classes = core.getClassList();
      classes.forEach(function (c) {
        if (c in onto) return;
        Object.defineProperty(onto, c, {
          enumerable: true,
          configurable: true,
          get: function () {
            var clazz = Class.getClassByName(c, onto);
            delete onto[c];
            return onto[c] = clazz;
          }
        });
      });
    }
  }
docs: Accepts a single framework name and imports it into the current node process.
  `framework` may be a relative (singular) framework name, or a path (relative or
  absolute) to a Framework directory.
  
  $.NSObject   // undefined
  
  $.import('Foundation')
  
  $.NSObject   // [Class: NSObject]
  
  @param {String} framework The framework name or path to load.