[gjs] Created tag 1.49.90



The unsigned tag '1.49.90' was created.

Tagger: Philip Chimento <philip endlessm com>
Date: Tue Aug 8 01:02:54 2017 +0200

    Version 1.49.90
    
    - New API: GObject.registerClass(), intended for use with ES6 classes. When
      defining a GObject class using ES6 syntax, you must call
      GObject.registerClass() on the class object, with an optional metadata
      object as the first argument. (The metadata object works exactly like the
      meta properties from Lang.Class, except that Name and Extends are not
      present.)
    
      Old:
    
          var MyClass = new Lang.Class({
              Name: 'MyClass',
              Extends: GObject.Object,
              Signals: { 'event': {} },
              _init(props={}) {
                  this._private = [];
                  this.parent(props);
              },
          });
    
      New:
    
          var MyClass = GObject.registerClass({
              Signals: { 'event': {} },
          }, class MyClass extends GObject.Object {
              _init(props={}) {
                  this._private = [];
                  super._init(props);
              }
          });
    
      It is forward compatible with the following syntax requiring decorators and
      class fields, which are not in the JS standard yet:
    
          @GObject.registerClass
          class MyClass extends GObject.Object {
              static [GObject.signals] = { 'event': {} }
              _init(props={}) {
                  this._private = [];
                  super._init(props);
              }
          }
    
      One limitation is that GObject ES6 classes can't have constructor()
      methods, they must do any setup in an _init() method. This may be able to be
      fixed in the future.
    
    - Closed bugs:
    
      * Misc 1.49 and mozjs52 enhancements [#785040, Philip Chimento]
      * Switch to native promises [#784713, Philip Chimento]
      * Can't call exports using top-level variable toString [#781623, Philip
        Chimento]
      * Properties no longer recognized when shadowed by a method [#785091, Philip
        Chimento, Rico Tzschichholz]
      * Patch: backport of changes required for use with mozjs-55 [#785424, Luke
        Jones]

Changes since the last tag '1.49.4':

Philip Chimento (21):
      build: Post-release version bump
      build: Use 'always inline' macro in more places
      js: Use correct autoptr in gjs_string_to_filename()
      function: Better message about call during GC
      promise: Move to native promises
      promise: Report unhandled rejections
      context: Properly create const strings array
      importer: Give module objects a [Symbol.toStringTag]
      object: Keep proper track of pending closure invalidations
      release: Include NEWS from 1.48.6
      object: Don't let a method shadow a property
      Revert "js: Workaround for function with custom prototype"
      Revert "build: Allow compiling without RTTI"
      lang: Move all legacy Lang.Class code
      class: Move to ES6 classes in internal code
      GObject: Move all legacy GObject class code
      GObject: Adapt GObject class framework to ES6
      class: Move to ES6 GObject classes in internal code
      tests: Add ES6 class inheriting from legacy class
      build: Fix distcheck
      release: Prepare for 1.49.90

luke nukem jones gmail com (2):
      Backport of patch required for JSObject compare to nullptr
      Backport of patch required for vectors MOZ_MUST_USE returns


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]