- release: Update
/dist/
in the npm package. The [email protected] package on npm includes a distribution for an earlier commit between 6.0.0 and 7.0.0.
- [BREAKING CHANGE] Remove support for ES5 browsers such as IE11 (Timo Tijhof)
- Factory: Add support to register and create objects from ES6 classes (Timo Tijhof) T284935
- Factory: Add support to register by
Class.key
(Timo Tijhof) T96640 - core: Make
OO.unique()
faster by using ES6 Set methods (Bartosz Dziewoński)
This release removes an (optional) dependency on jQuery.
- [BREAKING CHANGE] release: Remove special "jquery" build (Timo Tijhof)
- [BREAKING CHANGE] Use jQuery v3.5.1, up from v3.5.0 (James D. Forrester)
- [BREAKING CHANGE] Use jQuery v3.5.0, up from v3.4.1 (James D. Forrester)
- EmitterList: Call OO.initClass for consistency with other classes (Thalia Chan)
- EventEmitter: Improve documentation for variadic args (Thalia Chan)
- docs: Fix typo in EventEmitter documentation (Thalia Chan)
- docs: Point to gerrit, not Phabricator Diffusion (James D. Forrester)
- [BREAKING CHANGE] Update jQuery 3.2.1 -> 3.4.1 (Ed Sanders; James D. Forrester)
- [BREAKING CHANGE] EventEmitter.emit: catch exceptions from listeners (David Chan)
- EmitterList: Throw error on null/undefined item (Kosta Harlan)
- EventEmitter: Minor code simplifications (Timo Tijhof)
- Factory: Improve unit tests (Timo Tijhof)
- Factory: Support registration by name (Timo Tijhof)
- core: Use "OO" internally too, instead of "oo" (Prateek Saxena)
- docs: Convert from using JSDuck to JSDoc 3 (Prateek Saxena)
- release: Add AUTHORS.txt back to package root (Timo Tijhof)
- release: Remove text files from dist/ (Timo Tijhof)
- release: Add 'files' whitelist to package.json (Timo Tijhof)
- [DEPRECATING CHANGE] Drop more code supporting ES3 / IE<=9 (Ed Sanders)
- core: Fix deleteProp() case where root object is empty (Ed Sanders)
- docs: Add intro for OO.Registry (Prateek Saxena)
- docs: Fix valid-jsdoc issues in EventEmitter and SortedEmitterList (Ed Sanders)
- EmitterList: Fix moving an item to a lower index (Andrew Green)
- EventEmitter: Document disconnect() behaviour regarding array matching (Timo Tijhof)
- EventEmitter: Support passing once() handler to off() (Timo Tijhof)
- util: Simplify isPlainObject and fix two false positives (Timo Tijhof)
- release: Add README/AUTHORS/LICENCE to dist (James D. Forrester)
This release drops support for ES3 environments. Where previously OOjs was supported in IE 6-8 with an ES5 shim, it is no longer.
- [BREAKING CHANGE] core: Drop support for ES3 environments (James D. Forrester)
- core: Add
OO.isSubclass
, to test class inheritance (David Chan) - core: Guard
OO.setProp()
against insufficient arguments (Ed Sanders) - core: Implement
OO.deleteProp
(Ed Sanders) - core: Improve error message for
inheritClass
/mixinClass
called with undefined (Bartosz Dziewoński) - core: Switch from
.parent
hack to use.super
directly (James D. Forrester) - EmitterList: Change insertItem from
@private
to@protected
(Moriel Schottlender) - SortedEmitterList: Emit the actual inserted index (Ed Sanders)
- docs: Make OO uppercase (Prateek Saxena)
- docs: Update Phabricator URL (James D. Forrester)
- docs: Replace git.wikimedia.org URL with Phabricator one (Paladox)
- release: Bump file copyright notices for year change (James D. Forrester)
- EventEmitter: Allow disconnecting event handlers given by array (Moriel Schottlender)
- Add EmitterList class (Moriel Schottlender)
- Add SortedEmitterList class (Moriel Schottlender)
- core: Add binarySearch() utility from VisualEditor (Ed Sanders)
- build: Bump various devDependencies to latest (James D. Forrester)
- tests: Add QUnit web interface (Moriel Schottlender)
- AUTHORS: Update for the past few months (James D. Forrester)
- build: Fix the build by downgrading Karma and removing testing of Safari 5 (Timo Tijhof)
- core: Remove dependency on Object.create (Bartosz Dziewoński)
- test: Don't use QUnit.supportsES5 (Bartosz Dziewoński)
- EventEmitter: Remove TODO about return value of #emit and tweak tests (Bartosz Dziewoński)
- build: Add explicit dependency upon grunt-cli (Kunal Mehta)
- build: Various fixes for cdnjs support (James D. Forrester)
- Factory: Remove unused, undocumented 'entries' property (Ed Sanders)
- Registry: Provide an unregister method (Ed Sanders)
- core: Improve class related unit tests (Timo Tijhof)
- jsduck: Set --processes=0 to fix warnings-exit-nonzero (Timo Tijhof)
- core: Provide OO.unique for removing duplicates from arrays (Ed Sanders)
- EventEmitter: Remove unneeded Array.prototype.slice call (Timo Tijhof)
- core: Use Node#isEqualNode to compare node objects (Ori Livneh)
- core: Recurse more frugally in OO.compare (David Chan)
- util: Fix typo "siuch" in comment (Timo Tijhof)
- Factory: Enable v8 optimisation for
#create
(Ori Livneh) - EventEmitter: Enable v8 optimisation for
#emit
(Ori Livneh)
- core: Explicitly bypass undefined values in OO.compare() (Roan Kattouw)
- core: Add getProp() and setProp() methods (Roan Kattouw)
- EventEmitter: Use hasOwn check in
#emit
(Ed Sanders) - EventEmitter: Use hasOwn check in
#off
(Timo Tijhof)
- core: Make OO.compare cover boolean as well as number and string primitives (James D. Forrester)
- EventEmitter: Make #validateMethod private (Roan Kattouw)
- release: Tell people which version they're using (James D. Forrester)
- Registry: Guard against Object prototype keys in lookup() (Ed Sanders)
- core: Add new OO.copy callback for all nodes, not just leaves (C. Scott Ananian)
- core: Use empty object as fallback when comparing to null/undefined (Ed Sanders)
- EventEmitter: Look up callbacks by name at call time (divec)
- EventEmitter: Remove dead code that claims to prevent double bindings (Timo Tijhof)
- EventEmitter: Fix bug in disconnect loop for double un-bindings (Ed Sanders)
- EventEmitter: Support events named "hasOwnProperty" (Timo Tijhof)
- test: Update qunitjs to v1.14.0 (Timo Tijhof)
- release: Implement build target optimised for jQuery (Timo Tijhof)
- core: Use bracket notation for 'super' for ES3 compatibility (James D. Forrester)
- core: Implement support for ES3 browsers (Timo Tijhof)
- core: Add initClass method for initializing static in base classes (Ed Sanders)
- Factory: Use Class.super instead of hard coding parent class (Timo Tijhof)
- Registry: Remove redundant type validation logic in #register (Timo Tijhof)
- core: Use Class.super instead of this.constructor.super (Timo Tijhof)
- core: Add a 'super' property to inheriting classes (Timo Tijhof)
- docs: Improve overall documentation and fix minor issues (Timo Tijhof)
- release: Update dist build header and license file for 2014 (James D. Forrester)
- docs: Change display name from OOJS to OOjs (Timo Tijhof)
- docs: Update references from GitHub to Wikimedia (Timo Tijhof)
- core: Add simpleArrayUnion, simpleArrayIntersection and simpleArrayDifference (Timo Tijhof)
- core: Remove unused code for tracking mixins (Timo Tijhof)
- core: Add getHash to core (Trevor Parscal)
- core: Add OO.Registry and OO.Factory (Trevor Parscal)
- EventEmitter: Re-use #off in #connect and add context argument to #off (Trevor Parscal)
- docs: Add npm install and npm test to release process (Timo Tijhof)
- core: Optimise OO.compare when a and b are equal by reference (Timo Tijhof)
- core: Make "constructor" non-enumerable in OO.inheritClass (Timo Tijhof)
- docs: Refer to OOJS Team and other contributors (Timo Tijhof)
- core: Don't copy non-plain objects in OO.copy (Timo Tijhof)
- core: Implement OO.isPlainObject (Timo Tijhof)
- core: Optimise reference to hasOwnProperty (Timo Tijhof)
- core: Apply asymmetrical recursively in OO.compare (Timo Tijhof)
- core: Rename OO.compareObjects to OO.compare (Timo Tijhof)
- core: Remove obsolete OO.createObject (Timo Tijhof)
- docs: Document release process (Timo Tijhof)
- docs: Add categories and include builtin classes (Timo Tijhof)
- core: Remove Object.create polyfill (Timo Tijhof)
- Initial import of utility functions and EventEmitter class (Trevor Parscal)