anchor.diff:  
   nonAnyType
   	: primitiveType typeSuffix
  +	| promiseType null_
   	| 'ByteString' typeSuffix
   	| 'DOMString' typeSuffix
  +	| 'USVString' typeSuffix
   	| IDENTIFIER_WEBIDL typeSuffix
   	| 'sequence' '<' type '>' null_
   	| 'object' typeSuffix
   	| 'Date' typeSuffix
   	| 'RegExp' typeSuffix
  +	| 'DOMException' typeSuffix
  +	| bufferRelatedType typeSuffix
  +;
  +
  +bufferRelatedType
  +	: 'ArrayBuffer'
  +	| 'DataView'
  +	| 'Int8Array'
  +	| 'Int16Array'
  +	| 'Int32Array'
  +	| 'Uint8Array'
  +	| 'Uint16Array'
  +	| 'Uint32Array'
  +	| 'Uint8ClampedArray'
  +	| 'Float32Array'
  +	| 'Float64Array'
   ;
   
   constType
  
positive.code: ;
  
  extendedAttributeInner
  	:  '(' extendedAttributeInner ')' extendedAttributeInner
  	| '[' extendedAttributeInner ']' extendedAttributeInner
  	| '{' extendedAttributeInner '}' extendedAttributeInner
  	| otherOrComma extendedAttributeInner
  
negative.code: 	| 'Infinity'
  	| 'NaN'
  	| 'RegExp'
  	| 'USVString'
  	| 'any'
  	| 'boolean'
  	| 'byte'
  