anchor.diff:            _closedWorld.backendUsage, generateEmbeddedGlobalAccess, js.js("""
           // On V8, the 'intern' function converts a string to a symbol, which
           // makes property access much faster.
  +        // TODO(sra): Use Symbol on non-IE11 browsers.
           function (s) {
             var o = {};
             o[s] = 1;
  -          return Object.keys(convertToFastObject(o))[0];
  +          return Object.keys(hunkHelpers.convertToFastObject(o))[0];
           }""", [])));
       }
   
  
positive.code:       Holder holder = nonStaticStateHolders[i];
        if (holderCode.activeHolders.contains(holder)) {
          updateHolderAssignments.add(js.js.statement(
              '#holder = updateHolder(holdersList[#index], #holder)', {
            'index': js.number(i),
            'holder': new js.VariableUse(holder.name)
          }));
        } else {
          // TODO(sra): Change declaration followed by assignments to declarations
          // with initialization.
  
negative.code: // copying properties) on platforms where we know it works well (Chrome / d8).
  var supportsDirectProtoAccess = #directAccessTestExpression;
  
  // Sets the name property of functions, if the JS engine doesn't set the name
  // itself.
  // As of 2018 only IE11 doesn't set the name.
  function setFunctionNamesIfNecessary(holders) {
    function t(){};
    if (typeof t.name == "string") return;
  
    for (var i = 0; i < holders.length; i++) {
      var holder = holders[i];
      var keys = Object.keys(holder);
  