Hello community, here is the log from the commit of package kjs for openSUSE:Factory checked in at 2019-10-14 13:37:31 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kjs (Old) and /work/SRC/openSUSE:Factory/.kjs.new.2352 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kjs" Mon Oct 14 13:37:31 2019 rev:71 rq:738043 version:5.63.0 Changes: -------- --- /work/SRC/openSUSE:Factory/kjs/kjs.changes 2019-09-23 12:24:51.713733623 +0200 +++ /work/SRC/openSUSE:Factory/.kjs.new.2352/kjs.changes 2019-10-14 13:37:32.954015595 +0200 @@ -1,0 +2,11 @@ +Sun Oct 6 13:26:45 UTC 2019 - Christophe Giboudeaux <[email protected]> + +- Update to 5.63.0 + * New feature release + * For more details please see: + * https://www.kde.org/announcements/kde-frameworks-5.63.0.php +- Changes since 5.62.0: + * Added startsWith(), endsWith() and includes() JS String functions. + * Fixed Date.prototype.toJSON() called on non-Date objects. + +------------------------------------------------------------------- Old: ---- kjs-5.62.0.tar.xz kjs-5.62.0.tar.xz.sig New: ---- kjs-5.63.0.tar.xz kjs-5.63.0.tar.xz.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kjs.spec ++++++ --- /var/tmp/diff_new_pack.xFB3Gu/_old 2019-10-14 13:37:33.502014167 +0200 +++ /var/tmp/diff_new_pack.xFB3Gu/_new 2019-10-14 13:37:33.506014156 +0200 @@ -17,14 +17,14 @@ %define sonum 5 -%define _tar_path 5.62 +%define _tar_path 5.63 # Full KF5 version (e.g. 5.33.0) %{!?_kf5_version: %global _kf5_version %{version}} # Last major and minor KF5 version (e.g. 5.33) %{!?_kf5_bugfix_version: %define _kf5_bugfix_version %(echo %{_kf5_version} | awk -F. '{print $1"."$2}')} %bcond_without lang Name: kjs -Version: 5.62.0 +Version: 5.63.0 Release: 0 Summary: KDE Javascript engine License: LGPL-2.1-or-later @@ -43,8 +43,8 @@ BuildRequires: pcre-devel BuildRequires: perl BuildRequires: cmake(KF5DocTools) >= %{_kf5_bugfix_version} -BuildRequires: cmake(Qt5Core) >= 5.6.0 -BuildRequires: cmake(Qt5Test) >= 5.6.0 +BuildRequires: cmake(Qt5Core) >= 5.11.0 +BuildRequires: cmake(Qt5Test) >= 5.11.0 %description This library provides an ECMAScript compatible interpreter. The ECMA standard @@ -77,7 +77,7 @@ Requires: extra-cmake-modules Requires: libKF5JS%{sonum} = %{version} Requires: libKF5JSApi%{sonum} = %{version} -Requires: cmake(Qt5Core) >= 5.6.0 +Requires: cmake(Qt5Core) >= 5.11.0 %if %{with lang} Recommends: %{name}-devel-lang = %{version} %endif ++++++ kjs-5.62.0.tar.xz -> kjs-5.63.0.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kjs-5.62.0/CMakeLists.txt new/kjs-5.63.0/CMakeLists.txt --- old/kjs-5.62.0/CMakeLists.txt 2019-09-07 16:01:07.000000000 +0200 +++ new/kjs-5.63.0/CMakeLists.txt 2019-10-06 11:47:44.000000000 +0200 @@ -1,11 +1,11 @@ cmake_minimum_required(VERSION 3.5) -set(KF5_VERSION "5.62.0") # handled by release scripts +set(KF5_VERSION "5.63.0") # handled by release scripts project(KJS VERSION ${KF5_VERSION}) # ECM setup include(FeatureSummary) -find_package(ECM 5.62.0 NO_MODULE) +find_package(ECM 5.63.0 NO_MODULE) set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake Modules." URL "https://projects.kde.org/projects/kdesupport/extra-cmake-modules") feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND FATAL_ON_MISSING_REQUIRED_PACKAGES) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kjs-5.62.0/src/kjs/date_object.cpp new/kjs-5.63.0/src/kjs/date_object.cpp --- old/kjs-5.62.0/src/kjs/date_object.cpp 2019-09-07 16:01:07.000000000 +0200 +++ new/kjs-5.63.0/src/kjs/date_object.cpp 2019-10-06 11:47:44.000000000 +0200 @@ -642,7 +642,7 @@ JSValue *tv = thisObj->toPrimitive(exec, NumberType); if (tv->isNumber()) { double ms = tv->toNumber(exec); - if (isNaN(ms)) { + if (isNaNorInf(ms)) { return jsNull(); } } @@ -659,7 +659,9 @@ } if (!thisObj->inherits(&DateInstance::info)) { - return throwError(exec, TypeError); + if (id == ToString) + return jsString("Invalid Date"); + return throwError(exec, TypeError, "Incompatible object"); } DateInstance *thisDateObj = static_cast<DateInstance *>(thisObj); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kjs-5.62.0/src/kjs/string_object.cpp new/kjs-5.63.0/src/kjs/string_object.cpp --- old/kjs-5.62.0/src/kjs/string_object.cpp 2019-09-07 16:01:07.000000000 +0200 +++ new/kjs-5.63.0/src/kjs/string_object.cpp 2019-10-06 11:47:44.000000000 +0200 @@ -170,6 +170,8 @@ charAt StringProtoFunc::CharAt DontEnum|Function 1 charCodeAt StringProtoFunc::CharCodeAt DontEnum|Function 1 concat StringProtoFunc::Concat DontEnum|Function 1 + endsWith StringProtoFunc::EndsWith DontEnum|Function 1 + includes StringProtoFunc::Includes DontEnum|Function 1 indexOf StringProtoFunc::IndexOf DontEnum|Function 1 lastIndexOf StringProtoFunc::LastIndexOf DontEnum|Function 1 match StringProtoFunc::Match DontEnum|Function 1 @@ -177,6 +179,7 @@ search StringProtoFunc::Search DontEnum|Function 1 slice StringProtoFunc::Slice DontEnum|Function 2 split StringProtoFunc::Split DontEnum|Function 2 + startsWith StringProtoFunc::StartsWith DontEnum|Function 1 substr StringProtoFunc::Substr DontEnum|Function 2 substring StringProtoFunc::Substring DontEnum|Function 2 toLowerCase StringProtoFunc::ToLowerCase DontEnum|Function 0 @@ -556,6 +559,27 @@ result = jsString(s); break; } + case EndsWith: + if (a0->isObject() && static_cast<JSObject*>(a0)->inherits(&RegExpImp::info)) { + return throwError(exec, TypeError, "RegExp reserved for future"); + } + u2 = a0->toString(exec); + if (a1->isUndefined()) + i = s.size(); + else + i = minInt(s.size(), a1->toInteger(exec)); + pos = i - u2.size(); + result = jsBoolean(pos >= 0 && s.substr(pos, u2.size()) == u2); + break; + case Includes: + if (a0->isObject() && static_cast<JSObject*>(a0)->inherits(&RegExpImp::info)) { + return throwError(exec, TypeError, "RegExp reserved for future"); + } + u2 = a0->toString(exec); + pos = a1->toInteger(exec); + i = s.find(u2, pos); + result = jsBoolean(i >= 0); + break; case IndexOf: u2 = a0->toString(exec); if (a1->isUndefined()) { @@ -744,6 +768,14 @@ res->put(exec, exec->propertyNames().length, jsNumber(i)); } break; + case StartsWith: + if (a0->isObject() && static_cast<JSObject*>(a0)->inherits(&RegExpImp::info)) { + return throwError(exec, TypeError, "RegExp reserved for future"); + } + u2 = a0->toString(exec); + pos = maxInt(0, a1->toInteger(exec)); + result = jsBoolean(s.substr(pos, u2.size()) == u2); + break; case Substr: { //B.2.3 // Note: NaN is effectively handled as 0 here for both length // and start, hence toInteger does fine, and removes worries diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kjs-5.62.0/src/kjs/string_object.h new/kjs-5.63.0/src/kjs/string_object.h --- old/kjs-5.62.0/src/kjs/string_object.h 2019-09-07 16:01:07.000000000 +0200 +++ new/kjs-5.63.0/src/kjs/string_object.h 2019-10-06 11:47:44.000000000 +0200 @@ -109,6 +109,7 @@ Match, Replace, Search, Slice, Split, Substr, Substring, FromCharCode, ToLowerCase, ToUpperCase, ToLocaleLowerCase, ToLocaleUpperCase, Trim, LocaleCompare, + StartsWith, EndsWith, Includes, // ES6 (Draft 08.11.2013 Repeat #ifndef KJS_PURE_ECMA
