From 290741bba12d3b59c6182089323cc673c5fb55a3 Mon Sep 17 00:00:00 2001 From: Domenic Denicola Date: Thu, 8 Sep 2016 15:08:22 -0400 Subject: [PATCH] Remove the "Changes" section It is out of date, incomplete, and a poor substitute for the commit history. --- index.bs | 235 ------------------------------------- index.html | 336 ----------------------------------------------------- 2 files changed, 571 deletions(-) diff --git a/index.bs b/index.bs index f2424cbe..46333006 100644 --- a/index.bs +++ b/index.bs @@ -13531,241 +13531,6 @@ defined in this specification — see for the syntaxes that are used by these extended attributes. -

Changes

- -This section is informative. - -The following is a list of substantial changes to the document on each publication. -For the list of changes during the development of the First Edition of this -specification, see -that document's -Changes appendix. - -* Fixed unions containing a sequence and a dictionary to try the - sequence first when given an object, just like overload - resolution does. -* Removed support for [Constructor] on dictionaries. -* Added the [LenientSetter] extended attribute. -* Added the [SecureContext] extended attribute. -* Changed from [Unscopeable] to - [Unscopable] to match ES6 better. -* Removed the term "unenumerable" and its associated prose and replaced it by the - extended attribute [LegacyUnenumerableNamedProperties]. -* Allowed object internal methods to be overridden by other specifications. -* Added some more parameters to the “perform a security check” hook. -* Defined the “name” property for all Function - objects (including those for operations and attribute getters and setters). -* Removed the Date type. -* Disallowed “length” and “name” from being used as identifiers of - constants. -* Added a FrozenArray<|T|> type. -* Renamed [ArrayClass] to [LegacyArrayClass]. -* Removed T[] array types. -* Allowed [NewObject] to be used on things with - a promise type. -* Fix various cases in which maplike/setlike were operating on the wrong objects. - - Disallow maplike, setlike and iterable declarations from appearing more than - once on an interface and its inherited and consequential interfaces. - Also disallow the relevant restricted member names (such as “entries” and “values”) - on the inherited and consequential interfaces. - -* Allowed stringifier attributes to have type {{USVString}}. -* Gave interface objects, named constructors, and dictionary - constructors a "name" property to match ES6. -* Made the "length" property on dictionary constructors - configurable. -* Added types for {{ArrayBuffer}}, {{DataView}} - and typed array objects. -* Added {{USVString}} and allowed string literals in IDL to - be used to give values for all string-typed optional argument and dictionary - member default values. -* Made sequences distinguishable from dictionaries, callback - functions, and all interface types. -* Removed IDL exceptions, baked in {{DOMException}}, - and added {{Error!!interface}} and {{DOMException}} - as types. -* Removed [MapLike] and added - iterable, maplike and setlike declarations. -* Removed the custom Object.prototype.toString definition and instead - defined class strings to influence the @@toStringTag property - on objects. -* Added the [Unscopeable] extended attribute. -* Rewrote ES to IDL sequence conversion so that any iterable is - convertible to a sequence. -* Added grammar production for Promise<|T|> types - and allowed |T| to be {{void}}. -* Added a definition to "initialize an object from an iterable", - which behaves like the Map constructor. -* Added a default value [] that can be used for - sequence-typed operation argument default values and - dictionary member default values. -* Added promise types. -* Added the [NewObject] and - [SameObject] extended attributes. -* Allowed [Constructor] to be specified - on dictionaries. -* Added a RegExp type. -* Added iterators that can be declared on interfaces. -* Added an @@iterator method to objects with indexed - properties. -* Updated to ECMAScript 6th Edition. -* Added serializers. -* Added a {{ByteString}} type, for representing - 8 bit strings without a particular encoding as ECMAScript - String values. -* Added static attributes. - -* Make it clear that an interface can't be exposed in a global - where its parent interface is not exposed. -* Allow dictionary-typed trailing-position operation arguments not to - be optional, if and only if the dictionary type has a required - dictionary member. -* Added a platform object \[[Set]] internal method to handle - named and indexed setters better. -* Removed the concept of creators; setters are always also - creators. -* Disallowed an interface without [NoInterfaceObject] - inheriting from a [NoInterfaceObject] interface. -* Removed indexed deleters. -* Made the prototype of an interface object of a non-root - interface be the interface object of its ancestor interface. -* Clarified the property attributes of the "prototype" property - of non-callback interface objects. -* Made the "length" property on interface objects and named - constructors configurable. -* Added a way to mark dictionary members as required. -* Allowed hyphens in identifiers after the first character. -* Fix [Exposed] text to make it - clear that the value on the interface, if any, is used as the - value for its members by default. -* Fixed the grammar for extended attributes that take an identifier list, - such as [Exposed]. -* Add a term "unenumerable" to allow named properties to be exposed as - properties with \[[Enumerable]] set to false. -* Added the [Exposed] and - [PrimaryGlobal] extended attributes and - allowed an identifier to be used with [Global]. -* Removed [TreatUndefinedAs]. -* Renamed [TreatNonCallableAsNull] to [TreatNonObjectAsNull] - and changed its semantics to allow any object. Changed - callback function invocation to be a no-op when the object is - not callable, which can now happen in the - [TreatNonObjectAsNull] case. -* Changed the default this value for callbacks from null to undefined. -* Removed the requirement for named properties objects to be function objects. -* Disallowed properties from being defined on a named properties object. -* Fixed infinite loop in named property visibility algorithm. -* Made stringifiers and serializers not use \[[Get]] or \[[Call]] - for the their attribute or operation delegated behavior. -* Allowed trailing optional comma in enum lists. -* Disallowed static interface members from being defined on a callback interface. -* Added a hook to do a security check when invoking an operation - or accessing an attribute. -* Defined how callbacks influence the incumbent script. -* Changed how callback functions are invoked to support missing - optional arguments. -* Renamed [NamedPropertiesObject] to - [Global], which now also causes - properties for interface members to appear on the object - itself rather than on the interface prototype object. -* Split out {{boolean}} from the other - primitive types. Made {{boolean}}, - numeric types and {{DOMString}} distinguishable. -* Required a getter to be present on an interface if it has a - setter, creator or delete. -* Extended [Unforgeable] to apply to operations - and interfaces. -* Allowed all operation arguments to be specified as being optional and - changed back to the behavior of undefined - being treated as a missing optional argument value. Modified the - effective overload set and overload resolution algorithms to - take this into account, as well as allowing an undefined - value passed as the argument value at the distinguishing index to select the overload - with an optional argument at that index. - Also removed [TreatUndefinedAs=Missing]. -* Changed the ECMAScript to IDL dictionary conversion algorithm - to treat a property with the value undefined - as missing. -* Removed the ability to put extended attributes after the - typedef keyword, as that feature is unused. -* Fixed the {{long long}} and {{unsigned long long}} - conversion algorithms to correctly identify the range of contiguous, - exactly, uniquely representable integers you can get from a Number. -* Clarified that Function objects for - operations and attribute getters and setters are distinct on each - interface they are mixed in to using an implements statement, - and that each copy of the Function works - only on objects that implement the interface whose interface - prototype object the Function object - is on. -* Mention the named properties object in the list of initial objects. -* Added back a custom \[[HasInstance]] on interface objects to allow objects - from other windows to be considered instanceof them. -* Fixed conversion of Number values - to {{any}} by using the - conversion algorithm for {{unrestricted double}}. -* Allowed an identifier to be “prototype” for any construct except - constants and static operations. -* Fixed a bug in the user object definition where the internal \[[Call]] - method would be treated as the implementation of an operation even if - the callback interface had more than one operation. -* Further tweaked the overload resolution algorithm and union type conversion - algorithm for consistency. -* Lifted the restriction on [Unforgeable] appearing - on an IDL attribute if another interface inherits from the one the attribute - is declared on, but required that the inheriting interface not have an - attribute with the same identifier. -* Made attribute setters throw if no argument was passed to them, instead of - assuming undefined. -* Prevented dictionaries from referencing themselves. -* Made sequences, arrays and dictionaries undistingishable again, thereby allowing - non-Array ECMAScript objects to be converted - to sequence and array types. -* Added a requirement to state what the values of an exception’s fields are - when throwing it. -* Changed the “length” property on Function - objects for IDL operations to return the smallest number of required arguments. -* Clarified that dictionaries may not be nullable when used as - the type of an operation argument or dictionary member. -* Specify the value of the “length” property on interface objects - that do not have constructors. -* Do not treat array index properties as named properties if an object supports - both indexed and named properties. -* Require that dictionary type arguments followed by optional arguments - must also be optional, and that such optional arguments always are - assumed to have a default value of an empty dictionary. Also disallow - dictionary types from being used inside nullable types and from being - considered distinguishable from nullable types. -* Always consider dictionary members with default values as present. -* Tweak [Clamp] algorithms for clarity. -* Require exception objects to have \[[Class]] “Error” and suggest that they - have any non-standard properties that native Error objects do. -* Fixed a bug in the whitespace token regular expression. -* Explicitly disallow dictionaries from being used inside union types - as the type of an attribute or exception field. -* Fixed a bug in the definition of distinguishability where a nullable - union type and a non-nullable union type that has a nullable member type - were considered distinguishable. -* Disallowed callback interfaces from being used in implements statements. -* Renamed “exception types” to “exception names”. -* Disallowed non-callback interfaces from inheriting from callback interfaces. -* Changed the algorithm for conversion from a platform object with indexed - properties to a sequence type to use its internal knowledge of the - set of property indexes rather than getting the "length" property, which - may not even exist. -* Added a warning to prefer the use of {{double}} - to {{float}}, unless there are good - reasons to choose the 32 bit type. -* Changed the restriction on operation argument default values - so that all optional arguments to the left of one with a - default value must also have default values. (Previously, - this was to the right.) - - - - - -

Index

@@ -13911,7 +13592,6 @@

I
  • 4.8.9. Platform object [[Call]] method
  • 4.9. User objects implementing callback interfaces
  • 4.10. Invoking callback functions -
  • Changes