[gjs] Created tag 1.65.90



The unsigned tag '1.65.90' was created.

Tagger: Philip Chimento <philip chimento gmail com>
Date: 1597203901 -0700

    Version 1.65.90
    
    - GJS now has an optional, Linux-only, dependency on libsysprof-capture-4
      instead of libsysprof-capture-3 for the profiler functionality.
    
    - New API: gjs_coverage_enable() allows the collection of code coverage metrics.
      If you are using GjsCoverage, it is now required to call gjs_coverage_enable()
      before you create the first GjsContext. Previously this was not necessary, but
      due to changes in SpiderMonkey 78 you must now indicate in advance if you want
      to collect code coverage metrics.
    
    - New JavaScript features! This version of GJS is based on SpiderMonkey 78, an
      upgrade from the previous ESR (Extended Support Release) of SpiderMonkey 68.
      Here are the highlights of the new JavaScript features.
      For more information, look them up on MDN or devdocs.io.
    
      * New language features
        + A new regular expression engine, supporting lookbehind and named capture
          groups, among other things
    
      * New syntax
        + The ?? operator ("nullish coalescing operator") is now supported
        + The ?. operator ("optional chaining operator") is now supported
        + Public static class fields are now supported
        + Separators in numeric literals are now supported: for example, 1_000_000
    
      * New APIs
        + String.replaceAll() for replacing all instances of a string inside another
          string
        + Promise.allSettled() for awaiting until all Promises in an array have
          either fulfilled or rejected
        + Intl.Locale
        + Intl.ListFormat
        + Intl.RelativeTimeFormat.formatToParts()
    
      * New behaviour
        + There are a lot of minor behaviour changes as SpiderMonkey's JS
          implementation conforms ever closer to existing ECMAScript standards and
          adopts new ones. For complete information, read the Firefox developer
          release notes:
          https://developer.mozilla.org/en-US/Firefox/Releases/69#JavaScript
          https://developer.mozilla.org/en-US/Firefox/Releases/70#JavaScript
          https://developer.mozilla.org/en-US/Firefox/Releases/71#JavaScript
          https://developer.mozilla.org/en-US/Firefox/Releases/72#JavaScript
          https://developer.mozilla.org/en-US/Firefox/Releases/73#JavaScript
          https://developer.mozilla.org/en-US/Firefox/Releases/74#JavaScript
          https://developer.mozilla.org/en-US/Firefox/Releases/75#JavaScript
          https://developer.mozilla.org/en-US/Firefox/Releases/76#JavaScript
          https://developer.mozilla.org/en-US/Firefox/Releases/77#JavaScript
          https://developer.mozilla.org/en-US/Firefox/Releases/78#JavaScript
    
      * Backwards-incompatible changes
        + The Object.toSource() method has been removed
        + The uneval() global function has been removed
        + A leading zero is now never allowed for BigInt literals, making 08n and
          09n invalid similar to the existing error when legacy octal numbers like
          07n are used
        + The Function.caller property now has the value of null if the caller is a
          strict, async, or generator function, instead of throwing a TypeError
    
    - Backwards-incompatible change: Paths specified on the command line with
      the --coverage-prefix argument, are now always interpreted as paths. If they
      are relative paths, they will be resolved relative to the current working
      directory. In previous versions, they would be treated as string prefixes,
      which led to unexpected behaviour when the path of the script was absolute
      and the coverage prefix relative, or vice versa.
    
    - Closed bugs and merge requests:
      * Port to libsysprof-capture-4.a [!457, Philip Withnall, Philip Chimento]
      * CI: Switch ASAN jobs to runners tagged so [!461, Bartłomiej Piotrowski]
      * Rework global code to support multiple global "types". (Part 1) [!453, Evan
        Welsh]
      * SpiderMonkey 78 [#329, !462, !458, Evan Welsh, Philip Chimento]
      * GIArgument inlines [!460, Marco Trevisan, Philip Chimento]
      * gjs stopped building on 32 bits [#335, !463, Marco Trevisan, Philip
        Chimento]
      * Improve performance of argument marshalling [#70, !48, Giovanni Campagna,
        Philip Chimento]
      * Build failure on 32-bit [#336, !465, Michael Catanzaro]
      * Various maintenance [!464, Philip Chimento]
      * arg-cache.cpp: Fix build on Visual Studio [!466, Chun-wei Fan]
      * [regression] Super+A crashes gnome-shell [#338, !467, Philip Chimento]
      * Generating coverage information seems to be broken [#322, !470, Philip
        Chimento]
    
    - Various refactors for type safety [Marco Trevisan]
    
    - Various maintenance [Philip Chimento]

Changes since the last tag '1.65.4':

Bartłomiej Piotrowski (1):
      CI: Switch ASAN jobs to runners tagged so

Chun-wei Fan (1):
      arg-cache.cpp: Fix build on Visual Studio

Evan Welsh (17):
      global: Refactor to support multiple global types.
      Fix iwyu errors.
      engine: Remove GJS_DISABLE_EXTRA_WARNINGS
      build: Switch to C++17
      object: Use JS::Heap<jsid> in the negative lookup cache
      js: Define Symbol.toStringTag names on all our custom classes
      engine: Use JS_SetGlobalJitCompilerOption to control the JIT
      build: Build with mozjs78
      js: Refactor Array-related JSAPI calls.
      js: Fix up declarations of mozilla::DefaultHasher
      jsapi-util-string: Remove JSFlatString
      engine: Update hook signatures.
      js: Remove JSREPORT_ERROR and JSREPORT_WARNING
      jsapi-util: Remove js::Jsvalify.
      js: Various API renames and adjustments
      console: Adapt to new JS::PrintError API.
      CI: Update CI images to mozjs78

Giovanni Campagna (5):
      function: introduce a new system for better caching of marshalling info
      arg-cache: make actual use of the argument cache
      arg-cache: be more fine-grained in the argument cache
      arg-cache: extend to handle interface types too
      function: use the argument cache for the instance parameter too

Marco Trevisan (Treviño) (25):
      arg: Ignore compiler warning on un-initialized value
      testIntrospection: Verify we warn also when trying to use MININT64
      arg: Update copyright statement
      arg: Use GIArgument's char pointer to store strings
      arg: Make possible to set any pointer type without casting
      arg: Add utility function to unset a GIArgument depending on type
      gi: Use specialized GIArgument wrapper to handle enum types
      function: Ensure ffi return pointer initialization is consistent
      js: Use gjs_arg_value to get, set and access GIArgument values
      gi: Add inline utilities header to do template-based pointer-to-int conversion
      function: Use pointer as fallback argument value as we do it when setting
      arg: Make GType argument value selection more explicit
      arg: Add function to handle big numbers warning on rounding
      arg: Add functions to get/set pointer values from/to integers
      arg: Use more template-based int-to-pointer conversions
      arg: Use default c++ type names to figure out the array size
      arg: Use g_clear_* facilities to uset the GIArgument values
      function: Use consistent types when setting ffi_arg from return value
      function: Use a template to safely assign GIArgument values to ffi_(s)arg
      wrapperutils: Only use templates to define InfoMethodsPolicy specializations
      object: Use template-based definitions for signal action functions
      utils-inl: Use constexpr checks for int-to-pointer conversions
      arg: Use if constexpr instead of std::enable_if when possible
      arg: Use if constexpr to return the argument member
      arg: Use if constexpr to simplify boolean specializations on set

Michael Catanzaro (1):
      Fix build on 32-bit architectures

Philip Chimento (59):
      build: Post-release version bump
      CI: Don't run iwyu jobs on schedules
      CI: Build sysprof from source in debug image
      CI: Build profiler only on debug CI images, and bump pinned image
      build: Add sysprof-capture-4 subproject
      Merge branch 'pwithnall/gjs-sysprof4'
      CI: Run coverage jobs on debug image as well
      build: Add sysprof subproject dir to gitignore
      CI: Check separate inline header files as well
      build: Fix includes according to latest IWYU config
      Merge branch 'barthalion/asan-runner' into 'master'
      Merge branch 'refactor-globals' into 'master'
      jsapi-dynamic-class: Don't predefine properties with RESOLVING flag
      Merge branch 'mozjs78prep' into 'master'
      arg: Add GIArgument setter overload for char32_t
      arg: Add GIArgument setter overload for function pointers
      arg: Rename GIArgument accessor templates to be shorter
      arg: GType should be stored in unsigned GIArgument storage
      Merge branch 'arg-inlines' into 'master'
      maint: Use concise C++17 type traits
      CI: Fix iwyu job to process inline-only header files
      build: Add missing header file
      arg: Explicitly enable pointer and non-pointer inlines
      Merge branch 'fix-32bit' into 'master'
      arg-cache: Improve struct packing and add sizeof guard
      arg-cache: Factor out code for handling null pointers
      arg-cache: Limit GI arguments to 253 and use 8-bit storage
      arg-cache: Save space in enum bounds
      arg-cache: Save space by not caching GType
      arg-cache: Store marshallers in predefined groups
      CI: Downgrade meson
      CI: Downgrade meson in debug image as well
      Merge branch 'wip/gcampax/70-arg-cache' into 'master'
      Merge branch 'mcatanzaro/#336' into 'master'
      union: Use cached gtype instead of g_registered_type_info_get_g_type()
      CI: Use GNOME/gjs as the base for IWYU comparison
      console: Reduce scope of HAVE_READLINE_READLINE_H
      maint: Use 'if constexpr' in templates where possible
      maint: Remove workaround for GLib warning
      CI: Add mozjs78 images
      maint: Use C++17 attributes
      Merge branch 'july-maintenance' into 'master'
      Merge branch 'master.msvc' into 'master'
      CI: Remove GJS_GLOBAL_SLOT_PROTOTYPE_* from IWYU overrides list
      CI: Update IWYU includes
      arg-cache: Associate callback closure with instance object
      coverage: Treat coverage prefix as absolute path
      Merge branch '338-fix-callback-crash' into 'master'
      Merge branch '322-treat-coverage-prefix-as-absolute-path' into 'master'
      js: Update header includes for SpiderMonkey 78
      debugger: Remove Debugger.enabled property
      global: Allow uneval() in debugger global
      tests: Fix specifics in tests to match SpiderMonkey 78 output
      wrapperutils: Be stricter about having a prototype with correct JSClass
      docs: Update documentation for SpiderMonkey 78
      valgrind: Update valgrind file for SpiderMonkey 78
      coverage: Enable coverage before creating GjsContext
      Merge branch 'mozjs78'
      release: Prepare for 1.65.90

Philip Withnall (2):
      profiler: Implement flush delay internally
      build: Bump sysprof dependency to libsysprof-capture-4.a


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