text: 
  // marked as custom because 'name' property of some built-ins is not
  // specified exactly and implementations differ
  
  /*---
  {
      "custom": true
  }
  ---*/
  
  /*===
  undefined
  Object
  undefined
  Function
  
  Array
  undefined
  String
  undefined
  Boolean
  undefined
  Number
  undefined
  undefined
  Date
  undefined
  RegExp
  undefined
  Error
  Error
  EvalError
  EvalError
  RangeError
  RangeError
  ReferenceError
  ReferenceError
  SyntaxError
  SyntaxError
  TypeError
  TypeError
  URIError
  URIError
  undefined
  ===*/
  
  /* Names of standard built-ins. */
  
  print(this.name);
  
  print(Object.name);
  print(Object.prototype.name);
  
  // Function is a special case: Function is a constructor (a function),
  // but Function.prototype is also a function and should thus have a name.
  // Rhino has "", V8 has "Empty"; we use "" too for now.
  print(Function.name);
  print(Function.prototype.name);
  
  print(Array.name);
  print(Array.prototype.name);
  
  print(String.name);
  print(String.prototype.name);
  
  print(Boolean.name);
  print(Boolean.prototype.name);
  
  print(Number.name);
  print(Number.prototype.name);
  
  print(Math.name);
  
  print(Date.name);
  print(Date.prototype.name);
  
  print(RegExp.name);
  print(RegExp.prototype.name);
  
  // Error objects are not function objects, but they have a 'name'
  // property for the error type
  
  print(Error.name);
  print(Error.prototype.name);
  
  print(EvalError.name);
  print(EvalError.prototype.name);
  
  print(RangeError.name);
  print(RangeError.prototype.name);
  
  print(ReferenceError.name);
  print(ReferenceError.prototype.name);
  
  print(SyntaxError.name);
  print(SyntaxError.prototype.name);
  
  print(TypeError.name);
  print(TypeError.prototype.name);
  
  print(URIError.name);
  print(URIError.prototype.name);
  
  print(JSON.name);
  
  /*===
  ThrowTypeError
  ===*/
  
  /* Name of the "type error thrower" of E5 Section 13.2.3.  This is not
   * defined in the specification; V8 uses "ThrowTypeError" which we also
   * use.
   */
  
  function func() {
      'use strict';
  }
  
  try {
      var desc = Object.getOwnPropertyDescriptor(func, 'caller');
      print(desc.get.name);
  } catch (e) {
      print(e.name, e);
  }
  
  /*===
  undefined
  ===*/
  
  /* FIXME: other non-standard builtins */
  
  try {
      print(Duktape.name);
  } catch (e) {
      print(e.name);
  }
  
  
  