evaluate(source, options) {
    const fields = weakmapGet(privateFields, this);
    if (fields === undefined) {
      return nativeEvaluate(this, source);
    }
    const { delegateNative } = fields;
    if (delegateNative) {
      const { transforms, nativeEval } = fields;
      for (let i = 0; i < transforms.length; i += 1) {
        const transform = transforms[i];
        source = transform(source);
      }
      return nativeEval(source);
    } else {
      return shimEvaluate(this, source, options);
    }
  }
@module Provides a XS-specific variation on the behavior of
../compartment-shim.js, completing the story that begins in
./compartment.js, adding a Compartment constructor adapter to the global
scope and transforming all of the methods of a native compartment into
thunks that will alternately delegate to its native or shim behaviors
depending on the __native__ Compartment constructor option.