anchor.diff:  // copying properties) on platforms where we know it works well (Chrome / d8).
   var supportsDirectProtoAccess = #directAccessTestExpression;
   
  -var functionsHaveName = (function() {
  -  function t() {};
  -  return (typeof t.name == 'string')
  -})();
  -
   // 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) {
  -  if (functionsHaveName) return;
  +  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);
  
positive.code: ///
  /// This template is used for Dart 2.
  const String deferredBoilerplateDart2 = '''
  function(inherit, inheritMany, mixin, lazy, makeConstList, convertToFastObject,
           hunkHelpers, setFunctionNamesIfNecessary, updateHolder, updateTypes,
           setOrUpdateInterceptorsByTag, setOrUpdateLeafTags,
           #embeddedGlobalsObject, holdersList, #staticState) {
  
  // Builds the holders. They only contain the data for new holders.
  #holders;
  
  // If the name is not set on the functions, do it now.
  setFunctionNamesIfNecessary(#deferredHoldersList);
  
  // Updates the holders of the main-fragment. Uses the provided holdersList to
  // access the main holders.
  
negative.code:           ? new js.LiteralNull()
            : classReference(superclass);
        if (list.length == 1) {
          locals['_inherit'] ??= js.js('hunkHelpers.inherit');
          inheritCalls.add(js.js.statement('_inherit(#, #)',
              [classReference(list.single), superclassReference]));
        } else {
          locals['_inheritMany'] ??= js.js('hunkHelpers.inheritMany');
          var listElements = list.map(classReference).toList();
          inheritCalls.add(js.js.statement('_inheritMany(#, #)',
              [superclassReference, js.ArrayInitializer(listElements)]));
  