summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xconfigure19
-rwxr-xr-xconfigure.exebin1008128 -> 1221632 bytes
-rw-r--r--demos/multimedia/player/player.cpp12
-rw-r--r--demos/multimedia/player/player.h2
-rw-r--r--doc/src/qt4-intro.qdoc14
-rw-r--r--src/corelib/tools/qregexp.cpp11
-rw-r--r--src/corelib/tools/qstring.cpp82
-rw-r--r--src/gui/painting/qpaintengine_raster.cpp3
-rw-r--r--src/multimedia/base/qgraphicsvideoitem.cpp3
-rw-r--r--src/multimedia/base/qmediacontent.cpp14
-rw-r--r--src/multimedia/base/qmediacontent.h2
-rw-r--r--src/multimedia/base/qmediacontrol.cpp1
-rw-r--r--src/multimedia/base/qmediaobject.cpp1
-rw-r--r--src/multimedia/base/qmediaplaylist.cpp1
-rw-r--r--src/multimedia/base/qmediaplaylistcontrol.cpp1
-rw-r--r--src/multimedia/base/qmediaplaylistioplugin.cpp3
-rw-r--r--src/multimedia/base/qmediaplaylistnavigator.cpp1
-rw-r--r--src/multimedia/base/qmediaplaylistprovider.cpp1
-rw-r--r--src/multimedia/base/qmediaresource.cpp1
-rw-r--r--src/multimedia/base/qmediaservice.cpp1
-rw-r--r--src/multimedia/base/qmediaserviceprovider.cpp8
-rw-r--r--src/multimedia/base/qmediatimerange.cpp2
-rw-r--r--src/multimedia/base/qmetadatacontrol.cpp2
-rw-r--r--src/multimedia/base/qvideodevicecontrol.cpp1
-rw-r--r--src/multimedia/base/qvideooutputcontrol.cpp2
-rw-r--r--src/multimedia/base/qvideorenderercontrol.cpp2
-rw-r--r--src/multimedia/base/qvideowidget.cpp2
-rw-r--r--src/multimedia/base/qvideowidgetcontrol.cpp2
-rw-r--r--src/multimedia/base/qvideowindowcontrol.cpp1
-rw-r--r--src/multimedia/playback/qmediaplayer.cpp2
-rw-r--r--src/multimedia/playback/qmediaplayercontrol.cpp2
-rw-r--r--src/multimedia/qml/multimediaqml.cpp (renamed from src/multimedia/qml/qml.cpp)2
-rw-r--r--src/multimedia/qml/multimediaqml.h (renamed from src/multimedia/qml/qml.h)0
-rw-r--r--src/multimedia/qml/qmetadatacontrolmetaobject_p.h11
-rw-r--r--src/multimedia/qml/qml.pri4
-rw-r--r--src/multimedia/qml/qmlaudio_p.h11
-rw-r--r--src/multimedia/qml/qmlgraphicsvideo_p.h11
-rw-r--r--src/multimedia/qml/qmlmediabase_p.h10
-rw-r--r--src/multimedia/qml/wavedecoder_p.h11
-rw-r--r--src/plugins/bearer/generic/qgenericengine.cpp1
-rw-r--r--src/plugins/mediaservices/directshow/dsserviceplugin.cpp2
-rw-r--r--src/plugins/mediaservices/directshow/mediaplayer/directshowiosource.cpp4
-rw-r--r--src/plugins/mediaservices/gstreamer/mediaplayer/qgstreamermetadataprovider.cpp2
-rw-r--r--src/plugins/mediaservices/gstreamer/qgstreamermessage.cpp2
-rw-r--r--src/plugins/mediaservices/gstreamer/qgstreamerserviceplugin.cpp7
-rw-r--r--src/plugins/mediaservices/gstreamer/qgstreamervideoinputdevicecontrol.cpp4
-rw-r--r--src/plugins/mediaservices/gstreamer/qgstxvimagebuffer.cpp4
-rw-r--r--src/plugins/mediaservices/gstreamer/qvideosurfacegstsink.cpp3
-rw-r--r--src/plugins/mediaservices/mediaservices.pro24
-rw-r--r--src/plugins/mediaservices/qt7/mediaplayer/qt7playerservice.mm8
-rw-r--r--src/plugins/mediaservices/qt7/mediaplayer/qt7playersession.mm6
-rw-r--r--src/plugins/mediaservices/qt7/qt7movierenderer.mm25
-rw-r--r--src/plugins/mediaservices/qt7/qt7movievideowidget.mm4
-rw-r--r--src/plugins/mediaservices/qt7/qt7movieviewrenderer.mm11
-rw-r--r--src/plugins/qmlmodules/multimedia/multimedia.cpp2
-rw-r--r--src/script/api/qscriptengine_p.h2
-rw-r--r--tests/auto/headers/headers.pro2
-rw-r--r--tests/auto/headers/headersclean.cpp86
-rw-r--r--tests/auto/qchar/qchar.pro1
-rw-r--r--tests/auto/qchar/tst_qchar.cpp5
-rw-r--r--tests/auto/qdbuspendingcall/tst_qdbuspendingcall.cpp57
-rw-r--r--tests/auto/qmediacontent/qmediacontent.pro2
-rw-r--r--tests/auto/qmediacontent/tst_qmediacontent.cpp13
-rw-r--r--tests/auto/qregexp/tst_qregexp.cpp93
-rw-r--r--tests/auto/qscriptvalue/testgen/data.txt43
-rwxr-xr-xtests/auto/qscriptvalue/testgen/gen.py3
-rw-r--r--tests/auto/qscriptvalue/testgen/testgenerator.cpp8
-rw-r--r--tests/auto/qscriptvalue/tst_qscriptvalue.h12
-rw-r--r--tests/auto/qscriptvalue/tst_qscriptvalue_generated.cpp3725
-rw-r--r--tests/auto/qstring/tst_qstring.cpp107
-rw-r--r--tools/configure/configure.pro1
-rw-r--r--tools/configure/configureapp.cpp13
-rw-r--r--tools/qdoc3/cppcodeparser.cpp2
-rw-r--r--tools/qdoc3/generator.cpp26
-rw-r--r--tools/qdoc3/generator.h7
-rw-r--r--tools/qdoc3/htmlgenerator.cpp56
-rw-r--r--tools/qdoc3/htmlgenerator.h2
-rw-r--r--tools/qdoc3/node.cpp8
-rw-r--r--tools/qdoc3/node.h6
-rw-r--r--util/unicode/data/DerivedNormalizationProps.txt2650
80 files changed, 7129 insertions, 169 deletions
diff --git a/configure b/configure
index f8a2e95..0179a82 100755
--- a/configure
+++ b/configure
@@ -676,6 +676,7 @@ CFG_RELEASE_QMAKE=no
CFG_PHONON=auto
CFG_PHONON_BACKEND=yes
CFG_MULTIMEDIA=yes
+CFG_MEDIASERVICE=yes
CFG_AUDIO_BACKEND=yes
CFG_SVG=yes
CFG_DECLARATIVE=auto
@@ -923,7 +924,7 @@ while [ "$#" -gt 0 ]; do
VAL=no
;;
#Qt style yes options
- -incremental|-qvfb|-profile|-shared|-static|-sm|-xinerama|-xshape|-xsync|-xinput|-reduce-exports|-pch|-separate-debug-info|-stl|-freetype|-xcursor|-xfixes|-xrandr|-xrender|-mitshm|-fontconfig|-xkb|-nis|-qdbus|-dbus|-dbus-linked|-glib|-gstreamer|-gtkstyle|-cups|-iconv|-largefile|-h|-help|-v|-verbose|-debug|-release|-fast|-accessibility|-confirm-license|-gnumake|-framework|-qt3support|-debug-and-release|-exceptions|-cocoa|-carbon|-universal|-prefix-install|-silent|-armfpa|-optimized-qmake|-dwarf2|-reduce-relocations|-sse|-openssl|-openssl-linked|-ptmalloc|-xmlpatterns|-phonon|-phonon-backend|-multimedia|-audio-backend|-svg|-declarative|-webkit|-javascript-jit|-script|-scripttools|-rpath|-force-pkg-config)
+ -incremental|-qvfb|-profile|-shared|-static|-sm|-xinerama|-xshape|-xsync|-xinput|-reduce-exports|-pch|-separate-debug-info|-stl|-freetype|-xcursor|-xfixes|-xrandr|-xrender|-mitshm|-fontconfig|-xkb|-nis|-qdbus|-dbus|-dbus-linked|-glib|-gstreamer|-gtkstyle|-cups|-iconv|-largefile|-h|-help|-v|-verbose|-debug|-release|-fast|-accessibility|-confirm-license|-gnumake|-framework|-qt3support|-debug-and-release|-exceptions|-cocoa|-carbon|-universal|-prefix-install|-silent|-armfpa|-optimized-qmake|-dwarf2|-reduce-relocations|-sse|-openssl|-openssl-linked|-ptmalloc|-xmlpatterns|-phonon|-phonon-backend|-multimedia|-mediaservice|-audio-backend|-svg|-declarative|-webkit|-javascript-jit|-script|-scripttools|-rpath|-force-pkg-config)
VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
VAL=yes
;;
@@ -2101,6 +2102,13 @@ while [ "$#" -gt 0 ]; do
UNKNOWN_OPT=yes
fi
;;
+ mediaservice)
+ if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
+ CFG_MEDIASERVICE="$VAL"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
audio-backend)
if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
CFG_AUDIO_BACKEND="$VAL"
@@ -3303,7 +3311,8 @@ Usage: $relconf [-h] [-prefix <dir>] [-prefix-install] [-bindir <dir>] [-libdir
[-qtnamespace <namespace>] [-qtlibinfix <infix>] [-separate-debug-info] [-armfpa]
[-no-optimized-qmake] [-optimized-qmake] [-no-xmlpatterns] [-xmlpatterns]
[-no-multimedia] [-multimedia] [-no-phonon] [-phonon] [-no-phonon-backend] [-phonon-backend]
- [-no-audio-backend] [-audio-backend] [-no-openssl] [-openssl] [-openssl-linked]
+ [-no-mediaservice] [-mediaservice] [-no-audio-backend] [-audio-backend]
+ [-no-openssl] [-openssl] [-openssl-linked]
[-no-gtkstyle] [-gtkstyle] [-no-svg] [-svg] [-no-webkit] [-webkit] [-no-javascript-jit] [-javascript-jit]
[-no-script] [-script] [-no-scripttools] [-scripttools] [-no-declarative] [-declarative]
@@ -3441,6 +3450,9 @@ fi
-no-multimedia ..... Do not build the QtMultimedia module.
+ -multimedia ........ Build the QtMultimedia module.
+ -no-mediaservice.... Do not build platform mediaservice plugin.
+ + -mediaservice ...... Build the platform mediaservice plugin.
+
-no-audio-backend .. Do not build the platform audio backend into QtMultimedia.
+ -audio-backend ..... Build the platform audio backend into QtMultimedia if available.
@@ -6515,6 +6527,9 @@ if [ "$CFG_MULTIMEDIA" = "no" ]; then
QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MULTIMEDIA"
else
QT_CONFIG="$QT_CONFIG multimedia"
+ if [ "$CFG_MEDIASERVICE" = "yes" ]; then
+ QT_CONFIG="$QT_CONFIG mediaservice"
+ fi
fi
if [ "$CFG_AUDIO_BACKEND" = "yes" ]; then
diff --git a/configure.exe b/configure.exe
index 9974236..f937ea2 100755
--- a/configure.exe
+++ b/configure.exe
Binary files differ
diff --git a/demos/multimedia/player/player.cpp b/demos/multimedia/player/player.cpp
index 64b1f25..49d18cb 100644
--- a/demos/multimedia/player/player.cpp
+++ b/demos/multimedia/player/player.cpp
@@ -99,7 +99,7 @@ Player::Player(QWidget *parent)
connect(controls, SIGNAL(pause()), player, SLOT(pause()));
connect(controls, SIGNAL(stop()), player, SLOT(stop()));
connect(controls, SIGNAL(next()), playlist, SLOT(next()));
- connect(controls, SIGNAL(previous()), playlist, SLOT(previous()));
+ connect(controls, SIGNAL(previous()), this, SLOT(previousClicked()));
connect(controls, SIGNAL(changeVolume(int)), player, SLOT(setVolume(int)));
connect(controls, SIGNAL(changeMuting(bool)), player, SLOT(setMuted(bool)));
connect(controls, SIGNAL(changeRate(qreal)), player, SLOT(setPlaybackRate(qreal)));
@@ -200,6 +200,16 @@ void Player::metaDataChanged()
}
}
+void Player::previousClicked()
+{
+ // Go to previous track if we are within the first 5 seconds of playback
+ // Otherwise, seek to the beginning.
+ if(player->position() <= 5000)
+ playlist->previous();
+ else
+ player->setPosition(0);
+}
+
void Player::jump(const QModelIndex &index)
{
if (index.isValid()) {
diff --git a/demos/multimedia/player/player.h b/demos/multimedia/player/player.h
index 0ad609b..1de8b1a 100644
--- a/demos/multimedia/player/player.h
+++ b/demos/multimedia/player/player.h
@@ -77,6 +77,8 @@ private slots:
void positionChanged(qint64 progress);
void metaDataChanged();
+ void previousClicked();
+
void seek(int seconds);
void jump(const QModelIndex &index);
void playlistPositionChanged(int);
diff --git a/doc/src/qt4-intro.qdoc b/doc/src/qt4-intro.qdoc
index 91593d3..a18bc13 100644
--- a/doc/src/qt4-intro.qdoc
+++ b/doc/src/qt4-intro.qdoc
@@ -471,6 +471,20 @@
\tableofcontents
+ \section1 Declarative UI development with Qt Quick
+
+ \section1 Network Bearer Management
+
+ Bearer Management controls the connectivity state of the system.
+ The new Bearer Management API in the QtNetwork module allows the
+ application to identify whether the system is online and how many
+ interfaces there are, as well as start and stop interfaces, or
+ roam transparently between access points.
+
+ QNetworkAccessManager uses this API for HTTP level roaming.
+
+ \section1 Multimedia - playback and playlist management
+
\section1 New Classes, Functions, Macros, etc.
Links to new classes, functions, macros, and other items
diff --git a/src/corelib/tools/qregexp.cpp b/src/corelib/tools/qregexp.cpp
index 25255f9..20ad444 100644
--- a/src/corelib/tools/qregexp.cpp
+++ b/src/corelib/tools/qregexp.cpp
@@ -1466,9 +1466,14 @@ void QRegExpMatchState::match(const QChar *str0, int len0, int pos0,
#ifndef QT_NO_REGEXP_CAPTURE
for (int i = 0; i < numCaptures; ++i) {
int j = eng->captureForOfficialCapture.at(i);
- int len = capEnd[j] - capBegin[j];
- *c++ = (len > 0) ? pos + capBegin[j] : 0;
- *c++ = len;
+ if (capBegin[j] != EmptyCapture) {
+ int len = capEnd[j] - capBegin[j];
+ *c++ = (len > 0) ? pos + capBegin[j] : 0;
+ *c++ = len;
+ } else {
+ *c++ = -1;
+ *c++ = -1;
+ }
}
#endif
} else {
diff --git a/src/corelib/tools/qstring.cpp b/src/corelib/tools/qstring.cpp
index f8303bd..e9b7b9a 100644
--- a/src/corelib/tools/qstring.cpp
+++ b/src/corelib/tools/qstring.cpp
@@ -3480,12 +3480,82 @@ static QByteArray toLatin1_helper(const QChar *data, int length)
QByteArray ba;
if (length) {
ba.resize(length);
- const ushort *i = reinterpret_cast<const ushort *>(data);
- const ushort *e = i + length;
- uchar *s = (uchar*) ba.data();
- while (i != e) {
- *s++ = (*i>0xff) ? '?' : (uchar) *i;
- ++i;
+ const ushort *src = reinterpret_cast<const ushort *>(data);
+ uchar *dst = (uchar*) ba.data();
+#if defined(QT_ALWAYS_HAVE_SSE2)
+ if (length >= 16) {
+ const int chunkCount = length >> 4; // divided by 16
+ const __m128i questionMark = _mm_set1_epi16('?');
+ // SSE has no compare instruction for unsigned comparison.
+ // The variables must be shiffted + 0x8000 to be compared
+ const __m128i signedBitOffset = _mm_set1_epi16(0x8000);
+ const __m128i thresholdMask = _mm_set1_epi16(0xff + 0x8000);
+ for (int i = 0; i < chunkCount; ++i) {
+ __m128i chunk1 = _mm_loadu_si128((__m128i*)src); // load
+ src += 8;
+ {
+ // each 16 bit is equal to 0xFF if the source is outside latin 1 (>0xff)
+ const __m128i signedChunk = _mm_add_epi16(chunk1, signedBitOffset);
+ const __m128i offLimitMask = _mm_cmpgt_epi16(signedChunk, thresholdMask);
+
+ // offLimitQuestionMark contains '?' for each 16 bits that was off-limit
+ // the 16 bits that were correct contains zeros
+ const __m128i offLimitQuestionMark = _mm_and_si128(offLimitMask, questionMark);
+
+ // correctBytes contains the bytes that were in limit
+ // the 16 bits that were off limits contains zeros
+ const __m128i correctBytes = _mm_andnot_si128(offLimitMask, chunk1);
+
+ // merge offLimitQuestionMark and correctBytes to have the result
+ chunk1 = _mm_or_si128(correctBytes, offLimitQuestionMark);
+ }
+
+ __m128i chunk2 = _mm_loadu_si128((__m128i*)src); // load
+ src += 8;
+ {
+ // exactly the same operations as for the previous chunk of data
+ const __m128i signedChunk = _mm_add_epi16(chunk2, signedBitOffset);
+ const __m128i offLimitMask = _mm_cmpgt_epi16(signedChunk, thresholdMask);
+ const __m128i offLimitQuestionMark = _mm_and_si128(offLimitMask, questionMark);
+ const __m128i correctBytes = _mm_andnot_si128(offLimitMask, chunk2);
+ chunk2 = _mm_or_si128(correctBytes, offLimitQuestionMark);
+ }
+
+ // pack the two vector to 16 x 8bits elements
+ const __m128i result = _mm_packus_epi16(chunk1, chunk2);
+
+ _mm_storeu_si128((__m128i*)dst, result); // store
+ dst += 16;
+ }
+ length = length % 16;
+ }
+#elif QT_HAVE_NEON
+ // Refer to the documentation of the SSE2 implementation
+ // this use eactly the same method as for SSE except:
+ // 1) neon has unsigned comparison
+ // 2) packing is done to 64 bits (8 x 8bits component).
+ if (length >= 16) {
+ const int chunkCount = length >> 3; // divided by 8
+ const uint16x8_t questionMark = vdupq_n_u16('?'); // set
+ const uint16x8_t thresholdMask = vdupq_n_u16(0xff); // set
+ for (int i = 0; i < chunkCount; ++i) {
+ uint16x8_t chunk = vld1q_u16((uint16_t *)src); // load
+ src += 8;
+
+ const uint16x8_t offLimitMask = vcgtq_u16(chunk, thresholdMask); // chunk > thresholdMask
+ const uint16x8_t offLimitQuestionMark = vandq_u16(offLimitMask, questionMark); // offLimitMask & questionMark
+ const uint16x8_t correctBytes = vbicq_u16(chunk, offLimitMask); // !offLimitMask & chunk
+ chunk = vorrq_u16(correctBytes, offLimitQuestionMark); // correctBytes | offLimitQuestionMark
+ const uint8x8_t result = vmovn_u16(chunk); // narrowing move->packing
+ vst1_u8(dst, result); // store
+ dst += 8;
+ }
+ length = length % 8;
+ }
+#endif
+ while (length--) {
+ *dst++ = (*src>0xff) ? '?' : (uchar) *src;
+ ++src;
}
}
return ba;
diff --git a/src/gui/painting/qpaintengine_raster.cpp b/src/gui/painting/qpaintengine_raster.cpp
index 60265c5..a7c2a0b 100644
--- a/src/gui/painting/qpaintengine_raster.cpp
+++ b/src/gui/painting/qpaintengine_raster.cpp
@@ -3213,6 +3213,9 @@ QRasterPaintEnginePrivate::getPenFunc(const QRectF &rect,
return isUnclipped(rect, penWidth) ? data->unclipped_blend : data->blend;
}
+/*!
+ \reimp
+*/
void QRasterPaintEngine::drawStaticTextItem(QStaticTextItem *textItem)
{
ensurePen();
diff --git a/src/multimedia/base/qgraphicsvideoitem.cpp b/src/multimedia/base/qgraphicsvideoitem.cpp
index 21ba8c9..d5ca9e8 100644
--- a/src/multimedia/base/qgraphicsvideoitem.cpp
+++ b/src/multimedia/base/qgraphicsvideoitem.cpp
@@ -177,9 +177,10 @@ void QGraphicsVideoItemPrivate::_q_mediaObjectDestroyed()
/*!
\class QGraphicsVideoItem
-
\brief The QGraphicsVideoItem class provides a graphics item which display video produced by a QMediaObject.
+ \since 4.7
+
\ingroup multimedia
Attaching a QGraphicsVideoItem to a QMediaObject allows it to display
diff --git a/src/multimedia/base/qmediacontent.cpp b/src/multimedia/base/qmediacontent.cpp
index 3e32af0..6f158d2 100644
--- a/src/multimedia/base/qmediacontent.cpp
+++ b/src/multimedia/base/qmediacontent.cpp
@@ -76,6 +76,7 @@ private:
\class QMediaContent
\preliminary
\brief The QMediaContent class provides access to the resources relating to a media content.
+ \since 4.7
\ingroup multimedia
@@ -109,6 +110,19 @@ QMediaContent::QMediaContent(const QUrl &url):
}
/*!
+ Constructs a media content with \a request providing a reference to the content.
+
+ This constructor can be used to reference media content via network protocols such as HTTP.
+ This may include additional information required to obtain the resource, such as Cookies or HTTP headers.
+*/
+
+QMediaContent::QMediaContent(const QNetworkRequest &request):
+ d(new QMediaContentPrivate)
+{
+ d->resources << QMediaResource(request);
+}
+
+/*!
Constructs a media content with \a resource providing a reference to the content.
*/
diff --git a/src/multimedia/base/qmediacontent.h b/src/multimedia/base/qmediacontent.h
index 1ea4898..b6f3017 100644
--- a/src/multimedia/base/qmediacontent.h
+++ b/src/multimedia/base/qmediacontent.h
@@ -46,6 +46,7 @@
#include <QtCore/qshareddata.h>
#include <QtMultimedia/qmediaresource.h>
+#include <QtNetwork/qnetworkrequest.h>
QT_BEGIN_HEADER
@@ -60,6 +61,7 @@ class Q_MULTIMEDIA_EXPORT QMediaContent
public:
QMediaContent();
QMediaContent(const QUrl &contentUrl);
+ QMediaContent(const QNetworkRequest &contentRequest);
QMediaContent(const QMediaResource &contentResource);
QMediaContent(const QMediaResourceList &resources);
QMediaContent(const QMediaContent &other);
diff --git a/src/multimedia/base/qmediacontrol.cpp b/src/multimedia/base/qmediacontrol.cpp
index c8bbfd4..b84c49e 100644
--- a/src/multimedia/base/qmediacontrol.cpp
+++ b/src/multimedia/base/qmediacontrol.cpp
@@ -52,6 +52,7 @@ QT_BEGIN_NAMESPACE
/*!
\class QMediaControl
\ingroup multimedia-serv
+ \since 4.7
\preliminary
\brief The QMediaControl class provides a base interface for media service controls.
diff --git a/src/multimedia/base/qmediaobject.cpp b/src/multimedia/base/qmediaobject.cpp
index b2b8c1b..0422718 100644
--- a/src/multimedia/base/qmediaobject.cpp
+++ b/src/multimedia/base/qmediaobject.cpp
@@ -67,6 +67,7 @@ void QMediaObjectPrivate::_q_notify()
\class QMediaObject
\preliminary
\brief The QMediaObject class provides a common base for multimedia objects.
+ \since 4.7
\ingroup multimedia
diff --git a/src/multimedia/base/qmediaplaylist.cpp b/src/multimedia/base/qmediaplaylist.cpp
index ab91fd7..b3f3dd3 100644
--- a/src/multimedia/base/qmediaplaylist.cpp
+++ b/src/multimedia/base/qmediaplaylist.cpp
@@ -66,6 +66,7 @@ Q_GLOBAL_STATIC_WITH_ARGS(QMediaPluginLoader, playlistIOLoader,
/*!
\class QMediaPlaylist
\ingroup multimedia
+ \since 4.7
\preliminary
\brief The QMediaPlaylist class provides a list of media content to play.
diff --git a/src/multimedia/base/qmediaplaylistcontrol.cpp b/src/multimedia/base/qmediaplaylistcontrol.cpp
index 2ae03ad..ba3d224 100644
--- a/src/multimedia/base/qmediaplaylistcontrol.cpp
+++ b/src/multimedia/base/qmediaplaylistcontrol.cpp
@@ -49,6 +49,7 @@ QT_BEGIN_NAMESPACE
/*!
\class QMediaPlaylistControl
\ingroup multimedia-serv
+ \since 4.7
\preliminary
\brief The QMediaPlaylistControl class provides access to the playlist functionality of a
diff --git a/src/multimedia/base/qmediaplaylistioplugin.cpp b/src/multimedia/base/qmediaplaylistioplugin.cpp
index 5f11e38..48fd721 100644
--- a/src/multimedia/base/qmediaplaylistioplugin.cpp
+++ b/src/multimedia/base/qmediaplaylistioplugin.cpp
@@ -46,6 +46,7 @@ QT_BEGIN_NAMESPACE
/*!
\class QMediaPlaylistReader
\preliminary
+ \since 4.7
\brief The QMediaPlaylistReader class provides an interface for reading a playlist file.
\sa QMediaPlaylistIOPlugin
@@ -83,6 +84,7 @@ QMediaPlaylistReader::~QMediaPlaylistReader()
/*!
\class QMediaPlaylistWriter
\preliminary
+ \since 4.7
\brief The QMediaPlaylistWriter class provides an interface for writing a playlist file.
\sa QMediaPlaylistIOPlugin
@@ -111,6 +113,7 @@ QMediaPlaylistWriter::~QMediaPlaylistWriter()
/*!
\class QMediaPlaylistIOPlugin
+ \since 4.7
\brief The QMediaPlaylistIOPlugin class provides an interface for media playlist I/O plug-ins.
*/
diff --git a/src/multimedia/base/qmediaplaylistnavigator.cpp b/src/multimedia/base/qmediaplaylistnavigator.cpp
index 3c22ea4..0c52c71 100644
--- a/src/multimedia/base/qmediaplaylistnavigator.cpp
+++ b/src/multimedia/base/qmediaplaylistnavigator.cpp
@@ -193,6 +193,7 @@ int QMediaPlaylistNavigatorPrivate::previousItemPos(int steps) const
/*!
\class QMediaPlaylistNavigator
\preliminary
+ \since 4.7
\brief The QMediaPlaylistNavigator class provides navigation for a media playlist.
\sa QMediaPlaylist, QMediaPlaylistProvider
diff --git a/src/multimedia/base/qmediaplaylistprovider.cpp b/src/multimedia/base/qmediaplaylistprovider.cpp
index 65105dc..942f155 100644
--- a/src/multimedia/base/qmediaplaylistprovider.cpp
+++ b/src/multimedia/base/qmediaplaylistprovider.cpp
@@ -50,6 +50,7 @@ QT_BEGIN_NAMESPACE
/*!
\class QMediaPlaylistProvider
\preliminary
+ \since 4.7
\brief The QMediaPlaylistProvider class provides an abstract list of media.
\sa QMediaPlaylist
diff --git a/src/multimedia/base/qmediaresource.cpp b/src/multimedia/base/qmediaresource.cpp
index 515e432..646d9a7 100644
--- a/src/multimedia/base/qmediaresource.cpp
+++ b/src/multimedia/base/qmediaresource.cpp
@@ -51,6 +51,7 @@ QT_BEGIN_NAMESPACE
/*!
\class QMediaResource
\preliminary
+ \since 4.7
\brief The QMediaResource class provides a description of a media resource.
\ingroup multimedia
diff --git a/src/multimedia/base/qmediaservice.cpp b/src/multimedia/base/qmediaservice.cpp
index e40688e..d9e980b 100644
--- a/src/multimedia/base/qmediaservice.cpp
+++ b/src/multimedia/base/qmediaservice.cpp
@@ -57,6 +57,7 @@ QT_MODULE(Multimedia)
service implementations.
\ingroup multimedia-serv
\preliminary
+ \since 4.7
Media services provide implementations of the functionality promised
by media objects, and allow multiple providers to implement a QMediaObject.
diff --git a/src/multimedia/base/qmediaserviceprovider.cpp b/src/multimedia/base/qmediaserviceprovider.cpp
index 76377d9..eb6505c 100644
--- a/src/multimedia/base/qmediaserviceprovider.cpp
+++ b/src/multimedia/base/qmediaserviceprovider.cpp
@@ -82,6 +82,7 @@ public:
/*!
\class QMediaServiceProviderHint
\preliminary
+ \since 4.7
\brief The QMediaServiceProviderHint class describes what is required of a QMediaService.
\ingroup multimedia-serv
@@ -489,6 +490,7 @@ Q_GLOBAL_STATIC(QPluginServiceProvider, pluginProvider);
/*!
\class QMediaServiceProvider
\preliminary
+ \since 4.7
\brief The QMediaServiceProvider class provides an abstract allocator for media services.
*/
@@ -594,11 +596,10 @@ QMediaServiceProvider *QMediaServiceProvider::defaultServiceProvider()
#endif
}
-QT_END_NAMESPACE
-
/*!
\class QMediaServiceProviderPlugin
\preliminary
+ \since 4.7
\brief The QMediaServiceProviderPlugin class interface provides an interface for QMediaService
plug-ins.
@@ -632,6 +633,7 @@ QT_END_NAMESPACE
\class QMediaServiceSupportedFormatsInterface
\brief The QMediaServiceSupportedFormatsInterface class interface
identifies if a media service plug-in supports a media format.
+ \since 4.7
A QMediaServiceProviderPlugin may implement this interface.
*/
@@ -658,6 +660,7 @@ QT_END_NAMESPACE
\class QMediaServiceSupportedDevicesInterface
\brief The QMediaServiceSupportedDevicesInterface class interface
identifies the devices supported by a media service plug-in.
+ \since 4.7
A QMediaServiceProviderPlugin may implement this interface.
*/
@@ -684,6 +687,7 @@ QT_END_NAMESPACE
\class QMediaServiceFeaturesInterface
\brief The QMediaServiceFeaturesInterface class interface identifies
features supported by a media service plug-in.
+ \since 4.7
A QMediaServiceProviderPlugin may implement this interface.
*/
diff --git a/src/multimedia/base/qmediatimerange.cpp b/src/multimedia/base/qmediatimerange.cpp
index 0ca1948..e1cea7e 100644
--- a/src/multimedia/base/qmediatimerange.cpp
+++ b/src/multimedia/base/qmediatimerange.cpp
@@ -48,6 +48,7 @@ QT_BEGIN_NAMESPACE
\class QMediaTimeInterval
\brief The QMediaTimeInterval class represents a time interval with integer precision.
\ingroup multimedia
+ \since 4.7
An interval is specified by an inclusive start() and end() time.
These must be set in the constructor, as this is an immutable class.
@@ -308,6 +309,7 @@ void QMediaTimeRangePrivate::removeInterval(const QMediaTimeInterval &interval)
\brief The QMediaTimeRange class represents a set of zero or more disjoint
time intervals.
\ingroup multimedia
+ \since 4.7
\reentrant
diff --git a/src/multimedia/base/qmetadatacontrol.cpp b/src/multimedia/base/qmetadatacontrol.cpp
index 3ecbe8d..28a82ec 100644
--- a/src/multimedia/base/qmetadatacontrol.cpp
+++ b/src/multimedia/base/qmetadatacontrol.cpp
@@ -49,7 +49,7 @@ QT_BEGIN_NAMESPACE
/*!
\class QMetaDataControl
\ingroup multimedia-serv
-
+ \since 4.7
\preliminary
\brief The QMetaDataControl class provides access to the meta-data of a
QMediaService's media.
diff --git a/src/multimedia/base/qvideodevicecontrol.cpp b/src/multimedia/base/qvideodevicecontrol.cpp
index 21db500..c0fe9a8 100644
--- a/src/multimedia/base/qvideodevicecontrol.cpp
+++ b/src/multimedia/base/qvideodevicecontrol.cpp
@@ -49,6 +49,7 @@ QT_BEGIN_NAMESPACE
/*!
\class QVideoDeviceControl
\preliminary
+ \since 4.7
\brief The QVideoDeviceControl class provides an video device selector media control.
\ingroup multimedia-serv
diff --git a/src/multimedia/base/qvideooutputcontrol.cpp b/src/multimedia/base/qvideooutputcontrol.cpp
index a904385..58f1527 100644
--- a/src/multimedia/base/qvideooutputcontrol.cpp
+++ b/src/multimedia/base/qvideooutputcontrol.cpp
@@ -47,7 +47,7 @@ QT_BEGIN_NAMESPACE
/*!
\class QVideoOutputControl
\preliminary
-
+ \since 4.7
\brief The QVideoOutputControl class provides a means of selecting the
active video output control.
diff --git a/src/multimedia/base/qvideorenderercontrol.cpp b/src/multimedia/base/qvideorenderercontrol.cpp
index 4e7b3da..a34ef9b 100644
--- a/src/multimedia/base/qvideorenderercontrol.cpp
+++ b/src/multimedia/base/qvideorenderercontrol.cpp
@@ -49,7 +49,7 @@ QT_BEGIN_NAMESPACE
/*!
\class QVideoRendererControl
\preliminary
-
+ \since 4.7
\brief The QVideoRendererControl class provides a control for rendering
to a video surface.
diff --git a/src/multimedia/base/qvideowidget.cpp b/src/multimedia/base/qvideowidget.cpp
index 5df245e..aabfefc 100644
--- a/src/multimedia/base/qvideowidget.cpp
+++ b/src/multimedia/base/qvideowidget.cpp
@@ -488,7 +488,7 @@ void QVideoWidgetPrivate::_q_dimensionsChanged()
/*!
\class QVideoWidget
\preliminary
-
+ \since 4.7
\brief The QVideoWidget class provides a widget which presents video
produced by a media object.
\ingroup multimedia
diff --git a/src/multimedia/base/qvideowidgetcontrol.cpp b/src/multimedia/base/qvideowidgetcontrol.cpp
index bd7ce4e..c53c77b 100644
--- a/src/multimedia/base/qvideowidgetcontrol.cpp
+++ b/src/multimedia/base/qvideowidgetcontrol.cpp
@@ -48,7 +48,7 @@ QT_BEGIN_NAMESPACE
/*!
\class QVideoWidgetControl
\preliminary
-
+ \since 4.7
\brief The QVideoWidgetControl class provides a media control which
implements a video widget.
diff --git a/src/multimedia/base/qvideowindowcontrol.cpp b/src/multimedia/base/qvideowindowcontrol.cpp
index a23cb4b..da46823 100644
--- a/src/multimedia/base/qvideowindowcontrol.cpp
+++ b/src/multimedia/base/qvideowindowcontrol.cpp
@@ -47,6 +47,7 @@ QT_BEGIN_NAMESPACE
/*!
\class QVideoWindowControl
\preliminary
+ \since 4.7
\ingroup multimedia-serv
\brief The QVideoWindowControl class provides a media control for rendering video to a window.
diff --git a/src/multimedia/playback/qmediaplayer.cpp b/src/multimedia/playback/qmediaplayer.cpp
index ca34993..27bff02 100644
--- a/src/multimedia/playback/qmediaplayer.cpp
+++ b/src/multimedia/playback/qmediaplayer.cpp
@@ -66,7 +66,7 @@ QT_MODULE(Multimedia)
\class QMediaPlayer
\brief The QMediaPlayer class allows the playing of a media source.
\ingroup multimedia
-
+ \since 4.7
\preliminary
The QMediaPlayer class is a high level media playback class. It can be used
diff --git a/src/multimedia/playback/qmediaplayercontrol.cpp b/src/multimedia/playback/qmediaplayercontrol.cpp
index 95ffade..2129098 100644
--- a/src/multimedia/playback/qmediaplayercontrol.cpp
+++ b/src/multimedia/playback/qmediaplayercontrol.cpp
@@ -50,7 +50,7 @@ QT_BEGIN_NAMESPACE
/*!
\class QMediaPlayerControl
\ingroup multimedia-serv
-
+ \since 4.7
\preliminary
\brief The QMediaPlayerControl class provides access to the media playing
functionality of a QMediaService.
diff --git a/src/multimedia/qml/qml.cpp b/src/multimedia/qml/multimediaqml.cpp
index b9ee212..be49915 100644
--- a/src/multimedia/qml/qml.cpp
+++ b/src/multimedia/qml/multimediaqml.cpp
@@ -39,7 +39,7 @@
**
****************************************************************************/
-#include <QtMultimedia/qml.h>
+#include <QtMultimedia/multimediaqml.h>
#include <QtMultimedia/private/qsoundeffect_p.h>
#include <QtMultimedia/private/qmlaudio_p.h>
#include <QtMultimedia/private/qmlgraphicsvideo_p.h>
diff --git a/src/multimedia/qml/qml.h b/src/multimedia/qml/multimediaqml.h
index 41274c8..41274c8 100644
--- a/src/multimedia/qml/qml.h
+++ b/src/multimedia/qml/multimediaqml.h
diff --git a/src/multimedia/qml/qmetadatacontrolmetaobject_p.h b/src/multimedia/qml/qmetadatacontrolmetaobject_p.h
index c0fd4e8..ec4df05 100644
--- a/src/multimedia/qml/qmetadatacontrolmetaobject_p.h
+++ b/src/multimedia/qml/qmetadatacontrolmetaobject_p.h
@@ -42,6 +42,17 @@
#ifndef QMETADATACONTROLMETAOBJECT_P_H
#define QMETADATACONTROLMETAOJBECT_P_H
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists for the convenience
+// of other Qt classes. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
+
#include <QtCore/qmetaobject.h>
#include <QtMultimedia/qtmedianamespace.h>
diff --git a/src/multimedia/qml/qml.pri b/src/multimedia/qml/qml.pri
index e506632..a7ca02e 100644
--- a/src/multimedia/qml/qml.pri
+++ b/src/multimedia/qml/qml.pri
@@ -17,7 +17,7 @@ contains(QT_CONFIG, declarative) {
}
HEADERS += \
- $$PWD/qml.h \
+ $$PWD/multimediaqml.h \
$$PWD/qmetadatacontrolmetaobject_p.h \
$$PWD/qmlaudio_p.h \
$$PWD/qmlgraphicsvideo_p.h \
@@ -26,7 +26,7 @@ contains(QT_CONFIG, declarative) {
$$PWD/wavedecoder_p.h
SOURCES += \
- $$PWD/qml.cpp \
+ $$PWD/multimediaqml.cpp \
$$PWD/qmetadatacontrolmetaobject.cpp \
$$PWD/qmlaudio.cpp \
$$PWD/qmlgraphicsvideo.cpp \
diff --git a/src/multimedia/qml/qmlaudio_p.h b/src/multimedia/qml/qmlaudio_p.h
index f034518..bb0d301 100644
--- a/src/multimedia/qml/qmlaudio_p.h
+++ b/src/multimedia/qml/qmlaudio_p.h
@@ -42,6 +42,17 @@
#ifndef QMLAUDIO_P_H
#define QMLAUDIO_P_H
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists for the convenience
+// of other Qt classes. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
+
#include <QtMultimedia/private/qmlmediabase_p.h>
#include <QtCore/qbasictimer.h>
diff --git a/src/multimedia/qml/qmlgraphicsvideo_p.h b/src/multimedia/qml/qmlgraphicsvideo_p.h
index a4f8e32..26252e0 100644
--- a/src/multimedia/qml/qmlgraphicsvideo_p.h
+++ b/src/multimedia/qml/qmlgraphicsvideo_p.h
@@ -42,6 +42,17 @@
#ifndef QMLGRAPHICSVIDEO_H
#define QMLGRAPHICSVIDEO_H
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists for the convenience
+// of other Qt classes. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
+
#include <QtMultimedia/private/qmlmediabase_p.h>
#include <QtMultimedia/qgraphicsvideoitem.h>
diff --git a/src/multimedia/qml/qmlmediabase_p.h b/src/multimedia/qml/qmlmediabase_p.h
index 948a0e8..d6ad9b3 100644
--- a/src/multimedia/qml/qmlmediabase_p.h
+++ b/src/multimedia/qml/qmlmediabase_p.h
@@ -42,6 +42,16 @@
#ifndef QMLMEDIABASE_P_H
#define QMLMEDIABASE_P_H
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists for the convenience
+// of other Qt classes. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
#include <QtCore/qbasictimer.h>
#include <QtMultimedia/qmediaplayer.h>
diff --git a/src/multimedia/qml/wavedecoder_p.h b/src/multimedia/qml/wavedecoder_p.h
index 3bcd90d..00aa14e 100644
--- a/src/multimedia/qml/wavedecoder_p.h
+++ b/src/multimedia/qml/wavedecoder_p.h
@@ -42,6 +42,17 @@
#ifndef WAVEDECODER_H
#define WAVEDECODER_H
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists for the convenience
+// of other Qt classes. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
+
#include <QtCore/qiodevice.h>
#include <QtMultimedia/qaudioformat.h>
diff --git a/src/plugins/bearer/generic/qgenericengine.cpp b/src/plugins/bearer/generic/qgenericengine.cpp
index a95b14b..e96b80c 100644
--- a/src/plugins/bearer/generic/qgenericengine.cpp
+++ b/src/plugins/bearer/generic/qgenericengine.cpp
@@ -60,6 +60,7 @@
#include <sys/ioctl.h>
#include <net/if.h>
#include <net/if_arp.h>
+#include <unistd.h>
#endif
diff --git a/src/plugins/mediaservices/directshow/dsserviceplugin.cpp b/src/plugins/mediaservices/directshow/dsserviceplugin.cpp
index f3ab889..c482fd5 100644
--- a/src/plugins/mediaservices/directshow/dsserviceplugin.cpp
+++ b/src/plugins/mediaservices/directshow/dsserviceplugin.cpp
@@ -94,7 +94,7 @@ QMediaService* DSServicePlugin::create(QString const& key)
return new DirectShowPlayerService;
#endif
- qDebug() << "unsupported key:" << key;
+ qWarning() << "DirectShow service plugin: unsupported service -" << key;
return 0;
}
diff --git a/src/plugins/mediaservices/directshow/mediaplayer/directshowiosource.cpp b/src/plugins/mediaservices/directshow/mediaplayer/directshowiosource.cpp
index c2fb0d4..1dca465 100644
--- a/src/plugins/mediaservices/directshow/mediaplayer/directshowiosource.cpp
+++ b/src/plugins/mediaservices/directshow/mediaplayer/directshowiosource.cpp
@@ -624,11 +624,7 @@ bool DirectShowRcSource::open(const QUrl &url)
m_file.setFileName(QLatin1Char(':') + url.path());
- qDebug("qrc file %s", qPrintable(m_file.fileName()));
-
if (m_file.open(QIODevice::ReadOnly)) {
- qDebug("Size %d", m_file.size());
- qDebug("Sequential %d", int(m_file.isSequential()));
setDevice(&m_file);
diff --git a/src/plugins/mediaservices/gstreamer/mediaplayer/qgstreamermetadataprovider.cpp b/src/plugins/mediaservices/gstreamer/mediaplayer/qgstreamermetadataprovider.cpp
index 49eeb23..4d0ffe4 100644
--- a/src/plugins/mediaservices/gstreamer/mediaplayer/qgstreamermetadataprovider.cpp
+++ b/src/plugins/mediaservices/gstreamer/mediaplayer/qgstreamermetadataprovider.cpp
@@ -41,7 +41,7 @@
#include "qgstreamermetadataprovider.h"
#include "qgstreamerplayersession.h"
-#include <QDebug>
+#include <QtCore/qdebug.h>
#include <gst/gstversion.h>
diff --git a/src/plugins/mediaservices/gstreamer/qgstreamermessage.cpp b/src/plugins/mediaservices/gstreamer/qgstreamermessage.cpp
index 0a689d9..13a2454 100644
--- a/src/plugins/mediaservices/gstreamer/qgstreamermessage.cpp
+++ b/src/plugins/mediaservices/gstreamer/qgstreamermessage.cpp
@@ -48,7 +48,7 @@ static int wuchi = qRegisterMetaType<QGstreamerMessage>();
/*!
- \class QGstreamerMessage
+ \class gstreamer::QGstreamerMessage
\internal
*/
diff --git a/src/plugins/mediaservices/gstreamer/qgstreamerserviceplugin.cpp b/src/plugins/mediaservices/gstreamer/qgstreamerserviceplugin.cpp
index 9e5f425..589d2b5 100644
--- a/src/plugins/mediaservices/gstreamer/qgstreamerserviceplugin.cpp
+++ b/src/plugins/mediaservices/gstreamer/qgstreamerserviceplugin.cpp
@@ -43,7 +43,6 @@
#include <QtCore/qdebug.h>
#include <QtGui/QIcon>
#include <QtCore/QDir>
-#include <QtCore/QDebug>
#include "qgstreamerserviceplugin.h"
@@ -99,7 +98,7 @@ QMediaService* QGstreamerServicePlugin::create(const QString &key)
return new QGstreamerCaptureService(key);
#endif
- qDebug() << "unsupported key:" << key;
+ qWarning() << "GStreamer service plugin: unsupported service -" << key;
return 0;
}
@@ -145,7 +144,7 @@ void QGstreamerServicePlugin::updateDevices() const
QFileInfoList entries = devDir.entryInfoList(QStringList() << "video*");
foreach( const QFileInfo &entryInfo, entries ) {
- qDebug() << "Try" << entryInfo.filePath();
+// qDebug() << "Try" << entryInfo.filePath();
int fd = ::open(entryInfo.filePath().toLatin1().constData(), O_RDWR );
if (fd == -1)
@@ -172,7 +171,7 @@ void QGstreamerServicePlugin::updateDevices() const
name = entryInfo.fileName();
else
name = QString((const char*)vcap.card);
- qDebug() << "found camera: " << name;
+// qDebug() << "found camera: " << name;
m_cameraDevices.append(entryInfo.filePath().toLocal8Bit());
m_cameraDescriptions.append(name);
diff --git a/src/plugins/mediaservices/gstreamer/qgstreamervideoinputdevicecontrol.cpp b/src/plugins/mediaservices/gstreamer/qgstreamervideoinputdevicecontrol.cpp
index ac9a1e3..94ae847 100644
--- a/src/plugins/mediaservices/gstreamer/qgstreamervideoinputdevicecontrol.cpp
+++ b/src/plugins/mediaservices/gstreamer/qgstreamervideoinputdevicecontrol.cpp
@@ -120,7 +120,7 @@ void QGstreamerVideoInputDeviceControl::update()
QFileInfoList entries = devDir.entryInfoList(QStringList() << "video*");
foreach( const QFileInfo &entryInfo, entries ) {
- qDebug() << "Try" << entryInfo.filePath();
+// qDebug() << "Try" << entryInfo.filePath();
int fd = ::open(entryInfo.filePath().toLatin1().constData(), O_RDWR );
if (fd == -1)
@@ -147,7 +147,7 @@ void QGstreamerVideoInputDeviceControl::update()
name = entryInfo.fileName();
else
name = QString((const char*)vcap.card);
- qDebug() << "found camera: " << name;
+// qDebug() << "found camera: " << name;
m_names.append(entryInfo.filePath());
m_descriptions.append(name);
diff --git a/src/plugins/mediaservices/gstreamer/qgstxvimagebuffer.cpp b/src/plugins/mediaservices/gstreamer/qgstxvimagebuffer.cpp
index 0e47c98..5b99817 100644
--- a/src/plugins/mediaservices/gstreamer/qgstxvimagebuffer.cpp
+++ b/src/plugins/mediaservices/gstreamer/qgstxvimagebuffer.cpp
@@ -182,7 +182,7 @@ void QGstXvImageBufferPool::queuedAlloc()
);
if (!xvBuffer->xvImage) {
- qDebug() << "QGstXvImageBufferPool: XvShmCreateImage failed";
+// qDebug() << "QGstXvImageBufferPool: XvShmCreateImage failed";
m_allocWaitCondition.wakeOne();
return;
}
@@ -192,7 +192,7 @@ void QGstXvImageBufferPool::queuedAlloc()
xvBuffer->shmInfo.readOnly = False;
if (!XShmAttach(QX11Info::display(), &xvBuffer->shmInfo)) {
- qDebug() << "QGstXvImageBufferPool: XShmAttach failed";
+// qDebug() << "QGstXvImageBufferPool: XShmAttach failed";
m_allocWaitCondition.wakeOne();
return;
}
diff --git a/src/plugins/mediaservices/gstreamer/qvideosurfacegstsink.cpp b/src/plugins/mediaservices/gstreamer/qvideosurfacegstsink.cpp
index 9e3807b..402a225 100644
--- a/src/plugins/mediaservices/gstreamer/qvideosurfacegstsink.cpp
+++ b/src/plugins/mediaservices/gstreamer/qvideosurfacegstsink.cpp
@@ -41,9 +41,8 @@
#include <QtMultimedia/QAbstractVideoSurface>
#include <QtMultimedia/QVideoFrame>
-#include <QDebug>
+#include <QtCore/qdebug.h>
#include <QMap>
-#include <QDebug>
#include <QThread>
#include <QtGui/qx11info_x11.h>
diff --git a/src/plugins/mediaservices/mediaservices.pro b/src/plugins/mediaservices/mediaservices.pro
index 55e6aba..0cef605 100644
--- a/src/plugins/mediaservices/mediaservices.pro
+++ b/src/plugins/mediaservices/mediaservices.pro
@@ -1,18 +1,20 @@
TEMPLATE = subdirs
-win32:!wince: SUBDIRS += directshow
+contains(QT_CONFIG, mediaservice) {
+ win32:!wince: SUBDIRS += directshow
-mac: SUBDIRS += qt7
+ mac: SUBDIRS += qt7
-unix:!mac:!symbian {
- TMP_GST_LIBS = \
- gstreamer-0.10 >= 0.10.19 \
- gstreamer-base-0.10 >= 0.10.19 \
- gstreamer-interfaces-0.10 >= 0.10.19 \
- gstreamer-audio-0.10 >= 0.10.19 \
- gstreamer-video-0.10 >= 0.10.19
+ unix:!mac:!symbian {
+ TMP_GST_LIBS = \
+ gstreamer-0.10 >= 0.10.19 \
+ gstreamer-base-0.10 >= 0.10.19 \
+ gstreamer-interfaces-0.10 >= 0.10.19 \
+ gstreamer-audio-0.10 >= 0.10.19 \
+ gstreamer-video-0.10 >= 0.10.19
- system(pkg-config --exists \'$${TMP_GST_LIBS}\' --print-errors): {
- SUBDIRS += gstreamer
+ system(pkg-config --exists \'$${TMP_GST_LIBS}\' --print-errors): {
+ SUBDIRS += gstreamer
+ }
}
}
diff --git a/src/plugins/mediaservices/qt7/mediaplayer/qt7playerservice.mm b/src/plugins/mediaservices/qt7/mediaplayer/qt7playerservice.mm
index df15fa8..faf75d1 100644
--- a/src/plugins/mediaservices/qt7/mediaplayer/qt7playerservice.mm
+++ b/src/plugins/mediaservices/qt7/mediaplayer/qt7playerservice.mm
@@ -79,7 +79,7 @@ QT7PlayerService::QT7PlayerService(QObject *parent):
#if defined(QT_MAC_USE_COCOA)
m_videoWidnowControl = new QT7MovieViewOutput(this);
m_videoOutputControl->enableOutput(QVideoOutputControl::WindowOutput);
- qDebug() << "Using cocoa";
+// qDebug() << "Using cocoa";
#endif
#ifdef QUICKTIME_C_API_AVAILABLE
@@ -88,11 +88,11 @@ QT7PlayerService::QT7PlayerService(QObject *parent):
m_videoWidgetControl = new QT7MovieVideoWidget(this);
m_videoOutputControl->enableOutput(QVideoOutputControl::WidgetOutput);
- qDebug() << "QuickTime C API is available";
+// qDebug() << "QuickTime C API is available";
#else
m_videoRendererControl = new QT7MovieViewRenderer(this);
m_videoOutputControl->enableOutput(QVideoOutputControl::RendererOutput);
- qDebug() << "QuickTime C API is not available";
+// qDebug() << "QuickTime C API is not available";
#endif
@@ -129,7 +129,7 @@ QMediaControl *QT7PlayerService::control(const char *name) const
void QT7PlayerService::updateVideoOutput()
{
- qDebug() << "QT7PlayerService::updateVideoOutput" << m_videoOutputControl->output();
+// qDebug() << "QT7PlayerService::updateVideoOutput" << m_videoOutputControl->output();
switch (m_videoOutputControl->output()) {
case QVideoOutputControl::WindowOutput:
diff --git a/src/plugins/mediaservices/qt7/mediaplayer/qt7playersession.mm b/src/plugins/mediaservices/qt7/mediaplayer/qt7playersession.mm
index d516a99..3f198b9 100644
--- a/src/plugins/mediaservices/qt7/mediaplayer/qt7playersession.mm
+++ b/src/plugins/mediaservices/qt7/mediaplayer/qt7playersession.mm
@@ -372,7 +372,7 @@ void QT7PlayerSession::setMedia(const QMediaContent &content, QIODevice *stream)
else
return;
- qDebug() << "Open media" << url;
+// qDebug() << "Open media" << url;
NSError *err = 0;
NSString *urlString = (NSString *)qString2CFStringRef(url.toString());
@@ -436,7 +436,7 @@ void QT7PlayerSession::processStateChange()
{
signed long state = [[(QTMovie*)m_QTMovie attributeForKey:QTMovieLoadStateAttribute]
longValue];
- qDebug() << "Moview load state changed:" << state;
+// qDebug() << "Moview load state changed:" << state;
#ifndef QUICKTIME_C_API_AVAILABLE
enum {
@@ -505,7 +505,7 @@ void QT7PlayerSession::processNaturalSizeChange()
{
if (m_videoOutput) {
NSSize size = [[(QTMovie*)m_QTMovie attributeForKey:@"QTMovieNaturalSizeAttribute"] sizeValue];
- qDebug() << "Native size changed:" << QSize(size.width, size.height);
+// qDebug() << "Native size changed:" << QSize(size.width, size.height);
m_videoOutput->updateNaturalSize(QSize(size.width, size.height));
}
}
diff --git a/src/plugins/mediaservices/qt7/qt7movierenderer.mm b/src/plugins/mediaservices/qt7/qt7movierenderer.mm
index 587f3b9..6b9fd21 100644
--- a/src/plugins/mediaservices/qt7/qt7movierenderer.mm
+++ b/src/plugins/mediaservices/qt7/qt7movierenderer.mm
@@ -169,7 +169,7 @@ QT7MovieRenderer::QT7MovieRenderer(QObject *parent)
#endif
m_surface(0)
{
- qDebug() << "QT7MovieRenderer";
+// qDebug() << "QT7MovieRenderer";
m_displayLink = new QCvDisplayLink(this);
connect(m_displayLink, SIGNAL(tick(CVTimeStamp)), SLOT(updateVideoFrame(CVTimeStamp)));
@@ -262,7 +262,7 @@ void QT7MovieRenderer::setupVideoOutput()
{
AutoReleasePool pool;
- qDebug() << "QT7MovieRenderer::setupVideoOutput" << m_movie;
+// qDebug() << "QT7MovieRenderer::setupVideoOutput" << m_movie;
if (m_movie == 0 || m_surface == 0) {
m_displayLink->stop();
@@ -286,9 +286,9 @@ void QT7MovieRenderer::setupVideoOutput()
if (m_surface->isActive())
m_surface->stop();
- qDebug() << "Starting the surface with format" << format;
+// qDebug() << "Starting the surface with format" << format;
if (!m_surface->start(format)) {
- qDebug() << "failed to start video surface" << m_surface->error();
+// qDebug() << "failed to start video surface" << m_surface->error();
glSupported = false;
} else {
m_usingGLContext = true;
@@ -301,14 +301,15 @@ void QT7MovieRenderer::setupVideoOutput()
QVideoSurfaceFormat format(m_nativeSize, QVideoFrame::Format_RGB32);
if (m_surface->isActive() && m_surface->surfaceFormat() != format) {
- qDebug() << "Surface format was changed, stop the surface.";
+// qDebug() << "Surface format was changed, stop the surface.";
m_surface->stop();
}
if (!m_surface->isActive()) {
- qDebug() << "Starting the surface with format" << format;
- if (!m_surface->start(format))
- qDebug() << "failed to start video surface" << m_surface->error();
+// qDebug() << "Starting the surface with format" << format;
+ m_surface->start(format);
+// if (!m_surface->start(format))
+// qDebug() << "failed to start video surface" << m_surface->error();
}
}
}
@@ -328,14 +329,14 @@ void QT7MovieRenderer::setupVideoOutput()
if (!m_nativeSize.isEmpty()) {
if (!m_visualContext) {
if (m_usingGLContext) {
- qDebug() << "Building OpenGL visual context" << m_nativeSize;
+// qDebug() << "Building OpenGL visual context" << m_nativeSize;
m_currentGLContext = QGLContext::currentContext();
if (!createGLVisualContext()) {
qWarning() << "QT7MovieRenderer: failed to create visual context";
return;
}
} else {
- qDebug() << "Building Pixel Buffer visual context" << m_nativeSize;
+// qDebug() << "Building Pixel Buffer visual context" << m_nativeSize;
if (!createPixelBufferVisualContext()) {
qWarning() << "QT7MovieRenderer: failed to create visual context";
return;
@@ -358,7 +359,7 @@ void QT7MovieRenderer::setEnabled(bool)
void QT7MovieRenderer::setMovie(void *movie)
{
- qDebug() << "QT7MovieRenderer::setMovie" << movie;
+// qDebug() << "QT7MovieRenderer::setMovie" << movie;
#ifdef QUICKTIME_C_API_AVAILABLE
QMutexLocker locker(&m_mutex);
@@ -393,7 +394,7 @@ QAbstractVideoSurface *QT7MovieRenderer::surface() const
void QT7MovieRenderer::setSurface(QAbstractVideoSurface *surface)
{
- qDebug() << "Set video surface" << surface;
+// qDebug() << "Set video surface" << surface;
if (surface == m_surface)
return;
diff --git a/src/plugins/mediaservices/qt7/qt7movievideowidget.mm b/src/plugins/mediaservices/qt7/qt7movievideowidget.mm
index 6e74fcd..4043330 100644
--- a/src/plugins/mediaservices/qt7/qt7movievideowidget.mm
+++ b/src/plugins/mediaservices/qt7/qt7movievideowidget.mm
@@ -184,7 +184,7 @@ QT7MovieVideoWidget::QT7MovieVideoWidget(QObject *parent)
m_hue(0),
m_saturation(0)
{
- qDebug() << "QT7MovieVideoWidget";
+// qDebug() << "QT7MovieVideoWidget";
QGLFormat format = QGLFormat::defaultFormat();
format.setSwapInterval(1); // Vertical sync (avoid tearing)
@@ -249,7 +249,7 @@ void QT7MovieVideoWidget::setupVideoOutput()
{
AutoReleasePool pool;
- qDebug() << "QT7MovieVideoWidget::setupVideoOutput" << m_movie;
+// qDebug() << "QT7MovieVideoWidget::setupVideoOutput" << m_movie;
if (m_movie == 0) {
m_displayLink->stop();
diff --git a/src/plugins/mediaservices/qt7/qt7movieviewrenderer.mm b/src/plugins/mediaservices/qt7/qt7movieviewrenderer.mm
index 7271f5b..5047853 100644
--- a/src/plugins/mediaservices/qt7/qt7movieviewrenderer.mm
+++ b/src/plugins/mediaservices/qt7/qt7movieviewrenderer.mm
@@ -247,7 +247,7 @@ void QT7MovieViewRenderer::setupVideoOutput()
{
AutoReleasePool pool;
- qDebug() << "QT7MovieViewRenderer::setupVideoOutput" << m_movie << m_surface;
+// qDebug() << "QT7MovieViewRenderer::setupVideoOutput" << m_movie << m_surface;
HiddenQTMovieView *movieView = (HiddenQTMovieView*)m_movieView;
@@ -274,14 +274,15 @@ void QT7MovieViewRenderer::setupVideoOutput()
QVideoSurfaceFormat format(m_nativeSize, QVideoFrame::Format_RGB32);
if (m_surface->isActive() && m_surface->surfaceFormat() != format) {
- qDebug() << "Surface format was changed, stop the surface.";
+// qDebug() << "Surface format was changed, stop the surface.";
m_surface->stop();
}
if (!m_surface->isActive()) {
- qDebug() << "Starting the surface with format" << format;
- if (!m_surface->start(format))
- qDebug() << "failed to start video surface" << m_surface->error();
+// qDebug() << "Starting the surface with format" << format;
+ m_surface->start(format);
+// if (!m_surface->start(format))
+// qDebug() << "failed to start video surface" << m_surface->error();
}
}
}
diff --git a/src/plugins/qmlmodules/multimedia/multimedia.cpp b/src/plugins/qmlmodules/multimedia/multimedia.cpp
index d9414ee..d192ed8 100644
--- a/src/plugins/qmlmodules/multimedia/multimedia.cpp
+++ b/src/plugins/qmlmodules/multimedia/multimedia.cpp
@@ -41,7 +41,7 @@
#include <QtDeclarative/qmlmoduleplugin.h>
#include <QtDeclarative/qml.h>
-#include <QtMultimedia/qml.h>
+#include <QtMultimedia/multimediaqml.h>
QT_BEGIN_NAMESPACE
diff --git a/src/script/api/qscriptengine_p.h b/src/script/api/qscriptengine_p.h
index f69e537..79294fe 100644
--- a/src/script/api/qscriptengine_p.h
+++ b/src/script/api/qscriptengine_p.h
@@ -854,7 +854,7 @@ inline bool QScriptEnginePrivate::isQObject(JSC::JSValue value)
inline bool QScriptEnginePrivate::isQMetaObject(JSC::JSValue value)
{
#ifndef QT_NO_QOBJECT
- return JSC::asObject(value)->inherits(&QScript::QMetaObjectWrapperObject::info);
+ return isObject(value) && JSC::asObject(value)->inherits(&QScript::QMetaObjectWrapperObject::info);
#else
return false;
#endif
diff --git a/tests/auto/headers/headers.pro b/tests/auto/headers/headers.pro
index 703da7c..74e1a02 100644
--- a/tests/auto/headers/headers.pro
+++ b/tests/auto/headers/headers.pro
@@ -1,3 +1,3 @@
load(qttest_p4)
-SOURCES += tst_headers.cpp
+SOURCES += tst_headers.cpp headersclean.cpp
QT = core
diff --git a/tests/auto/headers/headersclean.cpp b/tests/auto/headers/headersclean.cpp
new file mode 100644
index 0000000..b932b9f
--- /dev/null
+++ b/tests/auto/headers/headersclean.cpp
@@ -0,0 +1,86 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#define QT_NO_KEYWORDS
+#define signals int
+#define slots int
+#define emit public:;
+#define foreach public:;
+#define forever public:;
+
+// include all of Qt here
+
+// core Qt
+#include <QtCore/QtCore>
+#include <QtGui/QtGui>
+#include <QtNetwork/QtNetwork>
+
+// extra
+#include <QtDBus/QtDBus>
+//#include <QtDeclarative/QtDeclarative>
+#include <QtHelp/QtHelp>
+#include <QtMultimedia/QtMultimedia>
+#include <QtOpenGL/QtOpenGL>
+#include <QtScript/QtScript>
+#include <QtScriptTools/QtScriptTools>
+#include <QtSql/QtSql>
+#include <QtSvg/QtSvg>
+#include <QtTest/QtTest>
+#include <QtXml/QtXml>
+#include <QtXmlPatterns/QtXmlPatterns>
+
+// webkit:
+#include <QtWebKit/QtWebKit>
+
+// designer:
+#include <QtDesigner/QtDesigner>
+#include <QtUiTools/QtUiTools>
+
+// feature dependent:
+#ifndef QT_NO_OPENVG
+#include <QtOpenVG/QtOpenVG>
+#endif
+
+// removed in 4.7:
+//#include <QtAssistant/QtAssistant>
+
+// can't include this since it causes a linker error
+//#include <Qt3Support/Qt3Support>
diff --git a/tests/auto/qchar/qchar.pro b/tests/auto/qchar/qchar.pro
index fca4ef6..0a3fcc3 100644
--- a/tests/auto/qchar/qchar.pro
+++ b/tests/auto/qchar/qchar.pro
@@ -8,3 +8,4 @@ deploy.sources += NormalizationTest.txt
DEPLOYMENT = deploy
}
+DEFINES += SRCDIR=\\\"$$PWD/\\\"
diff --git a/tests/auto/qchar/tst_qchar.cpp b/tests/auto/qchar/tst_qchar.cpp
index 241b9a5..547147c 100644
--- a/tests/auto/qchar/tst_qchar.cpp
+++ b/tests/auto/qchar/tst_qchar.cpp
@@ -499,10 +499,7 @@ void tst_QChar::normalization()
QVERIFY(composed.normalized(QString::NormalizationForm_KC) == decomposed);
}
- QFile f("NormalizationTest.txt");
- // Windows - current directory is the debug/release subdirectory where the executable is located
- if (!f.exists())
- f.setFileName("../NormalizationTest.txt");;
+ QFile f(SRCDIR "NormalizationTest.txt");
if (!f.exists()) {
QFAIL("Couldn't find NormalizationTest.txt");
return;
diff --git a/tests/auto/qdbuspendingcall/tst_qdbuspendingcall.cpp b/tests/auto/qdbuspendingcall/tst_qdbuspendingcall.cpp
index 7208383..54426ce 100644
--- a/tests/auto/qdbuspendingcall/tst_qdbuspendingcall.cpp
+++ b/tests/auto/qdbuspendingcall/tst_qdbuspendingcall.cpp
@@ -41,6 +41,7 @@
#include <QtCore/QObject>
#include <QtCore/QVariant>
#include <QtCore/QList>
+#include <QtCore/QThread>
#include <QtCore/QVector>
#include <QtTest/QtTest>
#ifndef QT_NO_DBUS
@@ -90,6 +91,7 @@ private Q_SLOTS:
void watcher();
void watcher_error();
void watcher_waitForFinished();
+ void watcher_waitForFinished_threaded();
void watcher_waitForFinished_alreadyFinished();
void watcher_waitForFinished_alreadyFinished_eventLoop();
void watcher_waitForFinished_error();
@@ -124,7 +126,10 @@ void tst_QDBusPendingCall::finished(QDBusPendingCallWatcher *call)
slotCalled = FinishCalled;
++callCount;
watchArgument = call;
- QTestEventLoop::instance().exitLoop();
+ if (QThread::currentThread() == thread())
+ QTestEventLoop::instance().exitLoop();
+ else
+ QMetaObject::invokeMethod(&QTestEventLoop::instance(), "exitLoop", Qt::QueuedConnection);
}
void tst_QDBusPendingCall::callback(const QStringList &list)
@@ -377,6 +382,56 @@ void tst_QDBusPendingCall::watcher_waitForFinished()
QVERIFY(args2.at(0).toStringList().contains(conn.baseService()));
}
+void tst_QDBusPendingCall::watcher_waitForFinished_threaded()
+{
+ callCount = 0;
+ watchArgument = 0;
+ slotCalled = 0;
+
+ class WorkerThread: public QThread {
+ public:
+ tst_QDBusPendingCall *tst;
+ WorkerThread(tst_QDBusPendingCall *tst) : tst(tst) {}
+ void run()
+ {
+ QDBusPendingCall ac = tst->sendMessage();
+// QVERIFY(!ac.isFinished());
+// QVERIFY(!ac.isError());
+// QVERIFY(ac.reply().type() == QDBusMessage::InvalidMessage);
+
+ QDBusPendingCallWatcher watch(ac);
+ tst->connect(&watch, SIGNAL(finished(QDBusPendingCallWatcher*)),
+ SLOT(finished(QDBusPendingCallWatcher*)), Qt::DirectConnection);
+
+ QTest::qSleep(100); // don't process events in this thread
+
+// QVERIFY(!ac.isFinished());
+// QVERIFY(!ac.isError());
+// QVERIFY(ac.reply().type() == QDBusMessage::InvalidMessage);
+ QCOMPARE(tst->callCount, 0);
+ QCOMPARE(tst->slotCalled, 0);
+
+ watch.waitForFinished();
+ QVERIFY(ac.isFinished());
+ QVERIFY(!ac.isError());
+
+ QCOMPARE(tst->callCount, 1);
+ QCOMPARE(tst->slotCalled, (int)FinishCalled);
+ QCOMPARE(tst->watchArgument, &watch);
+ QVERIFY(!watch.isError());
+
+ const QVariantList args2 = ac.reply().arguments();
+ QVERIFY(!args2.isEmpty());
+ QVERIFY(args2.at(0).toStringList().contains(tst->conn.baseService()));
+ }
+ } thread(this);
+ QTestEventLoop::instance().connect(&thread, SIGNAL(finished()), SLOT(exitLoop()));
+ thread.start();
+ QTestEventLoop::instance().enterLoop(1000);
+ QVERIFY(!thread.isRunning());
+ QVERIFY(!QTestEventLoop::instance().timeout());
+}
+
void tst_QDBusPendingCall::watcher_waitForFinished_alreadyFinished()
{
QDBusPendingCall ac = sendMessage();
diff --git a/tests/auto/qmediacontent/qmediacontent.pro b/tests/auto/qmediacontent/qmediacontent.pro
index f7884f6..6c13c8b 100644
--- a/tests/auto/qmediacontent/qmediacontent.pro
+++ b/tests/auto/qmediacontent/qmediacontent.pro
@@ -2,5 +2,5 @@ load(qttest_p4)
SOURCES += tst_qmediacontent.cpp
-QT = core multimedia
+QT = core network multimedia
diff --git a/tests/auto/qmediacontent/tst_qmediacontent.cpp b/tests/auto/qmediacontent/tst_qmediacontent.cpp
index 35dd0a9..8987241 100644
--- a/tests/auto/qmediacontent/tst_qmediacontent.cpp
+++ b/tests/auto/qmediacontent/tst_qmediacontent.cpp
@@ -51,6 +51,7 @@ class tst_QMediaContent : public QObject
private slots:
void testNull();
void testUrlCtor();
+ void testRequestCtor();
void testResourceCtor();
void testResourceListCtor();
void testCopy();
@@ -77,6 +78,18 @@ void tst_QMediaContent::testUrlCtor()
QCOMPARE(media.canonicalResource().url(), QUrl("http://example.com/movie.mov"));
}
+void tst_QMediaContent::testRequestCtor()
+{
+ QNetworkRequest request(QUrl("http://example.com/movie.mov"));
+ request.setAttribute(QNetworkRequest::User, QVariant(1234));
+
+ QMediaContent media(request);
+
+ QCOMPARE(media.canonicalUrl(), QUrl("http://example.com/movie.mov"));
+ QCOMPARE(media.canonicalResource().request(), request);
+ QCOMPARE(media.canonicalResource().url(), QUrl("http://example.com/movie.mov"));
+}
+
void tst_QMediaContent::testResourceCtor()
{
QMediaContent media(QMediaResource(QUrl("http://example.com/movie.mov")));
diff --git a/tests/auto/qregexp/tst_qregexp.cpp b/tests/auto/qregexp/tst_qregexp.cpp
index 4d16ab5..ea07323 100644
--- a/tests/auto/qregexp/tst_qregexp.cpp
+++ b/tests/auto/qregexp/tst_qregexp.cpp
@@ -102,6 +102,9 @@ private slots:
void reentrancy();
void threadsafeEngineCache();
+
+ void QTBUG_7049_data();
+ void QTBUG_7049();
};
// Testing get/set functions
@@ -1333,5 +1336,95 @@ void tst_QRegExp::operator_eq()
}
}
+void tst_QRegExp::QTBUG_7049_data()
+{
+ QTest::addColumn<QString>("reStr");
+ QTest::addColumn<QString>("text");
+ QTest::addColumn<int>("matchIndex");
+
+ QTest::addColumn<int>("pos0");
+ QTest::addColumn<int>("pos1");
+ QTest::addColumn<int>("pos2");
+
+ QTest::addColumn<QString>("cap0");
+ QTest::addColumn<QString>("cap1");
+ QTest::addColumn<QString>("cap2");
+
+ QTest::newRow("no match")
+ << QString("(a) (b)") << QString("b a") << -1
+ << -1 << -1 << -1 << QString() << QString() << QString();
+
+ QTest::newRow("both captures match")
+ << QString("(a) (b)") << QString("a b") << 0
+ << 0 << 0 << 2 << QString("a b") << QString("a") << QString("b");
+
+ QTest::newRow("first capture matches @0")
+ << QString("(a*)|(b*)") << QString("axx") << 0
+ << 0 << 0 << -1 << QString("a") << QString("a") << QString();
+ QTest::newRow("second capture matches @0")
+ << QString("(a*)|(b*)") << QString("bxx") << 0
+ << 0 << -1 << 0 << QString("b") << QString() << QString("b");
+ QTest::newRow("first capture empty match @0")
+ << QString("(a*)|(b*)") << QString("xx") << 0
+ << 0 << -1 << -1 << QString("") << QString() << QString();
+ QTest::newRow("second capture empty match @0")
+ << QString("(a)|(b*)") << QString("xx") << 0
+ << 0 << -1 << -1 << QString("") << QString() << QString();
+
+ QTest::newRow("first capture matches @1")
+ << QString("x(?:(a*)|(b*))") << QString("-xa") << 1
+ << 1 << 2 << -1 << QString("xa") << QString("a") << QString();
+ QTest::newRow("second capture matches @1")
+ << QString("x(?:(a*)|(b*))") << QString("-xb") << 1
+ << 1 << -1 << 2 << QString("xb") << QString() << QString("b");
+ QTest::newRow("first capture empty match @1")
+ << QString("x(?:(a*)|(b*))") << QString("-xx") << 1
+ << 1 << -1 << -1 << QString("x") << QString() << QString();
+ QTest::newRow("second capture empty match @1")
+ << QString("x(?:(a)|(b*))") << QString("-xx") << 1
+ << 1 << -1 << -1 << QString("x") << QString() << QString();
+
+ QTest::newRow("first capture matches @2")
+ << QString("(a)|(b)") << QString("xxa") << 2
+ << 2 << 2 << -1 << QString("a") << QString("a") << QString();
+ QTest::newRow("second capture matches @2")
+ << QString("(a)|(b)") << QString("xxb") << 2
+ << 2 << -1 << 2 << QString("b") << QString() << QString("b");
+ QTest::newRow("no match - with options")
+ << QString("(a)|(b)") << QString("xx") << -1
+ << -1 << -1 << -1 << QString() << QString() << QString();
+
+}
+
+void tst_QRegExp::QTBUG_7049()
+{
+ QFETCH( QString, reStr );
+ QFETCH( QString, text );
+ QFETCH( int, matchIndex );
+ QFETCH( int, pos0 );
+ QFETCH( int, pos1 );
+ QFETCH( int, pos2 );
+ QFETCH( QString, cap0 );
+ QFETCH( QString, cap1 );
+ QFETCH( QString, cap2 );
+
+ QRegExp re(reStr);
+ QCOMPARE(re.numCaptures(), 2);
+ QCOMPARE(re.capturedTexts().size(), 3);
+
+ QCOMPARE(re.indexIn(text), matchIndex);
+
+ QCOMPARE( re.pos(0), pos0 );
+ QCOMPARE( re.pos(1), pos1 );
+ QCOMPARE( re.pos(2), pos2 );
+
+ QCOMPARE( re.cap(0).isNull(), cap0.isNull() );
+ QCOMPARE( re.cap(0), cap0 );
+ QCOMPARE( re.cap(1).isNull(), cap1.isNull() );
+ QCOMPARE( re.cap(1), cap1 );
+ QCOMPARE( re.cap(2).isNull(), cap2.isNull() );
+ QCOMPARE( re.cap(2), cap2 );
+}
+
QTEST_APPLESS_MAIN(tst_QRegExp)
#include "tst_qregexp.moc"
diff --git a/tests/auto/qscriptvalue/testgen/data.txt b/tests/auto/qscriptvalue/testgen/data.txt
index a041c9b..73677ec 100644
--- a/tests/auto/qscriptvalue/testgen/data.txt
+++ b/tests/auto/qscriptvalue/testgen/data.txt
@@ -34,6 +34,7 @@ QScriptValue(QString())
QScriptValue(QString("0"))
QScriptValue(QString("123"))
QScriptValue(QString("12.4"))
+#QScriptValue(QString::fromUtf8("ąśćżźółńę"))
#Unbound values (bound to a null engine)
QScriptValue(0, QScriptValue::UndefinedValue)
@@ -64,6 +65,7 @@ QScriptValue(0, QString())
QScriptValue(0, QString("0"))
QScriptValue(0, QString("123"))
QScriptValue(0, QString("12.3"))
+#QScriptValue(0, QString::fromUtf8("ąśćżźółńę"))
#Bound values
QScriptValue(engine, QScriptValue::UndefinedValue)
@@ -114,7 +116,46 @@ engine->evaluate("/foo/")
engine->evaluate("new Object()")
engine->evaluate("new Array()")
engine->evaluate("new Error()")
+engine->evaluate("a = new Object(); a.foo = 22; a.foo")
+engine->evaluate("Undefined")
+engine->evaluate("Null")
+engine->evaluate("True")
+engine->evaluate("False")
+
+engine->evaluate("undefined")
+engine->evaluate("null")
+engine->evaluate("true")
+engine->evaluate("false")
+engine->evaluate("122")
+engine->evaluate("124")
+engine->evaluate("0")
+engine->evaluate("0.0")
+engine->evaluate("123.0")
+engine->evaluate("6.37e-8")
+engine->evaluate("-6.37e-8")
+engine->evaluate("0x43211234")
+engine->evaluate("0x10000")
+engine->evaluate("0x10001")
+engine->evaluate("NaN")
+engine->evaluate("Infinity")
+engine->evaluate("-Infinity")
+engine->evaluate("'ciao'")
+engine->evaluate("''")
+engine->evaluate("'0'")
+engine->evaluate("'123'")
+engine->evaluate("'12.4'")
+#engine->evaluate(QString::fromUtf8("'ąśćżźółńę'"))
#other
engine->nullValue()
-engine->undefinedValue() \ No newline at end of file
+engine->undefinedValue()
+engine->newObject()
+engine->newArray()
+engine->newArray(10)
+engine->newDate(QDateTime())
+engine->newQMetaObject(&QObject::staticMetaObject)
+engine->newVariant(QVariant())
+engine->newVariant(QVariant(123))
+engine->newVariant(QVariant(false))
+engine->newQObject(0)
+engine->newQObject(engine) \ No newline at end of file
diff --git a/tests/auto/qscriptvalue/testgen/gen.py b/tests/auto/qscriptvalue/testgen/gen.py
index b3c81b9..6e48f46 100755
--- a/tests/auto/qscriptvalue/testgen/gen.py
+++ b/tests/auto/qscriptvalue/testgen/gen.py
@@ -70,8 +70,7 @@ class Options():
return getattr(self._o, attr)
-mainTempl = Template("""/*
-/****************************************************************************
+mainTempl = Template("""/****************************************************************************
**
** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
diff --git a/tests/auto/qscriptvalue/testgen/testgenerator.cpp b/tests/auto/qscriptvalue/testgen/testgenerator.cpp
index d852ea5..4376c42 100644
--- a/tests/auto/qscriptvalue/testgen/testgenerator.cpp
+++ b/tests/auto/qscriptvalue/testgen/testgenerator.cpp
@@ -119,6 +119,7 @@ static QString generateIsXXXDef(const QString& name, const QList<QString>& list)
"{\n"\
" QFETCH(bool, expected);\n"\
" QCOMPARE(value.%1(), expected);\n"\
+ " QCOMPARE(value.%1(), expected);\n"\
"}\n"\
"\n"\
"DEFINE_TEST_FUNCTION(%1)\n"\
@@ -166,6 +167,7 @@ static QString generateToXXXDef(const QString& name, const QList<QPair<QString,
"{\n"\
" QFETCH(%2, expected);\n"\
" QCOMPARE(value.%1(), expected);\n"\
+ " QCOMPARE(value.%1(), expected);\n"\
"}\n"\
"\n"\
"DEFINE_TEST_FUNCTION(%1)\n";
@@ -213,9 +215,11 @@ QString generateToXXXDef<qsreal>(const QString& name, const QList<QPair<QString,
"%666"
" if (qIsInf(expected)) {\n"\
" QVERIFY(qIsInf(value.%1()));\n"\
+ " QVERIFY(qIsInf(value.%1()));\n"\
" return;\n"\
" }\n"\
" QCOMPARE(value.%1(), expected);\n"\
+ " QCOMPARE(value.%1(), expected);\n"\
"}\n"\
"\n"\
"DEFINE_TEST_FUNCTION(%1)\n";
@@ -269,6 +273,7 @@ static QString generateCastDef(const QList<QPair<QString, T> >& list)
"{\n"\
" QFETCH(%2, expected);\n"\
" QCOMPARE(qscriptvalue_cast<%2>(value), expected);\n"\
+ " QCOMPARE(qscriptvalue_cast<%2>(value), expected);\n"\
"}\n"\
"\n"\
"DEFINE_TEST_FUNCTION(qscriptvalue_cast%2)\n";
@@ -313,13 +318,16 @@ QString generateCastDef<qsreal>(const QList<QPair<QString, qsreal> >& list)
" QFETCH(%2, expected);\n"\
" if (qIsNaN(expected)) {\n"
" QVERIFY(qIsNaN(qscriptvalue_cast<%2>(value)));\n"
+ " QVERIFY(qIsNaN(qscriptvalue_cast<%2>(value)));\n"
" return;\n"
" }\n"\
" if (qIsInf(expected)) {\n"
" QVERIFY(qIsInf(qscriptvalue_cast<%2>(value)));\n"
+ " QVERIFY(qIsInf(qscriptvalue_cast<%2>(value)));\n"
" return;\n"
" }\n"
" QCOMPARE(qscriptvalue_cast<%2>(value), expected);\n"\
+ " QCOMPARE(qscriptvalue_cast<%2>(value), expected);\n"\
"}\n"\
"\n"\
"DEFINE_TEST_FUNCTION(qscriptvalue_cast%2)\n";
diff --git a/tests/auto/qscriptvalue/tst_qscriptvalue.h b/tests/auto/qscriptvalue/tst_qscriptvalue.h
index 6215506..a5c7b45 100644
--- a/tests/auto/qscriptvalue/tst_qscriptvalue.h
+++ b/tests/auto/qscriptvalue/tst_qscriptvalue.h
@@ -89,11 +89,11 @@ private slots:
void isObject_data();
void isObject();
-// void isQMetaObject_data();
-// void isQMetaObject();
+ void isQMetaObject_data();
+ void isQMetaObject();
-// void isQObject_data();
-// void isQObject();
+ void isQObject_data();
+ void isQObject();
void isRegExp_data();
void isRegExp();
@@ -107,8 +107,8 @@ private slots:
void isValid_data();
void isValid();
-// void isVariant_data();
-// void isVariant();
+ void isVariant_data();
+ void isVariant();
void toBool_data();
void toBool();
diff --git a/tests/auto/qscriptvalue/tst_qscriptvalue_generated.cpp b/tests/auto/qscriptvalue/tst_qscriptvalue_generated.cpp
index 4e621b3..a07ff4b 100644
--- a/tests/auto/qscriptvalue/tst_qscriptvalue_generated.cpp
+++ b/tests/auto/qscriptvalue/tst_qscriptvalue_generated.cpp
@@ -152,8 +152,45 @@ void tst_QScriptValue::initScriptValues()
DEFINE_TEST_VALUE(engine->evaluate("new Object()"));
DEFINE_TEST_VALUE(engine->evaluate("new Array()"));
DEFINE_TEST_VALUE(engine->evaluate("new Error()"));
+ DEFINE_TEST_VALUE(engine->evaluate("a = new Object(); a.foo = 22; a.foo"));
+ DEFINE_TEST_VALUE(engine->evaluate("Undefined"));
+ DEFINE_TEST_VALUE(engine->evaluate("Null"));
+ DEFINE_TEST_VALUE(engine->evaluate("True"));
+ DEFINE_TEST_VALUE(engine->evaluate("False"));
+ DEFINE_TEST_VALUE(engine->evaluate("undefined"));
+ DEFINE_TEST_VALUE(engine->evaluate("null"));
+ DEFINE_TEST_VALUE(engine->evaluate("true"));
+ DEFINE_TEST_VALUE(engine->evaluate("false"));
+ DEFINE_TEST_VALUE(engine->evaluate("122"));
+ DEFINE_TEST_VALUE(engine->evaluate("124"));
+ DEFINE_TEST_VALUE(engine->evaluate("0"));
+ DEFINE_TEST_VALUE(engine->evaluate("0.0"));
+ DEFINE_TEST_VALUE(engine->evaluate("123.0"));
+ DEFINE_TEST_VALUE(engine->evaluate("6.37e-8"));
+ DEFINE_TEST_VALUE(engine->evaluate("-6.37e-8"));
+ DEFINE_TEST_VALUE(engine->evaluate("0x43211234"));
+ DEFINE_TEST_VALUE(engine->evaluate("0x10000"));
+ DEFINE_TEST_VALUE(engine->evaluate("0x10001"));
+ DEFINE_TEST_VALUE(engine->evaluate("NaN"));
+ DEFINE_TEST_VALUE(engine->evaluate("Infinity"));
+ DEFINE_TEST_VALUE(engine->evaluate("-Infinity"));
+ DEFINE_TEST_VALUE(engine->evaluate("'ciao'"));
+ DEFINE_TEST_VALUE(engine->evaluate("''"));
+ DEFINE_TEST_VALUE(engine->evaluate("'0'"));
+ DEFINE_TEST_VALUE(engine->evaluate("'123'"));
+ DEFINE_TEST_VALUE(engine->evaluate("'12.4'"));
DEFINE_TEST_VALUE(engine->nullValue());
DEFINE_TEST_VALUE(engine->undefinedValue());
+ DEFINE_TEST_VALUE(engine->newObject());
+ DEFINE_TEST_VALUE(engine->newArray());
+ DEFINE_TEST_VALUE(engine->newArray(10));
+ DEFINE_TEST_VALUE(engine->newDate(QDateTime()));
+ DEFINE_TEST_VALUE(engine->newQMetaObject(&QObject::staticMetaObject));
+ DEFINE_TEST_VALUE(engine->newVariant(QVariant()));
+ DEFINE_TEST_VALUE(engine->newVariant(QVariant(123)));
+ DEFINE_TEST_VALUE(engine->newVariant(QVariant(false)));
+ DEFINE_TEST_VALUE(engine->newQObject(0));
+ DEFINE_TEST_VALUE(engine->newQObject(engine));
}
@@ -269,8 +306,45 @@ void tst_QScriptValue::isValid_makeData(const char* expr)
<< "engine->evaluate(\"new Object()\")"
<< "engine->evaluate(\"new Array()\")"
<< "engine->evaluate(\"new Error()\")"
+ << "engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")"
+ << "engine->evaluate(\"Undefined\")"
+ << "engine->evaluate(\"Null\")"
+ << "engine->evaluate(\"True\")"
+ << "engine->evaluate(\"False\")"
+ << "engine->evaluate(\"undefined\")"
+ << "engine->evaluate(\"null\")"
+ << "engine->evaluate(\"true\")"
+ << "engine->evaluate(\"false\")"
+ << "engine->evaluate(\"122\")"
+ << "engine->evaluate(\"124\")"
+ << "engine->evaluate(\"0\")"
+ << "engine->evaluate(\"0.0\")"
+ << "engine->evaluate(\"123.0\")"
+ << "engine->evaluate(\"6.37e-8\")"
+ << "engine->evaluate(\"-6.37e-8\")"
+ << "engine->evaluate(\"0x43211234\")"
+ << "engine->evaluate(\"0x10000\")"
+ << "engine->evaluate(\"0x10001\")"
+ << "engine->evaluate(\"NaN\")"
+ << "engine->evaluate(\"Infinity\")"
+ << "engine->evaluate(\"-Infinity\")"
+ << "engine->evaluate(\"'ciao'\")"
+ << "engine->evaluate(\"''\")"
+ << "engine->evaluate(\"'0'\")"
+ << "engine->evaluate(\"'123'\")"
+ << "engine->evaluate(\"'12.4'\")"
<< "engine->nullValue()"
<< "engine->undefinedValue()"
+ << "engine->newObject()"
+ << "engine->newArray()"
+ << "engine->newArray(10)"
+ << "engine->newDate(QDateTime())"
+ << "engine->newQMetaObject(&QObject::staticMetaObject)"
+ << "engine->newVariant(QVariant())"
+ << "engine->newVariant(QVariant(123))"
+ << "engine->newVariant(QVariant(false))"
+ << "engine->newQObject(0)"
+ << "engine->newQObject(engine)"
;
}
newRow(expr) << isValid.contains(expr);
@@ -280,6 +354,7 @@ void tst_QScriptValue::isValid_test(const char*, const QScriptValue& value)
{
QFETCH(bool, expected);
QCOMPARE(value.isValid(), expected);
+ QCOMPARE(value.isValid(), expected);
}
DEFINE_TEST_FUNCTION(isValid)
@@ -301,6 +376,8 @@ void tst_QScriptValue::isBool_makeData(const char* expr)
<< "QScriptValue(0, false)"
<< "QScriptValue(engine, true)"
<< "QScriptValue(engine, false)"
+ << "engine->evaluate(\"true\")"
+ << "engine->evaluate(\"false\")"
;
}
newRow(expr) << isBool.contains(expr);
@@ -310,6 +387,7 @@ void tst_QScriptValue::isBool_test(const char*, const QScriptValue& value)
{
QFETCH(bool, expected);
QCOMPARE(value.isBool(), expected);
+ QCOMPARE(value.isBool(), expected);
}
DEFINE_TEST_FUNCTION(isBool)
@@ -331,6 +409,8 @@ void tst_QScriptValue::isBoolean_makeData(const char* expr)
<< "QScriptValue(0, false)"
<< "QScriptValue(engine, true)"
<< "QScriptValue(engine, false)"
+ << "engine->evaluate(\"true\")"
+ << "engine->evaluate(\"false\")"
;
}
newRow(expr) << isBoolean.contains(expr);
@@ -340,6 +420,7 @@ void tst_QScriptValue::isBoolean_test(const char*, const QScriptValue& value)
{
QFETCH(bool, expected);
QCOMPARE(value.isBoolean(), expected);
+ QCOMPARE(value.isBoolean(), expected);
}
DEFINE_TEST_FUNCTION(isBoolean)
@@ -397,6 +478,20 @@ void tst_QScriptValue::isNumber_makeData(const char* expr)
<< "QScriptValue(engine, qQNaN())"
<< "QScriptValue(engine, qInf())"
<< "QScriptValue(engine, -qInf())"
+ << "engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")"
+ << "engine->evaluate(\"122\")"
+ << "engine->evaluate(\"124\")"
+ << "engine->evaluate(\"0\")"
+ << "engine->evaluate(\"0.0\")"
+ << "engine->evaluate(\"123.0\")"
+ << "engine->evaluate(\"6.37e-8\")"
+ << "engine->evaluate(\"-6.37e-8\")"
+ << "engine->evaluate(\"0x43211234\")"
+ << "engine->evaluate(\"0x10000\")"
+ << "engine->evaluate(\"0x10001\")"
+ << "engine->evaluate(\"NaN\")"
+ << "engine->evaluate(\"Infinity\")"
+ << "engine->evaluate(\"-Infinity\")"
;
}
newRow(expr) << isNumber.contains(expr);
@@ -406,6 +501,7 @@ void tst_QScriptValue::isNumber_test(const char*, const QScriptValue& value)
{
QFETCH(bool, expected);
QCOMPARE(value.isNumber(), expected);
+ QCOMPARE(value.isNumber(), expected);
}
DEFINE_TEST_FUNCTION(isNumber)
@@ -430,6 +526,7 @@ void tst_QScriptValue::isFunction_makeData(const char* expr)
<< "engine->evaluate(\"(function() { return 'ciao'; })\")"
<< "engine->evaluate(\"(function() { throw new Error('foo'); })\")"
<< "engine->evaluate(\"/foo/\")"
+ << "engine->newQMetaObject(&QObject::staticMetaObject)"
;
}
newRow(expr) << isFunction.contains(expr);
@@ -439,6 +536,7 @@ void tst_QScriptValue::isFunction_test(const char*, const QScriptValue& value)
{
QFETCH(bool, expected);
QCOMPARE(value.isFunction(), expected);
+ QCOMPARE(value.isFunction(), expected);
}
DEFINE_TEST_FUNCTION(isFunction)
@@ -457,7 +555,9 @@ void tst_QScriptValue::isNull_makeData(const char* expr)
isNull << "QScriptValue(QScriptValue::NullValue)"
<< "QScriptValue(0, QScriptValue::NullValue)"
<< "QScriptValue(engine, QScriptValue::NullValue)"
+ << "engine->evaluate(\"null\")"
<< "engine->nullValue()"
+ << "engine->newQObject(0)"
;
}
newRow(expr) << isNull.contains(expr);
@@ -467,6 +567,7 @@ void tst_QScriptValue::isNull_test(const char*, const QScriptValue& value)
{
QFETCH(bool, expected);
QCOMPARE(value.isNull(), expected);
+ QCOMPARE(value.isNull(), expected);
}
DEFINE_TEST_FUNCTION(isNull)
@@ -512,6 +613,11 @@ void tst_QScriptValue::isString_makeData(const char* expr)
<< "QScriptValue(engine, QString(\"0\"))"
<< "QScriptValue(engine, QString(\"123\"))"
<< "QScriptValue(engine, QString(\"1.23\"))"
+ << "engine->evaluate(\"'ciao'\")"
+ << "engine->evaluate(\"''\")"
+ << "engine->evaluate(\"'0'\")"
+ << "engine->evaluate(\"'123'\")"
+ << "engine->evaluate(\"'12.4'\")"
;
}
newRow(expr) << isString.contains(expr);
@@ -521,6 +627,7 @@ void tst_QScriptValue::isString_test(const char*, const QScriptValue& value)
{
QFETCH(bool, expected);
QCOMPARE(value.isString(), expected);
+ QCOMPARE(value.isString(), expected);
}
DEFINE_TEST_FUNCTION(isString)
@@ -540,6 +647,7 @@ void tst_QScriptValue::isUndefined_makeData(const char* expr)
<< "QScriptValue(0, QScriptValue::UndefinedValue)"
<< "QScriptValue(engine, QScriptValue::UndefinedValue)"
<< "engine->evaluate(\"{}\")"
+ << "engine->evaluate(\"undefined\")"
<< "engine->undefinedValue()"
;
}
@@ -550,12 +658,90 @@ void tst_QScriptValue::isUndefined_test(const char*, const QScriptValue& value)
{
QFETCH(bool, expected);
QCOMPARE(value.isUndefined(), expected);
+ QCOMPARE(value.isUndefined(), expected);
}
DEFINE_TEST_FUNCTION(isUndefined)
+void tst_QScriptValue::isVariant_initData()
+{
+ QTest::addColumn<bool>("expected");
+ initScriptValues();
+}
+
+void tst_QScriptValue::isVariant_makeData(const char* expr)
+{
+ static QSet<QString> isVariant;
+ if (isVariant.isEmpty()) {
+ isVariant << "engine->newVariant(QVariant())"
+ << "engine->newVariant(QVariant(123))"
+ << "engine->newVariant(QVariant(false))"
+ ;
+ }
+ newRow(expr) << isVariant.contains(expr);
+}
+
+void tst_QScriptValue::isVariant_test(const char*, const QScriptValue& value)
+{
+ QFETCH(bool, expected);
+ QCOMPARE(value.isVariant(), expected);
+ QCOMPARE(value.isVariant(), expected);
+}
+
+DEFINE_TEST_FUNCTION(isVariant)
+
+
+void tst_QScriptValue::isQObject_initData()
+{
+ QTest::addColumn<bool>("expected");
+ initScriptValues();
+}
+
+void tst_QScriptValue::isQObject_makeData(const char* expr)
+{
+ static QSet<QString> isQObject;
+ if (isQObject.isEmpty()) {
+ isQObject << "engine->newQObject(engine)"
+ ;
+ }
+ newRow(expr) << isQObject.contains(expr);
+}
+
+void tst_QScriptValue::isQObject_test(const char*, const QScriptValue& value)
+{
+ QFETCH(bool, expected);
+ QCOMPARE(value.isQObject(), expected);
+ QCOMPARE(value.isQObject(), expected);
+}
+
+DEFINE_TEST_FUNCTION(isQObject)
+
+void tst_QScriptValue::isQMetaObject_initData()
+{
+ QTest::addColumn<bool>("expected");
+ initScriptValues();
+}
+
+void tst_QScriptValue::isQMetaObject_makeData(const char* expr)
+{
+ static QSet<QString> isQMetaObject;
+ if (isQMetaObject.isEmpty()) {
+ isQMetaObject << "engine->newQMetaObject(&QObject::staticMetaObject)"
+ ;
+ }
+ newRow(expr) << isQMetaObject.contains(expr);
+}
+
+void tst_QScriptValue::isQMetaObject_test(const char*, const QScriptValue& value)
+{
+ QFETCH(bool, expected);
+ QCOMPARE(value.isQMetaObject(), expected);
+ QCOMPARE(value.isQMetaObject(), expected);
+}
+
+DEFINE_TEST_FUNCTION(isQMetaObject)
void tst_QScriptValue::isObject_initData()
@@ -585,6 +771,19 @@ void tst_QScriptValue::isObject_makeData(const char* expr)
<< "engine->evaluate(\"new Object()\")"
<< "engine->evaluate(\"new Array()\")"
<< "engine->evaluate(\"new Error()\")"
+ << "engine->evaluate(\"Undefined\")"
+ << "engine->evaluate(\"Null\")"
+ << "engine->evaluate(\"True\")"
+ << "engine->evaluate(\"False\")"
+ << "engine->newObject()"
+ << "engine->newArray()"
+ << "engine->newArray(10)"
+ << "engine->newDate(QDateTime())"
+ << "engine->newQMetaObject(&QObject::staticMetaObject)"
+ << "engine->newVariant(QVariant())"
+ << "engine->newVariant(QVariant(123))"
+ << "engine->newVariant(QVariant(false))"
+ << "engine->newQObject(engine)"
;
}
newRow(expr) << isObject.contains(expr);
@@ -594,6 +793,7 @@ void tst_QScriptValue::isObject_test(const char*, const QScriptValue& value)
{
QFETCH(bool, expected);
QCOMPARE(value.isObject(), expected);
+ QCOMPARE(value.isObject(), expected);
}
DEFINE_TEST_FUNCTION(isObject)
@@ -610,6 +810,7 @@ void tst_QScriptValue::isDate_makeData(const char* expr)
static QSet<QString> isDate;
if (isDate.isEmpty()) {
isDate << "engine->evaluate(\"Date.prototype\")"
+ << "engine->newDate(QDateTime())"
;
}
newRow(expr) << isDate.contains(expr);
@@ -619,6 +820,7 @@ void tst_QScriptValue::isDate_test(const char*, const QScriptValue& value)
{
QFETCH(bool, expected);
QCOMPARE(value.isDate(), expected);
+ QCOMPARE(value.isDate(), expected);
}
DEFINE_TEST_FUNCTION(isDate)
@@ -644,6 +846,7 @@ void tst_QScriptValue::isRegExp_test(const char*, const QScriptValue& value)
{
QFETCH(bool, expected);
QCOMPARE(value.isRegExp(), expected);
+ QCOMPARE(value.isRegExp(), expected);
}
DEFINE_TEST_FUNCTION(isRegExp)
@@ -662,6 +865,8 @@ void tst_QScriptValue::isArray_makeData(const char* expr)
isArray << "engine->evaluate(\"[]\")"
<< "engine->evaluate(\"Array.prototype\")"
<< "engine->evaluate(\"new Array()\")"
+ << "engine->newArray()"
+ << "engine->newArray(10)"
;
}
newRow(expr) << isArray.contains(expr);
@@ -671,6 +876,7 @@ void tst_QScriptValue::isArray_test(const char*, const QScriptValue& value)
{
QFETCH(bool, expected);
QCOMPARE(value.isArray(), expected);
+ QCOMPARE(value.isArray(), expected);
}
DEFINE_TEST_FUNCTION(isArray)
@@ -688,6 +894,10 @@ void tst_QScriptValue::isError_makeData(const char* expr)
if (isError.isEmpty()) {
isError << "engine->evaluate(\"Error.prototype\")"
<< "engine->evaluate(\"new Error()\")"
+ << "engine->evaluate(\"Undefined\")"
+ << "engine->evaluate(\"Null\")"
+ << "engine->evaluate(\"True\")"
+ << "engine->evaluate(\"False\")"
;
}
newRow(expr) << isError.contains(expr);
@@ -697,6 +907,7 @@ void tst_QScriptValue::isError_test(const char*, const QScriptValue& value)
{
QFETCH(bool, expected);
QCOMPARE(value.isError(), expected);
+ QCOMPARE(value.isError(), expected);
}
DEFINE_TEST_FUNCTION(isError)
@@ -816,8 +1027,45 @@ void tst_QScriptValue::toString_makeData(const char* expr)
toString.insert("engine->evaluate(\"new Object()\")", "[object Object]");
toString.insert("engine->evaluate(\"new Array()\")", "");
toString.insert("engine->evaluate(\"new Error()\")", "Error: Unknown error");
+ toString.insert("engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")", "22");
+ toString.insert("engine->evaluate(\"Undefined\")", "ReferenceError: Can't find variable: Undefined");
+ toString.insert("engine->evaluate(\"Null\")", "ReferenceError: Can't find variable: Null");
+ toString.insert("engine->evaluate(\"True\")", "ReferenceError: Can't find variable: True");
+ toString.insert("engine->evaluate(\"False\")", "ReferenceError: Can't find variable: False");
+ toString.insert("engine->evaluate(\"undefined\")", "undefined");
+ toString.insert("engine->evaluate(\"null\")", "null");
+ toString.insert("engine->evaluate(\"true\")", "true");
+ toString.insert("engine->evaluate(\"false\")", "false");
+ toString.insert("engine->evaluate(\"122\")", "122");
+ toString.insert("engine->evaluate(\"124\")", "124");
+ toString.insert("engine->evaluate(\"0\")", "0");
+ toString.insert("engine->evaluate(\"0.0\")", "0");
+ toString.insert("engine->evaluate(\"123.0\")", "123");
+ toString.insert("engine->evaluate(\"6.37e-8\")", "6.37e-8");
+ toString.insert("engine->evaluate(\"-6.37e-8\")", "-6.37e-8");
+ toString.insert("engine->evaluate(\"0x43211234\")", "1126240820");
+ toString.insert("engine->evaluate(\"0x10000\")", "65536");
+ toString.insert("engine->evaluate(\"0x10001\")", "65537");
+ toString.insert("engine->evaluate(\"NaN\")", "NaN");
+ toString.insert("engine->evaluate(\"Infinity\")", "Infinity");
+ toString.insert("engine->evaluate(\"-Infinity\")", "-Infinity");
+ toString.insert("engine->evaluate(\"'ciao'\")", "ciao");
+ toString.insert("engine->evaluate(\"''\")", "");
+ toString.insert("engine->evaluate(\"'0'\")", "0");
+ toString.insert("engine->evaluate(\"'123'\")", "123");
+ toString.insert("engine->evaluate(\"'12.4'\")", "12.4");
toString.insert("engine->nullValue()", "null");
toString.insert("engine->undefinedValue()", "undefined");
+ toString.insert("engine->newObject()", "[object Object]");
+ toString.insert("engine->newArray()", "");
+ toString.insert("engine->newArray(10)", ",,,,,,,,,");
+ toString.insert("engine->newDate(QDateTime())", "Invalid Date");
+ toString.insert("engine->newQMetaObject(&QObject::staticMetaObject)", "[object QMetaObject]");
+ toString.insert("engine->newVariant(QVariant())", "undefined");
+ toString.insert("engine->newVariant(QVariant(123))", "123");
+ toString.insert("engine->newVariant(QVariant(false))", "false");
+ toString.insert("engine->newQObject(0)", "null");
+ toString.insert("engine->newQObject(engine)", "QScriptEngine(name = \"\")");
}
newRow(expr) << toString.value(expr);
}
@@ -826,6 +1074,7 @@ void tst_QScriptValue::toString_test(const char*, const QScriptValue& value)
{
QFETCH(QString, expected);
QCOMPARE(value.toString(), expected);
+ QCOMPARE(value.toString(), expected);
}
DEFINE_TEST_FUNCTION(toString)
@@ -944,8 +1193,45 @@ void tst_QScriptValue::toNumber_makeData(const char* expr)
toNumber.insert("engine->evaluate(\"new Object()\")", qQNaN());
toNumber.insert("engine->evaluate(\"new Array()\")", 0);
toNumber.insert("engine->evaluate(\"new Error()\")", qQNaN());
+ toNumber.insert("engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")", 22);
+ toNumber.insert("engine->evaluate(\"Undefined\")", qQNaN());
+ toNumber.insert("engine->evaluate(\"Null\")", qQNaN());
+ toNumber.insert("engine->evaluate(\"True\")", qQNaN());
+ toNumber.insert("engine->evaluate(\"False\")", qQNaN());
+ toNumber.insert("engine->evaluate(\"undefined\")", qQNaN());
+ toNumber.insert("engine->evaluate(\"null\")", 0);
+ toNumber.insert("engine->evaluate(\"true\")", 1);
+ toNumber.insert("engine->evaluate(\"false\")", 0);
+ toNumber.insert("engine->evaluate(\"122\")", 122);
+ toNumber.insert("engine->evaluate(\"124\")", 124);
+ toNumber.insert("engine->evaluate(\"0\")", 0);
+ toNumber.insert("engine->evaluate(\"0.0\")", 0);
+ toNumber.insert("engine->evaluate(\"123.0\")", 123);
+ toNumber.insert("engine->evaluate(\"6.37e-8\")", 6.369999999999999e-08);
+ toNumber.insert("engine->evaluate(\"-6.37e-8\")", -6.369999999999999e-08);
+ toNumber.insert("engine->evaluate(\"0x43211234\")", 1126240820);
+ toNumber.insert("engine->evaluate(\"0x10000\")", 65536);
+ toNumber.insert("engine->evaluate(\"0x10001\")", 65537);
+ toNumber.insert("engine->evaluate(\"NaN\")", qQNaN());
+ toNumber.insert("engine->evaluate(\"Infinity\")", qInf());
+ toNumber.insert("engine->evaluate(\"-Infinity\")", qInf());
+ toNumber.insert("engine->evaluate(\"'ciao'\")", qQNaN());
+ toNumber.insert("engine->evaluate(\"''\")", 0);
+ toNumber.insert("engine->evaluate(\"'0'\")", 0);
+ toNumber.insert("engine->evaluate(\"'123'\")", 123);
+ toNumber.insert("engine->evaluate(\"'12.4'\")", 12.4);
toNumber.insert("engine->nullValue()", 0);
toNumber.insert("engine->undefinedValue()", qQNaN());
+ toNumber.insert("engine->newObject()", qQNaN());
+ toNumber.insert("engine->newArray()", 0);
+ toNumber.insert("engine->newArray(10)", qQNaN());
+ toNumber.insert("engine->newDate(QDateTime())", qQNaN());
+ toNumber.insert("engine->newQMetaObject(&QObject::staticMetaObject)", qQNaN());
+ toNumber.insert("engine->newVariant(QVariant())", qQNaN());
+ toNumber.insert("engine->newVariant(QVariant(123))", 123);
+ toNumber.insert("engine->newVariant(QVariant(false))", 0);
+ toNumber.insert("engine->newQObject(0)", 0);
+ toNumber.insert("engine->newQObject(engine)", qQNaN());
}
newRow(expr) << toNumber.value(expr);
}
@@ -959,9 +1245,11 @@ void tst_QScriptValue::toNumber_test(const char*, const QScriptValue& value)
}
if (qIsInf(expected)) {
QVERIFY(qIsInf(value.toNumber()));
+ QVERIFY(qIsInf(value.toNumber()));
return;
}
QCOMPARE(value.toNumber(), expected);
+ QCOMPARE(value.toNumber(), expected);
}
DEFINE_TEST_FUNCTION(toNumber)
@@ -1080,8 +1368,45 @@ void tst_QScriptValue::toBool_makeData(const char* expr)
toBool.insert("engine->evaluate(\"new Object()\")", true);
toBool.insert("engine->evaluate(\"new Array()\")", true);
toBool.insert("engine->evaluate(\"new Error()\")", true);
+ toBool.insert("engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")", true);
+ toBool.insert("engine->evaluate(\"Undefined\")", true);
+ toBool.insert("engine->evaluate(\"Null\")", true);
+ toBool.insert("engine->evaluate(\"True\")", true);
+ toBool.insert("engine->evaluate(\"False\")", true);
+ toBool.insert("engine->evaluate(\"undefined\")", false);
+ toBool.insert("engine->evaluate(\"null\")", false);
+ toBool.insert("engine->evaluate(\"true\")", true);
+ toBool.insert("engine->evaluate(\"false\")", false);
+ toBool.insert("engine->evaluate(\"122\")", true);
+ toBool.insert("engine->evaluate(\"124\")", true);
+ toBool.insert("engine->evaluate(\"0\")", false);
+ toBool.insert("engine->evaluate(\"0.0\")", false);
+ toBool.insert("engine->evaluate(\"123.0\")", true);
+ toBool.insert("engine->evaluate(\"6.37e-8\")", true);
+ toBool.insert("engine->evaluate(\"-6.37e-8\")", true);
+ toBool.insert("engine->evaluate(\"0x43211234\")", true);
+ toBool.insert("engine->evaluate(\"0x10000\")", true);
+ toBool.insert("engine->evaluate(\"0x10001\")", true);
+ toBool.insert("engine->evaluate(\"NaN\")", false);
+ toBool.insert("engine->evaluate(\"Infinity\")", true);
+ toBool.insert("engine->evaluate(\"-Infinity\")", true);
+ toBool.insert("engine->evaluate(\"'ciao'\")", true);
+ toBool.insert("engine->evaluate(\"''\")", false);
+ toBool.insert("engine->evaluate(\"'0'\")", true);
+ toBool.insert("engine->evaluate(\"'123'\")", true);
+ toBool.insert("engine->evaluate(\"'12.4'\")", true);
toBool.insert("engine->nullValue()", false);
toBool.insert("engine->undefinedValue()", false);
+ toBool.insert("engine->newObject()", true);
+ toBool.insert("engine->newArray()", true);
+ toBool.insert("engine->newArray(10)", true);
+ toBool.insert("engine->newDate(QDateTime())", true);
+ toBool.insert("engine->newQMetaObject(&QObject::staticMetaObject)", true);
+ toBool.insert("engine->newVariant(QVariant())", true);
+ toBool.insert("engine->newVariant(QVariant(123))", true);
+ toBool.insert("engine->newVariant(QVariant(false))", true);
+ toBool.insert("engine->newQObject(0)", false);
+ toBool.insert("engine->newQObject(engine)", true);
}
newRow(expr) << toBool.value(expr);
}
@@ -1090,6 +1415,7 @@ void tst_QScriptValue::toBool_test(const char*, const QScriptValue& value)
{
QFETCH(bool, expected);
QCOMPARE(value.toBool(), expected);
+ QCOMPARE(value.toBool(), expected);
}
DEFINE_TEST_FUNCTION(toBool)
@@ -1208,8 +1534,45 @@ void tst_QScriptValue::toBoolean_makeData(const char* expr)
toBoolean.insert("engine->evaluate(\"new Object()\")", true);
toBoolean.insert("engine->evaluate(\"new Array()\")", true);
toBoolean.insert("engine->evaluate(\"new Error()\")", true);
+ toBoolean.insert("engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")", true);
+ toBoolean.insert("engine->evaluate(\"Undefined\")", true);
+ toBoolean.insert("engine->evaluate(\"Null\")", true);
+ toBoolean.insert("engine->evaluate(\"True\")", true);
+ toBoolean.insert("engine->evaluate(\"False\")", true);
+ toBoolean.insert("engine->evaluate(\"undefined\")", false);
+ toBoolean.insert("engine->evaluate(\"null\")", false);
+ toBoolean.insert("engine->evaluate(\"true\")", true);
+ toBoolean.insert("engine->evaluate(\"false\")", false);
+ toBoolean.insert("engine->evaluate(\"122\")", true);
+ toBoolean.insert("engine->evaluate(\"124\")", true);
+ toBoolean.insert("engine->evaluate(\"0\")", false);
+ toBoolean.insert("engine->evaluate(\"0.0\")", false);
+ toBoolean.insert("engine->evaluate(\"123.0\")", true);
+ toBoolean.insert("engine->evaluate(\"6.37e-8\")", true);
+ toBoolean.insert("engine->evaluate(\"-6.37e-8\")", true);
+ toBoolean.insert("engine->evaluate(\"0x43211234\")", true);
+ toBoolean.insert("engine->evaluate(\"0x10000\")", true);
+ toBoolean.insert("engine->evaluate(\"0x10001\")", true);
+ toBoolean.insert("engine->evaluate(\"NaN\")", false);
+ toBoolean.insert("engine->evaluate(\"Infinity\")", true);
+ toBoolean.insert("engine->evaluate(\"-Infinity\")", true);
+ toBoolean.insert("engine->evaluate(\"'ciao'\")", true);
+ toBoolean.insert("engine->evaluate(\"''\")", false);
+ toBoolean.insert("engine->evaluate(\"'0'\")", true);
+ toBoolean.insert("engine->evaluate(\"'123'\")", true);
+ toBoolean.insert("engine->evaluate(\"'12.4'\")", true);
toBoolean.insert("engine->nullValue()", false);
toBoolean.insert("engine->undefinedValue()", false);
+ toBoolean.insert("engine->newObject()", true);
+ toBoolean.insert("engine->newArray()", true);
+ toBoolean.insert("engine->newArray(10)", true);
+ toBoolean.insert("engine->newDate(QDateTime())", true);
+ toBoolean.insert("engine->newQMetaObject(&QObject::staticMetaObject)", true);
+ toBoolean.insert("engine->newVariant(QVariant())", true);
+ toBoolean.insert("engine->newVariant(QVariant(123))", true);
+ toBoolean.insert("engine->newVariant(QVariant(false))", true);
+ toBoolean.insert("engine->newQObject(0)", false);
+ toBoolean.insert("engine->newQObject(engine)", true);
}
newRow(expr) << toBoolean.value(expr);
}
@@ -1218,6 +1581,7 @@ void tst_QScriptValue::toBoolean_test(const char*, const QScriptValue& value)
{
QFETCH(bool, expected);
QCOMPARE(value.toBoolean(), expected);
+ QCOMPARE(value.toBoolean(), expected);
}
DEFINE_TEST_FUNCTION(toBoolean)
@@ -1336,8 +1700,45 @@ void tst_QScriptValue::toInteger_makeData(const char* expr)
toInteger.insert("engine->evaluate(\"new Object()\")", 0);
toInteger.insert("engine->evaluate(\"new Array()\")", 0);
toInteger.insert("engine->evaluate(\"new Error()\")", 0);
+ toInteger.insert("engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")", 22);
+ toInteger.insert("engine->evaluate(\"Undefined\")", 0);
+ toInteger.insert("engine->evaluate(\"Null\")", 0);
+ toInteger.insert("engine->evaluate(\"True\")", 0);
+ toInteger.insert("engine->evaluate(\"False\")", 0);
+ toInteger.insert("engine->evaluate(\"undefined\")", 0);
+ toInteger.insert("engine->evaluate(\"null\")", 0);
+ toInteger.insert("engine->evaluate(\"true\")", 1);
+ toInteger.insert("engine->evaluate(\"false\")", 0);
+ toInteger.insert("engine->evaluate(\"122\")", 122);
+ toInteger.insert("engine->evaluate(\"124\")", 124);
+ toInteger.insert("engine->evaluate(\"0\")", 0);
+ toInteger.insert("engine->evaluate(\"0.0\")", 0);
+ toInteger.insert("engine->evaluate(\"123.0\")", 123);
+ toInteger.insert("engine->evaluate(\"6.37e-8\")", 0);
+ toInteger.insert("engine->evaluate(\"-6.37e-8\")", 0);
+ toInteger.insert("engine->evaluate(\"0x43211234\")", 1126240820);
+ toInteger.insert("engine->evaluate(\"0x10000\")", 65536);
+ toInteger.insert("engine->evaluate(\"0x10001\")", 65537);
+ toInteger.insert("engine->evaluate(\"NaN\")", 0);
+ toInteger.insert("engine->evaluate(\"Infinity\")", qInf());
+ toInteger.insert("engine->evaluate(\"-Infinity\")", qInf());
+ toInteger.insert("engine->evaluate(\"'ciao'\")", 0);
+ toInteger.insert("engine->evaluate(\"''\")", 0);
+ toInteger.insert("engine->evaluate(\"'0'\")", 0);
+ toInteger.insert("engine->evaluate(\"'123'\")", 123);
+ toInteger.insert("engine->evaluate(\"'12.4'\")", 12);
toInteger.insert("engine->nullValue()", 0);
toInteger.insert("engine->undefinedValue()", 0);
+ toInteger.insert("engine->newObject()", 0);
+ toInteger.insert("engine->newArray()", 0);
+ toInteger.insert("engine->newArray(10)", 0);
+ toInteger.insert("engine->newDate(QDateTime())", 0);
+ toInteger.insert("engine->newQMetaObject(&QObject::staticMetaObject)", 0);
+ toInteger.insert("engine->newVariant(QVariant())", 0);
+ toInteger.insert("engine->newVariant(QVariant(123))", 123);
+ toInteger.insert("engine->newVariant(QVariant(false))", 0);
+ toInteger.insert("engine->newQObject(0)", 0);
+ toInteger.insert("engine->newQObject(engine)", 0);
}
newRow(expr) << toInteger.value(expr);
}
@@ -1347,9 +1748,11 @@ void tst_QScriptValue::toInteger_test(const char*, const QScriptValue& value)
QFETCH(qsreal, expected);
if (qIsInf(expected)) {
QVERIFY(qIsInf(value.toInteger()));
+ QVERIFY(qIsInf(value.toInteger()));
return;
}
QCOMPARE(value.toInteger(), expected);
+ QCOMPARE(value.toInteger(), expected);
}
DEFINE_TEST_FUNCTION(toInteger)
@@ -1468,8 +1871,45 @@ void tst_QScriptValue::toInt32_makeData(const char* expr)
toInt32.insert("engine->evaluate(\"new Object()\")", 0);
toInt32.insert("engine->evaluate(\"new Array()\")", 0);
toInt32.insert("engine->evaluate(\"new Error()\")", 0);
+ toInt32.insert("engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")", 22);
+ toInt32.insert("engine->evaluate(\"Undefined\")", 0);
+ toInt32.insert("engine->evaluate(\"Null\")", 0);
+ toInt32.insert("engine->evaluate(\"True\")", 0);
+ toInt32.insert("engine->evaluate(\"False\")", 0);
+ toInt32.insert("engine->evaluate(\"undefined\")", 0);
+ toInt32.insert("engine->evaluate(\"null\")", 0);
+ toInt32.insert("engine->evaluate(\"true\")", 1);
+ toInt32.insert("engine->evaluate(\"false\")", 0);
+ toInt32.insert("engine->evaluate(\"122\")", 122);
+ toInt32.insert("engine->evaluate(\"124\")", 124);
+ toInt32.insert("engine->evaluate(\"0\")", 0);
+ toInt32.insert("engine->evaluate(\"0.0\")", 0);
+ toInt32.insert("engine->evaluate(\"123.0\")", 123);
+ toInt32.insert("engine->evaluate(\"6.37e-8\")", 0);
+ toInt32.insert("engine->evaluate(\"-6.37e-8\")", 0);
+ toInt32.insert("engine->evaluate(\"0x43211234\")", 1126240820);
+ toInt32.insert("engine->evaluate(\"0x10000\")", 65536);
+ toInt32.insert("engine->evaluate(\"0x10001\")", 65537);
+ toInt32.insert("engine->evaluate(\"NaN\")", 0);
+ toInt32.insert("engine->evaluate(\"Infinity\")", 0);
+ toInt32.insert("engine->evaluate(\"-Infinity\")", 0);
+ toInt32.insert("engine->evaluate(\"'ciao'\")", 0);
+ toInt32.insert("engine->evaluate(\"''\")", 0);
+ toInt32.insert("engine->evaluate(\"'0'\")", 0);
+ toInt32.insert("engine->evaluate(\"'123'\")", 123);
+ toInt32.insert("engine->evaluate(\"'12.4'\")", 12);
toInt32.insert("engine->nullValue()", 0);
toInt32.insert("engine->undefinedValue()", 0);
+ toInt32.insert("engine->newObject()", 0);
+ toInt32.insert("engine->newArray()", 0);
+ toInt32.insert("engine->newArray(10)", 0);
+ toInt32.insert("engine->newDate(QDateTime())", 0);
+ toInt32.insert("engine->newQMetaObject(&QObject::staticMetaObject)", 0);
+ toInt32.insert("engine->newVariant(QVariant())", 0);
+ toInt32.insert("engine->newVariant(QVariant(123))", 123);
+ toInt32.insert("engine->newVariant(QVariant(false))", 0);
+ toInt32.insert("engine->newQObject(0)", 0);
+ toInt32.insert("engine->newQObject(engine)", 0);
}
newRow(expr) << toInt32.value(expr);
}
@@ -1478,6 +1918,7 @@ void tst_QScriptValue::toInt32_test(const char*, const QScriptValue& value)
{
QFETCH(qint32, expected);
QCOMPARE(value.toInt32(), expected);
+ QCOMPARE(value.toInt32(), expected);
}
DEFINE_TEST_FUNCTION(toInt32)
@@ -1596,8 +2037,45 @@ void tst_QScriptValue::toUInt32_makeData(const char* expr)
toUInt32.insert("engine->evaluate(\"new Object()\")", 0);
toUInt32.insert("engine->evaluate(\"new Array()\")", 0);
toUInt32.insert("engine->evaluate(\"new Error()\")", 0);
+ toUInt32.insert("engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")", 22);
+ toUInt32.insert("engine->evaluate(\"Undefined\")", 0);
+ toUInt32.insert("engine->evaluate(\"Null\")", 0);
+ toUInt32.insert("engine->evaluate(\"True\")", 0);
+ toUInt32.insert("engine->evaluate(\"False\")", 0);
+ toUInt32.insert("engine->evaluate(\"undefined\")", 0);
+ toUInt32.insert("engine->evaluate(\"null\")", 0);
+ toUInt32.insert("engine->evaluate(\"true\")", 1);
+ toUInt32.insert("engine->evaluate(\"false\")", 0);
+ toUInt32.insert("engine->evaluate(\"122\")", 122);
+ toUInt32.insert("engine->evaluate(\"124\")", 124);
+ toUInt32.insert("engine->evaluate(\"0\")", 0);
+ toUInt32.insert("engine->evaluate(\"0.0\")", 0);
+ toUInt32.insert("engine->evaluate(\"123.0\")", 123);
+ toUInt32.insert("engine->evaluate(\"6.37e-8\")", 0);
+ toUInt32.insert("engine->evaluate(\"-6.37e-8\")", 0);
+ toUInt32.insert("engine->evaluate(\"0x43211234\")", 1126240820);
+ toUInt32.insert("engine->evaluate(\"0x10000\")", 65536);
+ toUInt32.insert("engine->evaluate(\"0x10001\")", 65537);
+ toUInt32.insert("engine->evaluate(\"NaN\")", 0);
+ toUInt32.insert("engine->evaluate(\"Infinity\")", 0);
+ toUInt32.insert("engine->evaluate(\"-Infinity\")", 0);
+ toUInt32.insert("engine->evaluate(\"'ciao'\")", 0);
+ toUInt32.insert("engine->evaluate(\"''\")", 0);
+ toUInt32.insert("engine->evaluate(\"'0'\")", 0);
+ toUInt32.insert("engine->evaluate(\"'123'\")", 123);
+ toUInt32.insert("engine->evaluate(\"'12.4'\")", 12);
toUInt32.insert("engine->nullValue()", 0);
toUInt32.insert("engine->undefinedValue()", 0);
+ toUInt32.insert("engine->newObject()", 0);
+ toUInt32.insert("engine->newArray()", 0);
+ toUInt32.insert("engine->newArray(10)", 0);
+ toUInt32.insert("engine->newDate(QDateTime())", 0);
+ toUInt32.insert("engine->newQMetaObject(&QObject::staticMetaObject)", 0);
+ toUInt32.insert("engine->newVariant(QVariant())", 0);
+ toUInt32.insert("engine->newVariant(QVariant(123))", 123);
+ toUInt32.insert("engine->newVariant(QVariant(false))", 0);
+ toUInt32.insert("engine->newQObject(0)", 0);
+ toUInt32.insert("engine->newQObject(engine)", 0);
}
newRow(expr) << toUInt32.value(expr);
}
@@ -1606,6 +2084,7 @@ void tst_QScriptValue::toUInt32_test(const char*, const QScriptValue& value)
{
QFETCH(quint32, expected);
QCOMPARE(value.toUInt32(), expected);
+ QCOMPARE(value.toUInt32(), expected);
}
DEFINE_TEST_FUNCTION(toUInt32)
@@ -1724,8 +2203,45 @@ void tst_QScriptValue::toUInt16_makeData(const char* expr)
toUInt16.insert("engine->evaluate(\"new Object()\")", 0);
toUInt16.insert("engine->evaluate(\"new Array()\")", 0);
toUInt16.insert("engine->evaluate(\"new Error()\")", 0);
+ toUInt16.insert("engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")", 22);
+ toUInt16.insert("engine->evaluate(\"Undefined\")", 0);
+ toUInt16.insert("engine->evaluate(\"Null\")", 0);
+ toUInt16.insert("engine->evaluate(\"True\")", 0);
+ toUInt16.insert("engine->evaluate(\"False\")", 0);
+ toUInt16.insert("engine->evaluate(\"undefined\")", 0);
+ toUInt16.insert("engine->evaluate(\"null\")", 0);
+ toUInt16.insert("engine->evaluate(\"true\")", 1);
+ toUInt16.insert("engine->evaluate(\"false\")", 0);
+ toUInt16.insert("engine->evaluate(\"122\")", 122);
+ toUInt16.insert("engine->evaluate(\"124\")", 124);
+ toUInt16.insert("engine->evaluate(\"0\")", 0);
+ toUInt16.insert("engine->evaluate(\"0.0\")", 0);
+ toUInt16.insert("engine->evaluate(\"123.0\")", 123);
+ toUInt16.insert("engine->evaluate(\"6.37e-8\")", 0);
+ toUInt16.insert("engine->evaluate(\"-6.37e-8\")", 0);
+ toUInt16.insert("engine->evaluate(\"0x43211234\")", 4660);
+ toUInt16.insert("engine->evaluate(\"0x10000\")", 0);
+ toUInt16.insert("engine->evaluate(\"0x10001\")", 1);
+ toUInt16.insert("engine->evaluate(\"NaN\")", 0);
+ toUInt16.insert("engine->evaluate(\"Infinity\")", 0);
+ toUInt16.insert("engine->evaluate(\"-Infinity\")", 0);
+ toUInt16.insert("engine->evaluate(\"'ciao'\")", 0);
+ toUInt16.insert("engine->evaluate(\"''\")", 0);
+ toUInt16.insert("engine->evaluate(\"'0'\")", 0);
+ toUInt16.insert("engine->evaluate(\"'123'\")", 123);
+ toUInt16.insert("engine->evaluate(\"'12.4'\")", 12);
toUInt16.insert("engine->nullValue()", 0);
toUInt16.insert("engine->undefinedValue()", 0);
+ toUInt16.insert("engine->newObject()", 0);
+ toUInt16.insert("engine->newArray()", 0);
+ toUInt16.insert("engine->newArray(10)", 0);
+ toUInt16.insert("engine->newDate(QDateTime())", 0);
+ toUInt16.insert("engine->newQMetaObject(&QObject::staticMetaObject)", 0);
+ toUInt16.insert("engine->newVariant(QVariant())", 0);
+ toUInt16.insert("engine->newVariant(QVariant(123))", 123);
+ toUInt16.insert("engine->newVariant(QVariant(false))", 0);
+ toUInt16.insert("engine->newQObject(0)", 0);
+ toUInt16.insert("engine->newQObject(engine)", 0);
}
newRow(expr) << toUInt16.value(expr);
}
@@ -1734,6 +2250,7 @@ void tst_QScriptValue::toUInt16_test(const char*, const QScriptValue& value)
{
QFETCH(quint16, expected);
QCOMPARE(value.toUInt16(), expected);
+ QCOMPARE(value.toUInt16(), expected);
}
DEFINE_TEST_FUNCTION(toUInt16)
@@ -1758,8 +2275,11 @@ void tst_QScriptValue::equals_makeData(const char *expr)
equals.insert("QScriptValue(QScriptValue::UndefinedValue) <=> QScriptValue(engine, QScriptValue::UndefinedValue)");
equals.insert("QScriptValue(QScriptValue::UndefinedValue) <=> QScriptValue(engine, QScriptValue::NullValue)");
equals.insert("QScriptValue(QScriptValue::UndefinedValue) <=> engine->evaluate(\"{}\")");
+ equals.insert("QScriptValue(QScriptValue::UndefinedValue) <=> engine->evaluate(\"undefined\")");
+ equals.insert("QScriptValue(QScriptValue::UndefinedValue) <=> engine->evaluate(\"null\")");
equals.insert("QScriptValue(QScriptValue::UndefinedValue) <=> engine->nullValue()");
equals.insert("QScriptValue(QScriptValue::UndefinedValue) <=> engine->undefinedValue()");
+ equals.insert("QScriptValue(QScriptValue::UndefinedValue) <=> engine->newQObject(0)");
equals.insert("QScriptValue(QScriptValue::NullValue) <=> QScriptValue(QScriptValue::UndefinedValue)");
equals.insert("QScriptValue(QScriptValue::NullValue) <=> QScriptValue(QScriptValue::NullValue)");
equals.insert("QScriptValue(QScriptValue::NullValue) <=> QScriptValue(0, QScriptValue::UndefinedValue)");
@@ -1767,11 +2287,15 @@ void tst_QScriptValue::equals_makeData(const char *expr)
equals.insert("QScriptValue(QScriptValue::NullValue) <=> QScriptValue(engine, QScriptValue::UndefinedValue)");
equals.insert("QScriptValue(QScriptValue::NullValue) <=> QScriptValue(engine, QScriptValue::NullValue)");
equals.insert("QScriptValue(QScriptValue::NullValue) <=> engine->evaluate(\"{}\")");
+ equals.insert("QScriptValue(QScriptValue::NullValue) <=> engine->evaluate(\"undefined\")");
+ equals.insert("QScriptValue(QScriptValue::NullValue) <=> engine->evaluate(\"null\")");
equals.insert("QScriptValue(QScriptValue::NullValue) <=> engine->nullValue()");
equals.insert("QScriptValue(QScriptValue::NullValue) <=> engine->undefinedValue()");
+ equals.insert("QScriptValue(QScriptValue::NullValue) <=> engine->newQObject(0)");
equals.insert("QScriptValue(true) <=> QScriptValue(true)");
equals.insert("QScriptValue(true) <=> QScriptValue(0, true)");
equals.insert("QScriptValue(true) <=> QScriptValue(engine, true)");
+ equals.insert("QScriptValue(true) <=> engine->evaluate(\"true\")");
equals.insert("QScriptValue(false) <=> QScriptValue(false)");
equals.insert("QScriptValue(false) <=> QScriptValue(0)");
equals.insert("QScriptValue(false) <=> QScriptValue(0.0)");
@@ -1793,12 +2317,21 @@ void tst_QScriptValue::equals_makeData(const char *expr)
equals.insert("QScriptValue(false) <=> engine->evaluate(\"[]\")");
equals.insert("QScriptValue(false) <=> engine->evaluate(\"Array.prototype\")");
equals.insert("QScriptValue(false) <=> engine->evaluate(\"new Array()\")");
+ equals.insert("QScriptValue(false) <=> engine->evaluate(\"false\")");
+ equals.insert("QScriptValue(false) <=> engine->evaluate(\"0\")");
+ equals.insert("QScriptValue(false) <=> engine->evaluate(\"0.0\")");
+ equals.insert("QScriptValue(false) <=> engine->evaluate(\"''\")");
+ equals.insert("QScriptValue(false) <=> engine->evaluate(\"'0'\")");
+ equals.insert("QScriptValue(false) <=> engine->newArray()");
+ equals.insert("QScriptValue(false) <=> engine->newVariant(QVariant(false))");
equals.insert("QScriptValue(int(122)) <=> QScriptValue(int(122))");
equals.insert("QScriptValue(int(122)) <=> QScriptValue(0, int(122))");
equals.insert("QScriptValue(int(122)) <=> QScriptValue(engine, int(122))");
+ equals.insert("QScriptValue(int(122)) <=> engine->evaluate(\"122\")");
equals.insert("QScriptValue(uint(124)) <=> QScriptValue(uint(124))");
equals.insert("QScriptValue(uint(124)) <=> QScriptValue(0, uint(124))");
equals.insert("QScriptValue(uint(124)) <=> QScriptValue(engine, uint(124))");
+ equals.insert("QScriptValue(uint(124)) <=> engine->evaluate(\"124\")");
equals.insert("QScriptValue(0) <=> QScriptValue(false)");
equals.insert("QScriptValue(0) <=> QScriptValue(0)");
equals.insert("QScriptValue(0) <=> QScriptValue(0.0)");
@@ -1820,6 +2353,13 @@ void tst_QScriptValue::equals_makeData(const char *expr)
equals.insert("QScriptValue(0) <=> engine->evaluate(\"[]\")");
equals.insert("QScriptValue(0) <=> engine->evaluate(\"Array.prototype\")");
equals.insert("QScriptValue(0) <=> engine->evaluate(\"new Array()\")");
+ equals.insert("QScriptValue(0) <=> engine->evaluate(\"false\")");
+ equals.insert("QScriptValue(0) <=> engine->evaluate(\"0\")");
+ equals.insert("QScriptValue(0) <=> engine->evaluate(\"0.0\")");
+ equals.insert("QScriptValue(0) <=> engine->evaluate(\"''\")");
+ equals.insert("QScriptValue(0) <=> engine->evaluate(\"'0'\")");
+ equals.insert("QScriptValue(0) <=> engine->newArray()");
+ equals.insert("QScriptValue(0) <=> engine->newVariant(QVariant(false))");
equals.insert("QScriptValue(0.0) <=> QScriptValue(false)");
equals.insert("QScriptValue(0.0) <=> QScriptValue(0)");
equals.insert("QScriptValue(0.0) <=> QScriptValue(0.0)");
@@ -1841,39 +2381,56 @@ void tst_QScriptValue::equals_makeData(const char *expr)
equals.insert("QScriptValue(0.0) <=> engine->evaluate(\"[]\")");
equals.insert("QScriptValue(0.0) <=> engine->evaluate(\"Array.prototype\")");
equals.insert("QScriptValue(0.0) <=> engine->evaluate(\"new Array()\")");
+ equals.insert("QScriptValue(0.0) <=> engine->evaluate(\"false\")");
+ equals.insert("QScriptValue(0.0) <=> engine->evaluate(\"0\")");
+ equals.insert("QScriptValue(0.0) <=> engine->evaluate(\"0.0\")");
+ equals.insert("QScriptValue(0.0) <=> engine->evaluate(\"''\")");
+ equals.insert("QScriptValue(0.0) <=> engine->evaluate(\"'0'\")");
+ equals.insert("QScriptValue(0.0) <=> engine->newArray()");
+ equals.insert("QScriptValue(0.0) <=> engine->newVariant(QVariant(false))");
equals.insert("QScriptValue(123.0) <=> QScriptValue(123.0)");
equals.insert("QScriptValue(123.0) <=> QScriptValue(QString(\"123\"))");
equals.insert("QScriptValue(123.0) <=> QScriptValue(0, 123.0)");
equals.insert("QScriptValue(123.0) <=> QScriptValue(0, QString(\"123\"))");
equals.insert("QScriptValue(123.0) <=> QScriptValue(engine, 123.0)");
equals.insert("QScriptValue(123.0) <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("QScriptValue(123.0) <=> engine->evaluate(\"123.0\")");
+ equals.insert("QScriptValue(123.0) <=> engine->evaluate(\"'123'\")");
+ equals.insert("QScriptValue(123.0) <=> engine->newVariant(QVariant(123))");
equals.insert("QScriptValue(6.37e-8) <=> QScriptValue(6.37e-8)");
equals.insert("QScriptValue(6.37e-8) <=> QScriptValue(0, 6.37e-8)");
equals.insert("QScriptValue(6.37e-8) <=> QScriptValue(engine, 6.37e-8)");
+ equals.insert("QScriptValue(6.37e-8) <=> engine->evaluate(\"6.37e-8\")");
equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(-6.37e-8)");
equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(0, -6.37e-8)");
equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(engine, -6.37e-8)");
+ equals.insert("QScriptValue(-6.37e-8) <=> engine->evaluate(\"-6.37e-8\")");
equals.insert("QScriptValue(0x43211234) <=> QScriptValue(0x43211234)");
equals.insert("QScriptValue(0x43211234) <=> QScriptValue(0, 0x43211234)");
equals.insert("QScriptValue(0x43211234) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(0x43211234) <=> engine->evaluate(\"0x43211234\")");
equals.insert("QScriptValue(0x10000) <=> QScriptValue(0x10000)");
equals.insert("QScriptValue(0x10000) <=> QScriptValue(0, 0x10000)");
equals.insert("QScriptValue(0x10000) <=> QScriptValue(engine, 0x10000)");
+ equals.insert("QScriptValue(0x10000) <=> engine->evaluate(\"0x10000\")");
equals.insert("QScriptValue(0x10001) <=> QScriptValue(0x10001)");
equals.insert("QScriptValue(0x10001) <=> QScriptValue(0, 0x10001)");
equals.insert("QScriptValue(0x10001) <=> QScriptValue(engine, 0x10001)");
+ equals.insert("QScriptValue(0x10001) <=> engine->evaluate(\"0x10001\")");
equals.insert("QScriptValue(qInf()) <=> QScriptValue(qInf())");
equals.insert("QScriptValue(qInf()) <=> QScriptValue(\"Infinity\")");
equals.insert("QScriptValue(qInf()) <=> QScriptValue(0, qInf())");
equals.insert("QScriptValue(qInf()) <=> QScriptValue(0, \"Infinity\")");
equals.insert("QScriptValue(qInf()) <=> QScriptValue(engine, qInf())");
equals.insert("QScriptValue(qInf()) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(qInf()) <=> engine->evaluate(\"Infinity\")");
equals.insert("QScriptValue(-qInf()) <=> QScriptValue(-qInf())");
equals.insert("QScriptValue(-qInf()) <=> QScriptValue(\"-Infinity\")");
equals.insert("QScriptValue(-qInf()) <=> QScriptValue(0, -qInf())");
equals.insert("QScriptValue(-qInf()) <=> QScriptValue(0, \"-Infinity\")");
equals.insert("QScriptValue(-qInf()) <=> QScriptValue(engine, -qInf())");
equals.insert("QScriptValue(-qInf()) <=> QScriptValue(engine, \"-Infinity\")");
+ equals.insert("QScriptValue(-qInf()) <=> engine->evaluate(\"-Infinity\")");
equals.insert("QScriptValue(\"NaN\") <=> QScriptValue(\"NaN\")");
equals.insert("QScriptValue(\"NaN\") <=> QScriptValue(0, \"NaN\")");
equals.insert("QScriptValue(\"NaN\") <=> QScriptValue(engine, \"NaN\")");
@@ -1883,24 +2440,28 @@ void tst_QScriptValue::equals_makeData(const char *expr)
equals.insert("QScriptValue(\"Infinity\") <=> QScriptValue(0, \"Infinity\")");
equals.insert("QScriptValue(\"Infinity\") <=> QScriptValue(engine, qInf())");
equals.insert("QScriptValue(\"Infinity\") <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(\"Infinity\") <=> engine->evaluate(\"Infinity\")");
equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(-qInf())");
equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(\"-Infinity\")");
equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(0, -qInf())");
equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(0, \"-Infinity\")");
equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(engine, -qInf())");
equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(engine, \"-Infinity\")");
+ equals.insert("QScriptValue(\"-Infinity\") <=> engine->evaluate(\"-Infinity\")");
equals.insert("QScriptValue(\"ciao\") <=> QScriptValue(\"ciao\")");
equals.insert("QScriptValue(\"ciao\") <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
equals.insert("QScriptValue(\"ciao\") <=> QScriptValue(0, \"ciao\")");
equals.insert("QScriptValue(\"ciao\") <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
equals.insert("QScriptValue(\"ciao\") <=> QScriptValue(engine, \"ciao\")");
equals.insert("QScriptValue(\"ciao\") <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(\"ciao\") <=> engine->evaluate(\"'ciao'\")");
equals.insert("QScriptValue(QString::fromLatin1(\"ciao\")) <=> QScriptValue(\"ciao\")");
equals.insert("QScriptValue(QString::fromLatin1(\"ciao\")) <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
equals.insert("QScriptValue(QString::fromLatin1(\"ciao\")) <=> QScriptValue(0, \"ciao\")");
equals.insert("QScriptValue(QString::fromLatin1(\"ciao\")) <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
equals.insert("QScriptValue(QString::fromLatin1(\"ciao\")) <=> QScriptValue(engine, \"ciao\")");
equals.insert("QScriptValue(QString::fromLatin1(\"ciao\")) <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(QString::fromLatin1(\"ciao\")) <=> engine->evaluate(\"'ciao'\")");
equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(false)");
equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(0)");
equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(0.0)");
@@ -1919,6 +2480,12 @@ void tst_QScriptValue::equals_makeData(const char *expr)
equals.insert("QScriptValue(QString(\"\")) <=> engine->evaluate(\"[]\")");
equals.insert("QScriptValue(QString(\"\")) <=> engine->evaluate(\"Array.prototype\")");
equals.insert("QScriptValue(QString(\"\")) <=> engine->evaluate(\"new Array()\")");
+ equals.insert("QScriptValue(QString(\"\")) <=> engine->evaluate(\"false\")");
+ equals.insert("QScriptValue(QString(\"\")) <=> engine->evaluate(\"0\")");
+ equals.insert("QScriptValue(QString(\"\")) <=> engine->evaluate(\"0.0\")");
+ equals.insert("QScriptValue(QString(\"\")) <=> engine->evaluate(\"''\")");
+ equals.insert("QScriptValue(QString(\"\")) <=> engine->newArray()");
+ equals.insert("QScriptValue(QString(\"\")) <=> engine->newVariant(QVariant(false))");
equals.insert("QScriptValue(QString()) <=> QScriptValue(false)");
equals.insert("QScriptValue(QString()) <=> QScriptValue(0)");
equals.insert("QScriptValue(QString()) <=> QScriptValue(0.0)");
@@ -1937,6 +2504,12 @@ void tst_QScriptValue::equals_makeData(const char *expr)
equals.insert("QScriptValue(QString()) <=> engine->evaluate(\"[]\")");
equals.insert("QScriptValue(QString()) <=> engine->evaluate(\"Array.prototype\")");
equals.insert("QScriptValue(QString()) <=> engine->evaluate(\"new Array()\")");
+ equals.insert("QScriptValue(QString()) <=> engine->evaluate(\"false\")");
+ equals.insert("QScriptValue(QString()) <=> engine->evaluate(\"0\")");
+ equals.insert("QScriptValue(QString()) <=> engine->evaluate(\"0.0\")");
+ equals.insert("QScriptValue(QString()) <=> engine->evaluate(\"''\")");
+ equals.insert("QScriptValue(QString()) <=> engine->newArray()");
+ equals.insert("QScriptValue(QString()) <=> engine->newVariant(QVariant(false))");
equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(false)");
equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(0)");
equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(0.0)");
@@ -1949,13 +2522,22 @@ void tst_QScriptValue::equals_makeData(const char *expr)
equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(engine, 0)");
equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(engine, 0.0)");
equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(engine, QString(\"0\"))");
+ equals.insert("QScriptValue(QString(\"0\")) <=> engine->evaluate(\"false\")");
+ equals.insert("QScriptValue(QString(\"0\")) <=> engine->evaluate(\"0\")");
+ equals.insert("QScriptValue(QString(\"0\")) <=> engine->evaluate(\"0.0\")");
+ equals.insert("QScriptValue(QString(\"0\")) <=> engine->evaluate(\"'0'\")");
+ equals.insert("QScriptValue(QString(\"0\")) <=> engine->newVariant(QVariant(false))");
equals.insert("QScriptValue(QString(\"123\")) <=> QScriptValue(123.0)");
equals.insert("QScriptValue(QString(\"123\")) <=> QScriptValue(QString(\"123\"))");
equals.insert("QScriptValue(QString(\"123\")) <=> QScriptValue(0, 123.0)");
equals.insert("QScriptValue(QString(\"123\")) <=> QScriptValue(0, QString(\"123\"))");
equals.insert("QScriptValue(QString(\"123\")) <=> QScriptValue(engine, 123.0)");
equals.insert("QScriptValue(QString(\"123\")) <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("QScriptValue(QString(\"123\")) <=> engine->evaluate(\"123.0\")");
+ equals.insert("QScriptValue(QString(\"123\")) <=> engine->evaluate(\"'123'\")");
+ equals.insert("QScriptValue(QString(\"123\")) <=> engine->newVariant(QVariant(123))");
equals.insert("QScriptValue(QString(\"12.4\")) <=> QScriptValue(QString(\"12.4\"))");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> engine->evaluate(\"'12.4'\")");
equals.insert("QScriptValue(0, QScriptValue::UndefinedValue) <=> QScriptValue(QScriptValue::UndefinedValue)");
equals.insert("QScriptValue(0, QScriptValue::UndefinedValue) <=> QScriptValue(QScriptValue::NullValue)");
equals.insert("QScriptValue(0, QScriptValue::UndefinedValue) <=> QScriptValue(0, QScriptValue::UndefinedValue)");
@@ -1963,8 +2545,11 @@ void tst_QScriptValue::equals_makeData(const char *expr)
equals.insert("QScriptValue(0, QScriptValue::UndefinedValue) <=> QScriptValue(engine, QScriptValue::UndefinedValue)");
equals.insert("QScriptValue(0, QScriptValue::UndefinedValue) <=> QScriptValue(engine, QScriptValue::NullValue)");
equals.insert("QScriptValue(0, QScriptValue::UndefinedValue) <=> engine->evaluate(\"{}\")");
+ equals.insert("QScriptValue(0, QScriptValue::UndefinedValue) <=> engine->evaluate(\"undefined\")");
+ equals.insert("QScriptValue(0, QScriptValue::UndefinedValue) <=> engine->evaluate(\"null\")");
equals.insert("QScriptValue(0, QScriptValue::UndefinedValue) <=> engine->nullValue()");
equals.insert("QScriptValue(0, QScriptValue::UndefinedValue) <=> engine->undefinedValue()");
+ equals.insert("QScriptValue(0, QScriptValue::UndefinedValue) <=> engine->newQObject(0)");
equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(QScriptValue::UndefinedValue)");
equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(QScriptValue::NullValue)");
equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(0, QScriptValue::UndefinedValue)");
@@ -1972,11 +2557,15 @@ void tst_QScriptValue::equals_makeData(const char *expr)
equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(engine, QScriptValue::UndefinedValue)");
equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(engine, QScriptValue::NullValue)");
equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> engine->evaluate(\"{}\")");
+ equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> engine->evaluate(\"undefined\")");
+ equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> engine->evaluate(\"null\")");
equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> engine->nullValue()");
equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> engine->undefinedValue()");
+ equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> engine->newQObject(0)");
equals.insert("QScriptValue(0, true) <=> QScriptValue(true)");
equals.insert("QScriptValue(0, true) <=> QScriptValue(0, true)");
equals.insert("QScriptValue(0, true) <=> QScriptValue(engine, true)");
+ equals.insert("QScriptValue(0, true) <=> engine->evaluate(\"true\")");
equals.insert("QScriptValue(0, false) <=> QScriptValue(false)");
equals.insert("QScriptValue(0, false) <=> QScriptValue(0)");
equals.insert("QScriptValue(0, false) <=> QScriptValue(0.0)");
@@ -1998,12 +2587,21 @@ void tst_QScriptValue::equals_makeData(const char *expr)
equals.insert("QScriptValue(0, false) <=> engine->evaluate(\"[]\")");
equals.insert("QScriptValue(0, false) <=> engine->evaluate(\"Array.prototype\")");
equals.insert("QScriptValue(0, false) <=> engine->evaluate(\"new Array()\")");
+ equals.insert("QScriptValue(0, false) <=> engine->evaluate(\"false\")");
+ equals.insert("QScriptValue(0, false) <=> engine->evaluate(\"0\")");
+ equals.insert("QScriptValue(0, false) <=> engine->evaluate(\"0.0\")");
+ equals.insert("QScriptValue(0, false) <=> engine->evaluate(\"''\")");
+ equals.insert("QScriptValue(0, false) <=> engine->evaluate(\"'0'\")");
+ equals.insert("QScriptValue(0, false) <=> engine->newArray()");
+ equals.insert("QScriptValue(0, false) <=> engine->newVariant(QVariant(false))");
equals.insert("QScriptValue(0, int(122)) <=> QScriptValue(int(122))");
equals.insert("QScriptValue(0, int(122)) <=> QScriptValue(0, int(122))");
equals.insert("QScriptValue(0, int(122)) <=> QScriptValue(engine, int(122))");
+ equals.insert("QScriptValue(0, int(122)) <=> engine->evaluate(\"122\")");
equals.insert("QScriptValue(0, uint(124)) <=> QScriptValue(uint(124))");
equals.insert("QScriptValue(0, uint(124)) <=> QScriptValue(0, uint(124))");
equals.insert("QScriptValue(0, uint(124)) <=> QScriptValue(engine, uint(124))");
+ equals.insert("QScriptValue(0, uint(124)) <=> engine->evaluate(\"124\")");
equals.insert("QScriptValue(0, 0) <=> QScriptValue(false)");
equals.insert("QScriptValue(0, 0) <=> QScriptValue(0)");
equals.insert("QScriptValue(0, 0) <=> QScriptValue(0.0)");
@@ -2025,6 +2623,13 @@ void tst_QScriptValue::equals_makeData(const char *expr)
equals.insert("QScriptValue(0, 0) <=> engine->evaluate(\"[]\")");
equals.insert("QScriptValue(0, 0) <=> engine->evaluate(\"Array.prototype\")");
equals.insert("QScriptValue(0, 0) <=> engine->evaluate(\"new Array()\")");
+ equals.insert("QScriptValue(0, 0) <=> engine->evaluate(\"false\")");
+ equals.insert("QScriptValue(0, 0) <=> engine->evaluate(\"0\")");
+ equals.insert("QScriptValue(0, 0) <=> engine->evaluate(\"0.0\")");
+ equals.insert("QScriptValue(0, 0) <=> engine->evaluate(\"''\")");
+ equals.insert("QScriptValue(0, 0) <=> engine->evaluate(\"'0'\")");
+ equals.insert("QScriptValue(0, 0) <=> engine->newArray()");
+ equals.insert("QScriptValue(0, 0) <=> engine->newVariant(QVariant(false))");
equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(false)");
equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(0)");
equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(0.0)");
@@ -2046,39 +2651,56 @@ void tst_QScriptValue::equals_makeData(const char *expr)
equals.insert("QScriptValue(0, 0.0) <=> engine->evaluate(\"[]\")");
equals.insert("QScriptValue(0, 0.0) <=> engine->evaluate(\"Array.prototype\")");
equals.insert("QScriptValue(0, 0.0) <=> engine->evaluate(\"new Array()\")");
+ equals.insert("QScriptValue(0, 0.0) <=> engine->evaluate(\"false\")");
+ equals.insert("QScriptValue(0, 0.0) <=> engine->evaluate(\"0\")");
+ equals.insert("QScriptValue(0, 0.0) <=> engine->evaluate(\"0.0\")");
+ equals.insert("QScriptValue(0, 0.0) <=> engine->evaluate(\"''\")");
+ equals.insert("QScriptValue(0, 0.0) <=> engine->evaluate(\"'0'\")");
+ equals.insert("QScriptValue(0, 0.0) <=> engine->newArray()");
+ equals.insert("QScriptValue(0, 0.0) <=> engine->newVariant(QVariant(false))");
equals.insert("QScriptValue(0, 123.0) <=> QScriptValue(123.0)");
equals.insert("QScriptValue(0, 123.0) <=> QScriptValue(QString(\"123\"))");
equals.insert("QScriptValue(0, 123.0) <=> QScriptValue(0, 123.0)");
equals.insert("QScriptValue(0, 123.0) <=> QScriptValue(0, QString(\"123\"))");
equals.insert("QScriptValue(0, 123.0) <=> QScriptValue(engine, 123.0)");
equals.insert("QScriptValue(0, 123.0) <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("QScriptValue(0, 123.0) <=> engine->evaluate(\"123.0\")");
+ equals.insert("QScriptValue(0, 123.0) <=> engine->evaluate(\"'123'\")");
+ equals.insert("QScriptValue(0, 123.0) <=> engine->newVariant(QVariant(123))");
equals.insert("QScriptValue(0, 6.37e-8) <=> QScriptValue(6.37e-8)");
equals.insert("QScriptValue(0, 6.37e-8) <=> QScriptValue(0, 6.37e-8)");
equals.insert("QScriptValue(0, 6.37e-8) <=> QScriptValue(engine, 6.37e-8)");
+ equals.insert("QScriptValue(0, 6.37e-8) <=> engine->evaluate(\"6.37e-8\")");
equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(-6.37e-8)");
equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(0, -6.37e-8)");
equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(engine, -6.37e-8)");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> engine->evaluate(\"-6.37e-8\")");
equals.insert("QScriptValue(0, 0x43211234) <=> QScriptValue(0x43211234)");
equals.insert("QScriptValue(0, 0x43211234) <=> QScriptValue(0, 0x43211234)");
equals.insert("QScriptValue(0, 0x43211234) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(0, 0x43211234) <=> engine->evaluate(\"0x43211234\")");
equals.insert("QScriptValue(0, 0x10000) <=> QScriptValue(0x10000)");
equals.insert("QScriptValue(0, 0x10000) <=> QScriptValue(0, 0x10000)");
equals.insert("QScriptValue(0, 0x10000) <=> QScriptValue(engine, 0x10000)");
+ equals.insert("QScriptValue(0, 0x10000) <=> engine->evaluate(\"0x10000\")");
equals.insert("QScriptValue(0, 0x10001) <=> QScriptValue(0x10001)");
equals.insert("QScriptValue(0, 0x10001) <=> QScriptValue(0, 0x10001)");
equals.insert("QScriptValue(0, 0x10001) <=> QScriptValue(engine, 0x10001)");
+ equals.insert("QScriptValue(0, 0x10001) <=> engine->evaluate(\"0x10001\")");
equals.insert("QScriptValue(0, qInf()) <=> QScriptValue(qInf())");
equals.insert("QScriptValue(0, qInf()) <=> QScriptValue(\"Infinity\")");
equals.insert("QScriptValue(0, qInf()) <=> QScriptValue(0, qInf())");
equals.insert("QScriptValue(0, qInf()) <=> QScriptValue(0, \"Infinity\")");
equals.insert("QScriptValue(0, qInf()) <=> QScriptValue(engine, qInf())");
equals.insert("QScriptValue(0, qInf()) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(0, qInf()) <=> engine->evaluate(\"Infinity\")");
equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(-qInf())");
equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(\"-Infinity\")");
equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(0, -qInf())");
equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(0, \"-Infinity\")");
equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(engine, -qInf())");
equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(engine, \"-Infinity\")");
+ equals.insert("QScriptValue(0, -qInf()) <=> engine->evaluate(\"-Infinity\")");
equals.insert("QScriptValue(0, \"NaN\") <=> QScriptValue(\"NaN\")");
equals.insert("QScriptValue(0, \"NaN\") <=> QScriptValue(0, \"NaN\")");
equals.insert("QScriptValue(0, \"NaN\") <=> QScriptValue(engine, \"NaN\")");
@@ -2088,24 +2710,28 @@ void tst_QScriptValue::equals_makeData(const char *expr)
equals.insert("QScriptValue(0, \"Infinity\") <=> QScriptValue(0, \"Infinity\")");
equals.insert("QScriptValue(0, \"Infinity\") <=> QScriptValue(engine, qInf())");
equals.insert("QScriptValue(0, \"Infinity\") <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(0, \"Infinity\") <=> engine->evaluate(\"Infinity\")");
equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(-qInf())");
equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(\"-Infinity\")");
equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(0, -qInf())");
equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(0, \"-Infinity\")");
equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(engine, -qInf())");
equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(engine, \"-Infinity\")");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> engine->evaluate(\"-Infinity\")");
equals.insert("QScriptValue(0, \"ciao\") <=> QScriptValue(\"ciao\")");
equals.insert("QScriptValue(0, \"ciao\") <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
equals.insert("QScriptValue(0, \"ciao\") <=> QScriptValue(0, \"ciao\")");
equals.insert("QScriptValue(0, \"ciao\") <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
equals.insert("QScriptValue(0, \"ciao\") <=> QScriptValue(engine, \"ciao\")");
equals.insert("QScriptValue(0, \"ciao\") <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(0, \"ciao\") <=> engine->evaluate(\"'ciao'\")");
equals.insert("QScriptValue(0, QString::fromLatin1(\"ciao\")) <=> QScriptValue(\"ciao\")");
equals.insert("QScriptValue(0, QString::fromLatin1(\"ciao\")) <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
equals.insert("QScriptValue(0, QString::fromLatin1(\"ciao\")) <=> QScriptValue(0, \"ciao\")");
equals.insert("QScriptValue(0, QString::fromLatin1(\"ciao\")) <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
equals.insert("QScriptValue(0, QString::fromLatin1(\"ciao\")) <=> QScriptValue(engine, \"ciao\")");
equals.insert("QScriptValue(0, QString::fromLatin1(\"ciao\")) <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(0, QString::fromLatin1(\"ciao\")) <=> engine->evaluate(\"'ciao'\")");
equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(false)");
equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(0)");
equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(0.0)");
@@ -2124,6 +2750,12 @@ void tst_QScriptValue::equals_makeData(const char *expr)
equals.insert("QScriptValue(0, QString(\"\")) <=> engine->evaluate(\"[]\")");
equals.insert("QScriptValue(0, QString(\"\")) <=> engine->evaluate(\"Array.prototype\")");
equals.insert("QScriptValue(0, QString(\"\")) <=> engine->evaluate(\"new Array()\")");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> engine->evaluate(\"false\")");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> engine->evaluate(\"0\")");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> engine->evaluate(\"0.0\")");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> engine->evaluate(\"''\")");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> engine->newArray()");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> engine->newVariant(QVariant(false))");
equals.insert("QScriptValue(0, QString()) <=> QScriptValue(false)");
equals.insert("QScriptValue(0, QString()) <=> QScriptValue(0)");
equals.insert("QScriptValue(0, QString()) <=> QScriptValue(0.0)");
@@ -2142,6 +2774,12 @@ void tst_QScriptValue::equals_makeData(const char *expr)
equals.insert("QScriptValue(0, QString()) <=> engine->evaluate(\"[]\")");
equals.insert("QScriptValue(0, QString()) <=> engine->evaluate(\"Array.prototype\")");
equals.insert("QScriptValue(0, QString()) <=> engine->evaluate(\"new Array()\")");
+ equals.insert("QScriptValue(0, QString()) <=> engine->evaluate(\"false\")");
+ equals.insert("QScriptValue(0, QString()) <=> engine->evaluate(\"0\")");
+ equals.insert("QScriptValue(0, QString()) <=> engine->evaluate(\"0.0\")");
+ equals.insert("QScriptValue(0, QString()) <=> engine->evaluate(\"''\")");
+ equals.insert("QScriptValue(0, QString()) <=> engine->newArray()");
+ equals.insert("QScriptValue(0, QString()) <=> engine->newVariant(QVariant(false))");
equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(false)");
equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(0)");
equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(0.0)");
@@ -2154,12 +2792,20 @@ void tst_QScriptValue::equals_makeData(const char *expr)
equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(engine, 0)");
equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(engine, 0.0)");
equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(engine, QString(\"0\"))");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> engine->evaluate(\"false\")");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> engine->evaluate(\"0\")");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> engine->evaluate(\"0.0\")");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> engine->evaluate(\"'0'\")");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> engine->newVariant(QVariant(false))");
equals.insert("QScriptValue(0, QString(\"123\")) <=> QScriptValue(123.0)");
equals.insert("QScriptValue(0, QString(\"123\")) <=> QScriptValue(QString(\"123\"))");
equals.insert("QScriptValue(0, QString(\"123\")) <=> QScriptValue(0, 123.0)");
equals.insert("QScriptValue(0, QString(\"123\")) <=> QScriptValue(0, QString(\"123\"))");
equals.insert("QScriptValue(0, QString(\"123\")) <=> QScriptValue(engine, 123.0)");
equals.insert("QScriptValue(0, QString(\"123\")) <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("QScriptValue(0, QString(\"123\")) <=> engine->evaluate(\"123.0\")");
+ equals.insert("QScriptValue(0, QString(\"123\")) <=> engine->evaluate(\"'123'\")");
+ equals.insert("QScriptValue(0, QString(\"123\")) <=> engine->newVariant(QVariant(123))");
equals.insert("QScriptValue(0, QString(\"12.3\")) <=> QScriptValue(0, QString(\"12.3\"))");
equals.insert("QScriptValue(engine, QScriptValue::UndefinedValue) <=> QScriptValue(QScriptValue::UndefinedValue)");
equals.insert("QScriptValue(engine, QScriptValue::UndefinedValue) <=> QScriptValue(QScriptValue::NullValue)");
@@ -2168,8 +2814,11 @@ void tst_QScriptValue::equals_makeData(const char *expr)
equals.insert("QScriptValue(engine, QScriptValue::UndefinedValue) <=> QScriptValue(engine, QScriptValue::UndefinedValue)");
equals.insert("QScriptValue(engine, QScriptValue::UndefinedValue) <=> QScriptValue(engine, QScriptValue::NullValue)");
equals.insert("QScriptValue(engine, QScriptValue::UndefinedValue) <=> engine->evaluate(\"{}\")");
+ equals.insert("QScriptValue(engine, QScriptValue::UndefinedValue) <=> engine->evaluate(\"undefined\")");
+ equals.insert("QScriptValue(engine, QScriptValue::UndefinedValue) <=> engine->evaluate(\"null\")");
equals.insert("QScriptValue(engine, QScriptValue::UndefinedValue) <=> engine->nullValue()");
equals.insert("QScriptValue(engine, QScriptValue::UndefinedValue) <=> engine->undefinedValue()");
+ equals.insert("QScriptValue(engine, QScriptValue::UndefinedValue) <=> engine->newQObject(0)");
equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> QScriptValue(QScriptValue::UndefinedValue)");
equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> QScriptValue(QScriptValue::NullValue)");
equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> QScriptValue(0, QScriptValue::UndefinedValue)");
@@ -2177,11 +2826,15 @@ void tst_QScriptValue::equals_makeData(const char *expr)
equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> QScriptValue(engine, QScriptValue::UndefinedValue)");
equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> QScriptValue(engine, QScriptValue::NullValue)");
equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> engine->evaluate(\"{}\")");
+ equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> engine->evaluate(\"undefined\")");
+ equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> engine->evaluate(\"null\")");
equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> engine->nullValue()");
equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> engine->undefinedValue()");
+ equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> engine->newQObject(0)");
equals.insert("QScriptValue(engine, true) <=> QScriptValue(true)");
equals.insert("QScriptValue(engine, true) <=> QScriptValue(0, true)");
equals.insert("QScriptValue(engine, true) <=> QScriptValue(engine, true)");
+ equals.insert("QScriptValue(engine, true) <=> engine->evaluate(\"true\")");
equals.insert("QScriptValue(engine, false) <=> QScriptValue(false)");
equals.insert("QScriptValue(engine, false) <=> QScriptValue(0)");
equals.insert("QScriptValue(engine, false) <=> QScriptValue(0.0)");
@@ -2203,12 +2856,21 @@ void tst_QScriptValue::equals_makeData(const char *expr)
equals.insert("QScriptValue(engine, false) <=> engine->evaluate(\"[]\")");
equals.insert("QScriptValue(engine, false) <=> engine->evaluate(\"Array.prototype\")");
equals.insert("QScriptValue(engine, false) <=> engine->evaluate(\"new Array()\")");
+ equals.insert("QScriptValue(engine, false) <=> engine->evaluate(\"false\")");
+ equals.insert("QScriptValue(engine, false) <=> engine->evaluate(\"0\")");
+ equals.insert("QScriptValue(engine, false) <=> engine->evaluate(\"0.0\")");
+ equals.insert("QScriptValue(engine, false) <=> engine->evaluate(\"''\")");
+ equals.insert("QScriptValue(engine, false) <=> engine->evaluate(\"'0'\")");
+ equals.insert("QScriptValue(engine, false) <=> engine->newArray()");
+ equals.insert("QScriptValue(engine, false) <=> engine->newVariant(QVariant(false))");
equals.insert("QScriptValue(engine, int(122)) <=> QScriptValue(int(122))");
equals.insert("QScriptValue(engine, int(122)) <=> QScriptValue(0, int(122))");
equals.insert("QScriptValue(engine, int(122)) <=> QScriptValue(engine, int(122))");
+ equals.insert("QScriptValue(engine, int(122)) <=> engine->evaluate(\"122\")");
equals.insert("QScriptValue(engine, uint(124)) <=> QScriptValue(uint(124))");
equals.insert("QScriptValue(engine, uint(124)) <=> QScriptValue(0, uint(124))");
equals.insert("QScriptValue(engine, uint(124)) <=> QScriptValue(engine, uint(124))");
+ equals.insert("QScriptValue(engine, uint(124)) <=> engine->evaluate(\"124\")");
equals.insert("QScriptValue(engine, 0) <=> QScriptValue(false)");
equals.insert("QScriptValue(engine, 0) <=> QScriptValue(0)");
equals.insert("QScriptValue(engine, 0) <=> QScriptValue(0.0)");
@@ -2230,6 +2892,13 @@ void tst_QScriptValue::equals_makeData(const char *expr)
equals.insert("QScriptValue(engine, 0) <=> engine->evaluate(\"[]\")");
equals.insert("QScriptValue(engine, 0) <=> engine->evaluate(\"Array.prototype\")");
equals.insert("QScriptValue(engine, 0) <=> engine->evaluate(\"new Array()\")");
+ equals.insert("QScriptValue(engine, 0) <=> engine->evaluate(\"false\")");
+ equals.insert("QScriptValue(engine, 0) <=> engine->evaluate(\"0\")");
+ equals.insert("QScriptValue(engine, 0) <=> engine->evaluate(\"0.0\")");
+ equals.insert("QScriptValue(engine, 0) <=> engine->evaluate(\"''\")");
+ equals.insert("QScriptValue(engine, 0) <=> engine->evaluate(\"'0'\")");
+ equals.insert("QScriptValue(engine, 0) <=> engine->newArray()");
+ equals.insert("QScriptValue(engine, 0) <=> engine->newVariant(QVariant(false))");
equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(false)");
equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(0)");
equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(0.0)");
@@ -2251,39 +2920,56 @@ void tst_QScriptValue::equals_makeData(const char *expr)
equals.insert("QScriptValue(engine, 0.0) <=> engine->evaluate(\"[]\")");
equals.insert("QScriptValue(engine, 0.0) <=> engine->evaluate(\"Array.prototype\")");
equals.insert("QScriptValue(engine, 0.0) <=> engine->evaluate(\"new Array()\")");
+ equals.insert("QScriptValue(engine, 0.0) <=> engine->evaluate(\"false\")");
+ equals.insert("QScriptValue(engine, 0.0) <=> engine->evaluate(\"0\")");
+ equals.insert("QScriptValue(engine, 0.0) <=> engine->evaluate(\"0.0\")");
+ equals.insert("QScriptValue(engine, 0.0) <=> engine->evaluate(\"''\")");
+ equals.insert("QScriptValue(engine, 0.0) <=> engine->evaluate(\"'0'\")");
+ equals.insert("QScriptValue(engine, 0.0) <=> engine->newArray()");
+ equals.insert("QScriptValue(engine, 0.0) <=> engine->newVariant(QVariant(false))");
equals.insert("QScriptValue(engine, 123.0) <=> QScriptValue(123.0)");
equals.insert("QScriptValue(engine, 123.0) <=> QScriptValue(QString(\"123\"))");
equals.insert("QScriptValue(engine, 123.0) <=> QScriptValue(0, 123.0)");
equals.insert("QScriptValue(engine, 123.0) <=> QScriptValue(0, QString(\"123\"))");
equals.insert("QScriptValue(engine, 123.0) <=> QScriptValue(engine, 123.0)");
equals.insert("QScriptValue(engine, 123.0) <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("QScriptValue(engine, 123.0) <=> engine->evaluate(\"123.0\")");
+ equals.insert("QScriptValue(engine, 123.0) <=> engine->evaluate(\"'123'\")");
+ equals.insert("QScriptValue(engine, 123.0) <=> engine->newVariant(QVariant(123))");
equals.insert("QScriptValue(engine, 6.37e-8) <=> QScriptValue(6.37e-8)");
equals.insert("QScriptValue(engine, 6.37e-8) <=> QScriptValue(0, 6.37e-8)");
equals.insert("QScriptValue(engine, 6.37e-8) <=> QScriptValue(engine, 6.37e-8)");
+ equals.insert("QScriptValue(engine, 6.37e-8) <=> engine->evaluate(\"6.37e-8\")");
equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(-6.37e-8)");
equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(0, -6.37e-8)");
equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(engine, -6.37e-8)");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> engine->evaluate(\"-6.37e-8\")");
equals.insert("QScriptValue(engine, 0x43211234) <=> QScriptValue(0x43211234)");
equals.insert("QScriptValue(engine, 0x43211234) <=> QScriptValue(0, 0x43211234)");
equals.insert("QScriptValue(engine, 0x43211234) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(engine, 0x43211234) <=> engine->evaluate(\"0x43211234\")");
equals.insert("QScriptValue(engine, 0x10000) <=> QScriptValue(0x10000)");
equals.insert("QScriptValue(engine, 0x10000) <=> QScriptValue(0, 0x10000)");
equals.insert("QScriptValue(engine, 0x10000) <=> QScriptValue(engine, 0x10000)");
+ equals.insert("QScriptValue(engine, 0x10000) <=> engine->evaluate(\"0x10000\")");
equals.insert("QScriptValue(engine, 0x10001) <=> QScriptValue(0x10001)");
equals.insert("QScriptValue(engine, 0x10001) <=> QScriptValue(0, 0x10001)");
equals.insert("QScriptValue(engine, 0x10001) <=> QScriptValue(engine, 0x10001)");
+ equals.insert("QScriptValue(engine, 0x10001) <=> engine->evaluate(\"0x10001\")");
equals.insert("QScriptValue(engine, qInf()) <=> QScriptValue(qInf())");
equals.insert("QScriptValue(engine, qInf()) <=> QScriptValue(\"Infinity\")");
equals.insert("QScriptValue(engine, qInf()) <=> QScriptValue(0, qInf())");
equals.insert("QScriptValue(engine, qInf()) <=> QScriptValue(0, \"Infinity\")");
equals.insert("QScriptValue(engine, qInf()) <=> QScriptValue(engine, qInf())");
equals.insert("QScriptValue(engine, qInf()) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(engine, qInf()) <=> engine->evaluate(\"Infinity\")");
equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(-qInf())");
equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(\"-Infinity\")");
equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(0, -qInf())");
equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(0, \"-Infinity\")");
equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(engine, -qInf())");
equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(engine, \"-Infinity\")");
+ equals.insert("QScriptValue(engine, -qInf()) <=> engine->evaluate(\"-Infinity\")");
equals.insert("QScriptValue(engine, \"NaN\") <=> QScriptValue(\"NaN\")");
equals.insert("QScriptValue(engine, \"NaN\") <=> QScriptValue(0, \"NaN\")");
equals.insert("QScriptValue(engine, \"NaN\") <=> QScriptValue(engine, \"NaN\")");
@@ -2293,24 +2979,28 @@ void tst_QScriptValue::equals_makeData(const char *expr)
equals.insert("QScriptValue(engine, \"Infinity\") <=> QScriptValue(0, \"Infinity\")");
equals.insert("QScriptValue(engine, \"Infinity\") <=> QScriptValue(engine, qInf())");
equals.insert("QScriptValue(engine, \"Infinity\") <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(engine, \"Infinity\") <=> engine->evaluate(\"Infinity\")");
equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(-qInf())");
equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(\"-Infinity\")");
equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(0, -qInf())");
equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(0, \"-Infinity\")");
equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(engine, -qInf())");
equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(engine, \"-Infinity\")");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> engine->evaluate(\"-Infinity\")");
equals.insert("QScriptValue(engine, \"ciao\") <=> QScriptValue(\"ciao\")");
equals.insert("QScriptValue(engine, \"ciao\") <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
equals.insert("QScriptValue(engine, \"ciao\") <=> QScriptValue(0, \"ciao\")");
equals.insert("QScriptValue(engine, \"ciao\") <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
equals.insert("QScriptValue(engine, \"ciao\") <=> QScriptValue(engine, \"ciao\")");
equals.insert("QScriptValue(engine, \"ciao\") <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(engine, \"ciao\") <=> engine->evaluate(\"'ciao'\")");
equals.insert("QScriptValue(engine, QString::fromLatin1(\"ciao\")) <=> QScriptValue(\"ciao\")");
equals.insert("QScriptValue(engine, QString::fromLatin1(\"ciao\")) <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
equals.insert("QScriptValue(engine, QString::fromLatin1(\"ciao\")) <=> QScriptValue(0, \"ciao\")");
equals.insert("QScriptValue(engine, QString::fromLatin1(\"ciao\")) <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
equals.insert("QScriptValue(engine, QString::fromLatin1(\"ciao\")) <=> QScriptValue(engine, \"ciao\")");
equals.insert("QScriptValue(engine, QString::fromLatin1(\"ciao\")) <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(engine, QString::fromLatin1(\"ciao\")) <=> engine->evaluate(\"'ciao'\")");
equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(false)");
equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(0)");
equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(0.0)");
@@ -2329,6 +3019,12 @@ void tst_QScriptValue::equals_makeData(const char *expr)
equals.insert("QScriptValue(engine, QString(\"\")) <=> engine->evaluate(\"[]\")");
equals.insert("QScriptValue(engine, QString(\"\")) <=> engine->evaluate(\"Array.prototype\")");
equals.insert("QScriptValue(engine, QString(\"\")) <=> engine->evaluate(\"new Array()\")");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> engine->evaluate(\"false\")");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> engine->evaluate(\"0\")");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> engine->evaluate(\"0.0\")");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> engine->evaluate(\"''\")");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> engine->newArray()");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> engine->newVariant(QVariant(false))");
equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(false)");
equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(0)");
equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(0.0)");
@@ -2347,6 +3043,12 @@ void tst_QScriptValue::equals_makeData(const char *expr)
equals.insert("QScriptValue(engine, QString()) <=> engine->evaluate(\"[]\")");
equals.insert("QScriptValue(engine, QString()) <=> engine->evaluate(\"Array.prototype\")");
equals.insert("QScriptValue(engine, QString()) <=> engine->evaluate(\"new Array()\")");
+ equals.insert("QScriptValue(engine, QString()) <=> engine->evaluate(\"false\")");
+ equals.insert("QScriptValue(engine, QString()) <=> engine->evaluate(\"0\")");
+ equals.insert("QScriptValue(engine, QString()) <=> engine->evaluate(\"0.0\")");
+ equals.insert("QScriptValue(engine, QString()) <=> engine->evaluate(\"''\")");
+ equals.insert("QScriptValue(engine, QString()) <=> engine->newArray()");
+ equals.insert("QScriptValue(engine, QString()) <=> engine->newVariant(QVariant(false))");
equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(false)");
equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(0)");
equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(0.0)");
@@ -2359,12 +3061,20 @@ void tst_QScriptValue::equals_makeData(const char *expr)
equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(engine, 0)");
equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(engine, 0.0)");
equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(engine, QString(\"0\"))");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> engine->evaluate(\"false\")");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> engine->evaluate(\"0\")");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> engine->evaluate(\"0.0\")");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> engine->evaluate(\"'0'\")");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> engine->newVariant(QVariant(false))");
equals.insert("QScriptValue(engine, QString(\"123\")) <=> QScriptValue(123.0)");
equals.insert("QScriptValue(engine, QString(\"123\")) <=> QScriptValue(QString(\"123\"))");
equals.insert("QScriptValue(engine, QString(\"123\")) <=> QScriptValue(0, 123.0)");
equals.insert("QScriptValue(engine, QString(\"123\")) <=> QScriptValue(0, QString(\"123\"))");
equals.insert("QScriptValue(engine, QString(\"123\")) <=> QScriptValue(engine, 123.0)");
equals.insert("QScriptValue(engine, QString(\"123\")) <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("QScriptValue(engine, QString(\"123\")) <=> engine->evaluate(\"123.0\")");
+ equals.insert("QScriptValue(engine, QString(\"123\")) <=> engine->evaluate(\"'123'\")");
+ equals.insert("QScriptValue(engine, QString(\"123\")) <=> engine->newVariant(QVariant(123))");
equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> QScriptValue(engine, QString(\"1.23\"))");
equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(false)");
equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(0)");
@@ -2382,6 +3092,10 @@ void tst_QScriptValue::equals_makeData(const char *expr)
equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(engine, QString(\"\"))");
equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(engine, QString())");
equals.insert("engine->evaluate(\"[]\") <=> engine->evaluate(\"[]\")");
+ equals.insert("engine->evaluate(\"[]\") <=> engine->evaluate(\"false\")");
+ equals.insert("engine->evaluate(\"[]\") <=> engine->evaluate(\"0\")");
+ equals.insert("engine->evaluate(\"[]\") <=> engine->evaluate(\"0.0\")");
+ equals.insert("engine->evaluate(\"[]\") <=> engine->evaluate(\"''\")");
equals.insert("engine->evaluate(\"{}\") <=> QScriptValue(QScriptValue::UndefinedValue)");
equals.insert("engine->evaluate(\"{}\") <=> QScriptValue(QScriptValue::NullValue)");
equals.insert("engine->evaluate(\"{}\") <=> QScriptValue(0, QScriptValue::UndefinedValue)");
@@ -2389,8 +3103,11 @@ void tst_QScriptValue::equals_makeData(const char *expr)
equals.insert("engine->evaluate(\"{}\") <=> QScriptValue(engine, QScriptValue::UndefinedValue)");
equals.insert("engine->evaluate(\"{}\") <=> QScriptValue(engine, QScriptValue::NullValue)");
equals.insert("engine->evaluate(\"{}\") <=> engine->evaluate(\"{}\")");
+ equals.insert("engine->evaluate(\"{}\") <=> engine->evaluate(\"undefined\")");
+ equals.insert("engine->evaluate(\"{}\") <=> engine->evaluate(\"null\")");
equals.insert("engine->evaluate(\"{}\") <=> engine->nullValue()");
equals.insert("engine->evaluate(\"{}\") <=> engine->undefinedValue()");
+ equals.insert("engine->evaluate(\"{}\") <=> engine->newQObject(0)");
equals.insert("engine->evaluate(\"Object.prototype\") <=> engine->evaluate(\"Object.prototype\")");
equals.insert("engine->evaluate(\"Date.prototype\") <=> engine->evaluate(\"Date.prototype\")");
equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(false)");
@@ -2409,6 +3126,10 @@ void tst_QScriptValue::equals_makeData(const char *expr)
equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(engine, QString(\"\"))");
equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(engine, QString())");
equals.insert("engine->evaluate(\"Array.prototype\") <=> engine->evaluate(\"Array.prototype\")");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> engine->evaluate(\"false\")");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> engine->evaluate(\"0\")");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> engine->evaluate(\"0.0\")");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> engine->evaluate(\"''\")");
equals.insert("engine->evaluate(\"Function.prototype\") <=> engine->evaluate(\"Function.prototype\")");
equals.insert("engine->evaluate(\"Error.prototype\") <=> engine->evaluate(\"Error.prototype\")");
equals.insert("engine->evaluate(\"Object\") <=> engine->evaluate(\"Object\")");
@@ -2436,7 +3157,238 @@ void tst_QScriptValue::equals_makeData(const char *expr)
equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(engine, QString(\"\"))");
equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(engine, QString())");
equals.insert("engine->evaluate(\"new Array()\") <=> engine->evaluate(\"new Array()\")");
+ equals.insert("engine->evaluate(\"new Array()\") <=> engine->evaluate(\"false\")");
+ equals.insert("engine->evaluate(\"new Array()\") <=> engine->evaluate(\"0\")");
+ equals.insert("engine->evaluate(\"new Array()\") <=> engine->evaluate(\"0.0\")");
+ equals.insert("engine->evaluate(\"new Array()\") <=> engine->evaluate(\"''\")");
equals.insert("engine->evaluate(\"new Error()\") <=> engine->evaluate(\"new Error()\")");
+ equals.insert("engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\") <=> engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")");
+ equals.insert("engine->evaluate(\"Undefined\") <=> engine->evaluate(\"Undefined\")");
+ equals.insert("engine->evaluate(\"Null\") <=> engine->evaluate(\"Null\")");
+ equals.insert("engine->evaluate(\"True\") <=> engine->evaluate(\"True\")");
+ equals.insert("engine->evaluate(\"False\") <=> engine->evaluate(\"False\")");
+ equals.insert("engine->evaluate(\"undefined\") <=> QScriptValue(QScriptValue::UndefinedValue)");
+ equals.insert("engine->evaluate(\"undefined\") <=> QScriptValue(QScriptValue::NullValue)");
+ equals.insert("engine->evaluate(\"undefined\") <=> QScriptValue(0, QScriptValue::UndefinedValue)");
+ equals.insert("engine->evaluate(\"undefined\") <=> QScriptValue(0, QScriptValue::NullValue)");
+ equals.insert("engine->evaluate(\"undefined\") <=> QScriptValue(engine, QScriptValue::UndefinedValue)");
+ equals.insert("engine->evaluate(\"undefined\") <=> QScriptValue(engine, QScriptValue::NullValue)");
+ equals.insert("engine->evaluate(\"undefined\") <=> engine->evaluate(\"{}\")");
+ equals.insert("engine->evaluate(\"undefined\") <=> engine->evaluate(\"undefined\")");
+ equals.insert("engine->evaluate(\"undefined\") <=> engine->evaluate(\"null\")");
+ equals.insert("engine->evaluate(\"undefined\") <=> engine->nullValue()");
+ equals.insert("engine->evaluate(\"undefined\") <=> engine->undefinedValue()");
+ equals.insert("engine->evaluate(\"undefined\") <=> engine->newQObject(0)");
+ equals.insert("engine->evaluate(\"null\") <=> QScriptValue(QScriptValue::UndefinedValue)");
+ equals.insert("engine->evaluate(\"null\") <=> QScriptValue(QScriptValue::NullValue)");
+ equals.insert("engine->evaluate(\"null\") <=> QScriptValue(0, QScriptValue::UndefinedValue)");
+ equals.insert("engine->evaluate(\"null\") <=> QScriptValue(0, QScriptValue::NullValue)");
+ equals.insert("engine->evaluate(\"null\") <=> QScriptValue(engine, QScriptValue::UndefinedValue)");
+ equals.insert("engine->evaluate(\"null\") <=> QScriptValue(engine, QScriptValue::NullValue)");
+ equals.insert("engine->evaluate(\"null\") <=> engine->evaluate(\"{}\")");
+ equals.insert("engine->evaluate(\"null\") <=> engine->evaluate(\"undefined\")");
+ equals.insert("engine->evaluate(\"null\") <=> engine->evaluate(\"null\")");
+ equals.insert("engine->evaluate(\"null\") <=> engine->nullValue()");
+ equals.insert("engine->evaluate(\"null\") <=> engine->undefinedValue()");
+ equals.insert("engine->evaluate(\"null\") <=> engine->newQObject(0)");
+ equals.insert("engine->evaluate(\"true\") <=> QScriptValue(true)");
+ equals.insert("engine->evaluate(\"true\") <=> QScriptValue(0, true)");
+ equals.insert("engine->evaluate(\"true\") <=> QScriptValue(engine, true)");
+ equals.insert("engine->evaluate(\"true\") <=> engine->evaluate(\"true\")");
+ equals.insert("engine->evaluate(\"false\") <=> QScriptValue(false)");
+ equals.insert("engine->evaluate(\"false\") <=> QScriptValue(0)");
+ equals.insert("engine->evaluate(\"false\") <=> QScriptValue(0.0)");
+ equals.insert("engine->evaluate(\"false\") <=> QScriptValue(QString(\"\"))");
+ equals.insert("engine->evaluate(\"false\") <=> QScriptValue(QString())");
+ equals.insert("engine->evaluate(\"false\") <=> QScriptValue(QString(\"0\"))");
+ equals.insert("engine->evaluate(\"false\") <=> QScriptValue(0, false)");
+ equals.insert("engine->evaluate(\"false\") <=> QScriptValue(0, 0)");
+ equals.insert("engine->evaluate(\"false\") <=> QScriptValue(0, 0.0)");
+ equals.insert("engine->evaluate(\"false\") <=> QScriptValue(0, QString(\"\"))");
+ equals.insert("engine->evaluate(\"false\") <=> QScriptValue(0, QString())");
+ equals.insert("engine->evaluate(\"false\") <=> QScriptValue(0, QString(\"0\"))");
+ equals.insert("engine->evaluate(\"false\") <=> QScriptValue(engine, false)");
+ equals.insert("engine->evaluate(\"false\") <=> QScriptValue(engine, 0)");
+ equals.insert("engine->evaluate(\"false\") <=> QScriptValue(engine, 0.0)");
+ equals.insert("engine->evaluate(\"false\") <=> QScriptValue(engine, QString(\"\"))");
+ equals.insert("engine->evaluate(\"false\") <=> QScriptValue(engine, QString())");
+ equals.insert("engine->evaluate(\"false\") <=> QScriptValue(engine, QString(\"0\"))");
+ equals.insert("engine->evaluate(\"false\") <=> engine->evaluate(\"[]\")");
+ equals.insert("engine->evaluate(\"false\") <=> engine->evaluate(\"Array.prototype\")");
+ equals.insert("engine->evaluate(\"false\") <=> engine->evaluate(\"new Array()\")");
+ equals.insert("engine->evaluate(\"false\") <=> engine->evaluate(\"false\")");
+ equals.insert("engine->evaluate(\"false\") <=> engine->evaluate(\"0\")");
+ equals.insert("engine->evaluate(\"false\") <=> engine->evaluate(\"0.0\")");
+ equals.insert("engine->evaluate(\"false\") <=> engine->evaluate(\"''\")");
+ equals.insert("engine->evaluate(\"false\") <=> engine->evaluate(\"'0'\")");
+ equals.insert("engine->evaluate(\"false\") <=> engine->newArray()");
+ equals.insert("engine->evaluate(\"false\") <=> engine->newVariant(QVariant(false))");
+ equals.insert("engine->evaluate(\"122\") <=> QScriptValue(int(122))");
+ equals.insert("engine->evaluate(\"122\") <=> QScriptValue(0, int(122))");
+ equals.insert("engine->evaluate(\"122\") <=> QScriptValue(engine, int(122))");
+ equals.insert("engine->evaluate(\"122\") <=> engine->evaluate(\"122\")");
+ equals.insert("engine->evaluate(\"124\") <=> QScriptValue(uint(124))");
+ equals.insert("engine->evaluate(\"124\") <=> QScriptValue(0, uint(124))");
+ equals.insert("engine->evaluate(\"124\") <=> QScriptValue(engine, uint(124))");
+ equals.insert("engine->evaluate(\"124\") <=> engine->evaluate(\"124\")");
+ equals.insert("engine->evaluate(\"0\") <=> QScriptValue(false)");
+ equals.insert("engine->evaluate(\"0\") <=> QScriptValue(0)");
+ equals.insert("engine->evaluate(\"0\") <=> QScriptValue(0.0)");
+ equals.insert("engine->evaluate(\"0\") <=> QScriptValue(QString(\"\"))");
+ equals.insert("engine->evaluate(\"0\") <=> QScriptValue(QString())");
+ equals.insert("engine->evaluate(\"0\") <=> QScriptValue(QString(\"0\"))");
+ equals.insert("engine->evaluate(\"0\") <=> QScriptValue(0, false)");
+ equals.insert("engine->evaluate(\"0\") <=> QScriptValue(0, 0)");
+ equals.insert("engine->evaluate(\"0\") <=> QScriptValue(0, 0.0)");
+ equals.insert("engine->evaluate(\"0\") <=> QScriptValue(0, QString(\"\"))");
+ equals.insert("engine->evaluate(\"0\") <=> QScriptValue(0, QString())");
+ equals.insert("engine->evaluate(\"0\") <=> QScriptValue(0, QString(\"0\"))");
+ equals.insert("engine->evaluate(\"0\") <=> QScriptValue(engine, false)");
+ equals.insert("engine->evaluate(\"0\") <=> QScriptValue(engine, 0)");
+ equals.insert("engine->evaluate(\"0\") <=> QScriptValue(engine, 0.0)");
+ equals.insert("engine->evaluate(\"0\") <=> QScriptValue(engine, QString(\"\"))");
+ equals.insert("engine->evaluate(\"0\") <=> QScriptValue(engine, QString())");
+ equals.insert("engine->evaluate(\"0\") <=> QScriptValue(engine, QString(\"0\"))");
+ equals.insert("engine->evaluate(\"0\") <=> engine->evaluate(\"[]\")");
+ equals.insert("engine->evaluate(\"0\") <=> engine->evaluate(\"Array.prototype\")");
+ equals.insert("engine->evaluate(\"0\") <=> engine->evaluate(\"new Array()\")");
+ equals.insert("engine->evaluate(\"0\") <=> engine->evaluate(\"false\")");
+ equals.insert("engine->evaluate(\"0\") <=> engine->evaluate(\"0\")");
+ equals.insert("engine->evaluate(\"0\") <=> engine->evaluate(\"0.0\")");
+ equals.insert("engine->evaluate(\"0\") <=> engine->evaluate(\"''\")");
+ equals.insert("engine->evaluate(\"0\") <=> engine->evaluate(\"'0'\")");
+ equals.insert("engine->evaluate(\"0\") <=> engine->newArray()");
+ equals.insert("engine->evaluate(\"0\") <=> engine->newVariant(QVariant(false))");
+ equals.insert("engine->evaluate(\"0.0\") <=> QScriptValue(false)");
+ equals.insert("engine->evaluate(\"0.0\") <=> QScriptValue(0)");
+ equals.insert("engine->evaluate(\"0.0\") <=> QScriptValue(0.0)");
+ equals.insert("engine->evaluate(\"0.0\") <=> QScriptValue(QString(\"\"))");
+ equals.insert("engine->evaluate(\"0.0\") <=> QScriptValue(QString())");
+ equals.insert("engine->evaluate(\"0.0\") <=> QScriptValue(QString(\"0\"))");
+ equals.insert("engine->evaluate(\"0.0\") <=> QScriptValue(0, false)");
+ equals.insert("engine->evaluate(\"0.0\") <=> QScriptValue(0, 0)");
+ equals.insert("engine->evaluate(\"0.0\") <=> QScriptValue(0, 0.0)");
+ equals.insert("engine->evaluate(\"0.0\") <=> QScriptValue(0, QString(\"\"))");
+ equals.insert("engine->evaluate(\"0.0\") <=> QScriptValue(0, QString())");
+ equals.insert("engine->evaluate(\"0.0\") <=> QScriptValue(0, QString(\"0\"))");
+ equals.insert("engine->evaluate(\"0.0\") <=> QScriptValue(engine, false)");
+ equals.insert("engine->evaluate(\"0.0\") <=> QScriptValue(engine, 0)");
+ equals.insert("engine->evaluate(\"0.0\") <=> QScriptValue(engine, 0.0)");
+ equals.insert("engine->evaluate(\"0.0\") <=> QScriptValue(engine, QString(\"\"))");
+ equals.insert("engine->evaluate(\"0.0\") <=> QScriptValue(engine, QString())");
+ equals.insert("engine->evaluate(\"0.0\") <=> QScriptValue(engine, QString(\"0\"))");
+ equals.insert("engine->evaluate(\"0.0\") <=> engine->evaluate(\"[]\")");
+ equals.insert("engine->evaluate(\"0.0\") <=> engine->evaluate(\"Array.prototype\")");
+ equals.insert("engine->evaluate(\"0.0\") <=> engine->evaluate(\"new Array()\")");
+ equals.insert("engine->evaluate(\"0.0\") <=> engine->evaluate(\"false\")");
+ equals.insert("engine->evaluate(\"0.0\") <=> engine->evaluate(\"0\")");
+ equals.insert("engine->evaluate(\"0.0\") <=> engine->evaluate(\"0.0\")");
+ equals.insert("engine->evaluate(\"0.0\") <=> engine->evaluate(\"''\")");
+ equals.insert("engine->evaluate(\"0.0\") <=> engine->evaluate(\"'0'\")");
+ equals.insert("engine->evaluate(\"0.0\") <=> engine->newArray()");
+ equals.insert("engine->evaluate(\"0.0\") <=> engine->newVariant(QVariant(false))");
+ equals.insert("engine->evaluate(\"123.0\") <=> QScriptValue(123.0)");
+ equals.insert("engine->evaluate(\"123.0\") <=> QScriptValue(QString(\"123\"))");
+ equals.insert("engine->evaluate(\"123.0\") <=> QScriptValue(0, 123.0)");
+ equals.insert("engine->evaluate(\"123.0\") <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("engine->evaluate(\"123.0\") <=> QScriptValue(engine, 123.0)");
+ equals.insert("engine->evaluate(\"123.0\") <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("engine->evaluate(\"123.0\") <=> engine->evaluate(\"123.0\")");
+ equals.insert("engine->evaluate(\"123.0\") <=> engine->evaluate(\"'123'\")");
+ equals.insert("engine->evaluate(\"123.0\") <=> engine->newVariant(QVariant(123))");
+ equals.insert("engine->evaluate(\"6.37e-8\") <=> QScriptValue(6.37e-8)");
+ equals.insert("engine->evaluate(\"6.37e-8\") <=> QScriptValue(0, 6.37e-8)");
+ equals.insert("engine->evaluate(\"6.37e-8\") <=> QScriptValue(engine, 6.37e-8)");
+ equals.insert("engine->evaluate(\"6.37e-8\") <=> engine->evaluate(\"6.37e-8\")");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> QScriptValue(-6.37e-8)");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> QScriptValue(0, -6.37e-8)");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> QScriptValue(engine, -6.37e-8)");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> engine->evaluate(\"-6.37e-8\")");
+ equals.insert("engine->evaluate(\"0x43211234\") <=> QScriptValue(0x43211234)");
+ equals.insert("engine->evaluate(\"0x43211234\") <=> QScriptValue(0, 0x43211234)");
+ equals.insert("engine->evaluate(\"0x43211234\") <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("engine->evaluate(\"0x43211234\") <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("engine->evaluate(\"0x10000\") <=> QScriptValue(0x10000)");
+ equals.insert("engine->evaluate(\"0x10000\") <=> QScriptValue(0, 0x10000)");
+ equals.insert("engine->evaluate(\"0x10000\") <=> QScriptValue(engine, 0x10000)");
+ equals.insert("engine->evaluate(\"0x10000\") <=> engine->evaluate(\"0x10000\")");
+ equals.insert("engine->evaluate(\"0x10001\") <=> QScriptValue(0x10001)");
+ equals.insert("engine->evaluate(\"0x10001\") <=> QScriptValue(0, 0x10001)");
+ equals.insert("engine->evaluate(\"0x10001\") <=> QScriptValue(engine, 0x10001)");
+ equals.insert("engine->evaluate(\"0x10001\") <=> engine->evaluate(\"0x10001\")");
+ equals.insert("engine->evaluate(\"Infinity\") <=> QScriptValue(qInf())");
+ equals.insert("engine->evaluate(\"Infinity\") <=> QScriptValue(\"Infinity\")");
+ equals.insert("engine->evaluate(\"Infinity\") <=> QScriptValue(0, qInf())");
+ equals.insert("engine->evaluate(\"Infinity\") <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("engine->evaluate(\"Infinity\") <=> QScriptValue(engine, qInf())");
+ equals.insert("engine->evaluate(\"Infinity\") <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("engine->evaluate(\"Infinity\") <=> engine->evaluate(\"Infinity\")");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(-qInf())");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(\"-Infinity\")");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(0, -qInf())");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(0, \"-Infinity\")");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(engine, -qInf())");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(engine, \"-Infinity\")");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> engine->evaluate(\"-Infinity\")");
+ equals.insert("engine->evaluate(\"'ciao'\") <=> QScriptValue(\"ciao\")");
+ equals.insert("engine->evaluate(\"'ciao'\") <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->evaluate(\"'ciao'\") <=> QScriptValue(0, \"ciao\")");
+ equals.insert("engine->evaluate(\"'ciao'\") <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->evaluate(\"'ciao'\") <=> QScriptValue(engine, \"ciao\")");
+ equals.insert("engine->evaluate(\"'ciao'\") <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->evaluate(\"'ciao'\") <=> engine->evaluate(\"'ciao'\")");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(false)");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(0)");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(0.0)");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(QString(\"\"))");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(QString())");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(0, false)");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(0, 0)");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(0, 0.0)");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(0, QString(\"\"))");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(0, QString())");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(engine, false)");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(engine, 0)");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(engine, 0.0)");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(engine, QString(\"\"))");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(engine, QString())");
+ equals.insert("engine->evaluate(\"''\") <=> engine->evaluate(\"[]\")");
+ equals.insert("engine->evaluate(\"''\") <=> engine->evaluate(\"Array.prototype\")");
+ equals.insert("engine->evaluate(\"''\") <=> engine->evaluate(\"new Array()\")");
+ equals.insert("engine->evaluate(\"''\") <=> engine->evaluate(\"false\")");
+ equals.insert("engine->evaluate(\"''\") <=> engine->evaluate(\"0\")");
+ equals.insert("engine->evaluate(\"''\") <=> engine->evaluate(\"0.0\")");
+ equals.insert("engine->evaluate(\"''\") <=> engine->evaluate(\"''\")");
+ equals.insert("engine->evaluate(\"''\") <=> engine->newArray()");
+ equals.insert("engine->evaluate(\"''\") <=> engine->newVariant(QVariant(false))");
+ equals.insert("engine->evaluate(\"'0'\") <=> QScriptValue(false)");
+ equals.insert("engine->evaluate(\"'0'\") <=> QScriptValue(0)");
+ equals.insert("engine->evaluate(\"'0'\") <=> QScriptValue(0.0)");
+ equals.insert("engine->evaluate(\"'0'\") <=> QScriptValue(QString(\"0\"))");
+ equals.insert("engine->evaluate(\"'0'\") <=> QScriptValue(0, false)");
+ equals.insert("engine->evaluate(\"'0'\") <=> QScriptValue(0, 0)");
+ equals.insert("engine->evaluate(\"'0'\") <=> QScriptValue(0, 0.0)");
+ equals.insert("engine->evaluate(\"'0'\") <=> QScriptValue(0, QString(\"0\"))");
+ equals.insert("engine->evaluate(\"'0'\") <=> QScriptValue(engine, false)");
+ equals.insert("engine->evaluate(\"'0'\") <=> QScriptValue(engine, 0)");
+ equals.insert("engine->evaluate(\"'0'\") <=> QScriptValue(engine, 0.0)");
+ equals.insert("engine->evaluate(\"'0'\") <=> QScriptValue(engine, QString(\"0\"))");
+ equals.insert("engine->evaluate(\"'0'\") <=> engine->evaluate(\"false\")");
+ equals.insert("engine->evaluate(\"'0'\") <=> engine->evaluate(\"0\")");
+ equals.insert("engine->evaluate(\"'0'\") <=> engine->evaluate(\"0.0\")");
+ equals.insert("engine->evaluate(\"'0'\") <=> engine->evaluate(\"'0'\")");
+ equals.insert("engine->evaluate(\"'0'\") <=> engine->newVariant(QVariant(false))");
+ equals.insert("engine->evaluate(\"'123'\") <=> QScriptValue(123.0)");
+ equals.insert("engine->evaluate(\"'123'\") <=> QScriptValue(QString(\"123\"))");
+ equals.insert("engine->evaluate(\"'123'\") <=> QScriptValue(0, 123.0)");
+ equals.insert("engine->evaluate(\"'123'\") <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("engine->evaluate(\"'123'\") <=> QScriptValue(engine, 123.0)");
+ equals.insert("engine->evaluate(\"'123'\") <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("engine->evaluate(\"'123'\") <=> engine->evaluate(\"123.0\")");
+ equals.insert("engine->evaluate(\"'123'\") <=> engine->evaluate(\"'123'\")");
+ equals.insert("engine->evaluate(\"'123'\") <=> engine->newVariant(QVariant(123))");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> QScriptValue(QString(\"12.4\"))");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> engine->evaluate(\"'12.4'\")");
equals.insert("engine->nullValue() <=> QScriptValue(QScriptValue::UndefinedValue)");
equals.insert("engine->nullValue() <=> QScriptValue(QScriptValue::NullValue)");
equals.insert("engine->nullValue() <=> QScriptValue(0, QScriptValue::UndefinedValue)");
@@ -2444,8 +3396,11 @@ void tst_QScriptValue::equals_makeData(const char *expr)
equals.insert("engine->nullValue() <=> QScriptValue(engine, QScriptValue::UndefinedValue)");
equals.insert("engine->nullValue() <=> QScriptValue(engine, QScriptValue::NullValue)");
equals.insert("engine->nullValue() <=> engine->evaluate(\"{}\")");
+ equals.insert("engine->nullValue() <=> engine->evaluate(\"undefined\")");
+ equals.insert("engine->nullValue() <=> engine->evaluate(\"null\")");
equals.insert("engine->nullValue() <=> engine->nullValue()");
equals.insert("engine->nullValue() <=> engine->undefinedValue()");
+ equals.insert("engine->nullValue() <=> engine->newQObject(0)");
equals.insert("engine->undefinedValue() <=> QScriptValue(QScriptValue::UndefinedValue)");
equals.insert("engine->undefinedValue() <=> QScriptValue(QScriptValue::NullValue)");
equals.insert("engine->undefinedValue() <=> QScriptValue(0, QScriptValue::UndefinedValue)");
@@ -2453,8 +3408,82 @@ void tst_QScriptValue::equals_makeData(const char *expr)
equals.insert("engine->undefinedValue() <=> QScriptValue(engine, QScriptValue::UndefinedValue)");
equals.insert("engine->undefinedValue() <=> QScriptValue(engine, QScriptValue::NullValue)");
equals.insert("engine->undefinedValue() <=> engine->evaluate(\"{}\")");
+ equals.insert("engine->undefinedValue() <=> engine->evaluate(\"undefined\")");
+ equals.insert("engine->undefinedValue() <=> engine->evaluate(\"null\")");
equals.insert("engine->undefinedValue() <=> engine->nullValue()");
equals.insert("engine->undefinedValue() <=> engine->undefinedValue()");
+ equals.insert("engine->undefinedValue() <=> engine->newQObject(0)");
+ equals.insert("engine->newObject() <=> engine->newObject()");
+ equals.insert("engine->newArray() <=> QScriptValue(false)");
+ equals.insert("engine->newArray() <=> QScriptValue(0)");
+ equals.insert("engine->newArray() <=> QScriptValue(0.0)");
+ equals.insert("engine->newArray() <=> QScriptValue(QString(\"\"))");
+ equals.insert("engine->newArray() <=> QScriptValue(QString())");
+ equals.insert("engine->newArray() <=> QScriptValue(0, false)");
+ equals.insert("engine->newArray() <=> QScriptValue(0, 0)");
+ equals.insert("engine->newArray() <=> QScriptValue(0, 0.0)");
+ equals.insert("engine->newArray() <=> QScriptValue(0, QString(\"\"))");
+ equals.insert("engine->newArray() <=> QScriptValue(0, QString())");
+ equals.insert("engine->newArray() <=> QScriptValue(engine, false)");
+ equals.insert("engine->newArray() <=> QScriptValue(engine, 0)");
+ equals.insert("engine->newArray() <=> QScriptValue(engine, 0.0)");
+ equals.insert("engine->newArray() <=> QScriptValue(engine, QString(\"\"))");
+ equals.insert("engine->newArray() <=> QScriptValue(engine, QString())");
+ equals.insert("engine->newArray() <=> engine->evaluate(\"false\")");
+ equals.insert("engine->newArray() <=> engine->evaluate(\"0\")");
+ equals.insert("engine->newArray() <=> engine->evaluate(\"0.0\")");
+ equals.insert("engine->newArray() <=> engine->evaluate(\"''\")");
+ equals.insert("engine->newArray() <=> engine->newArray()");
+ equals.insert("engine->newArray(10) <=> engine->newArray(10)");
+ equals.insert("engine->newDate(QDateTime()) <=> engine->newDate(QDateTime())");
+ equals.insert("engine->newQMetaObject(&QObject::staticMetaObject) <=> engine->newQMetaObject(&QObject::staticMetaObject)");
+ equals.insert("engine->newVariant(QVariant()) <=> engine->newVariant(QVariant())");
+ equals.insert("engine->newVariant(QVariant(123)) <=> QScriptValue(123.0)");
+ equals.insert("engine->newVariant(QVariant(123)) <=> QScriptValue(QString(\"123\"))");
+ equals.insert("engine->newVariant(QVariant(123)) <=> QScriptValue(0, 123.0)");
+ equals.insert("engine->newVariant(QVariant(123)) <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("engine->newVariant(QVariant(123)) <=> QScriptValue(engine, 123.0)");
+ equals.insert("engine->newVariant(QVariant(123)) <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("engine->newVariant(QVariant(123)) <=> engine->evaluate(\"123.0\")");
+ equals.insert("engine->newVariant(QVariant(123)) <=> engine->evaluate(\"'123'\")");
+ equals.insert("engine->newVariant(QVariant(123)) <=> engine->newVariant(QVariant(123))");
+ equals.insert("engine->newVariant(QVariant(false)) <=> QScriptValue(false)");
+ equals.insert("engine->newVariant(QVariant(false)) <=> QScriptValue(0)");
+ equals.insert("engine->newVariant(QVariant(false)) <=> QScriptValue(0.0)");
+ equals.insert("engine->newVariant(QVariant(false)) <=> QScriptValue(QString(\"\"))");
+ equals.insert("engine->newVariant(QVariant(false)) <=> QScriptValue(QString())");
+ equals.insert("engine->newVariant(QVariant(false)) <=> QScriptValue(QString(\"0\"))");
+ equals.insert("engine->newVariant(QVariant(false)) <=> QScriptValue(0, false)");
+ equals.insert("engine->newVariant(QVariant(false)) <=> QScriptValue(0, 0)");
+ equals.insert("engine->newVariant(QVariant(false)) <=> QScriptValue(0, 0.0)");
+ equals.insert("engine->newVariant(QVariant(false)) <=> QScriptValue(0, QString(\"\"))");
+ equals.insert("engine->newVariant(QVariant(false)) <=> QScriptValue(0, QString())");
+ equals.insert("engine->newVariant(QVariant(false)) <=> QScriptValue(0, QString(\"0\"))");
+ equals.insert("engine->newVariant(QVariant(false)) <=> QScriptValue(engine, false)");
+ equals.insert("engine->newVariant(QVariant(false)) <=> QScriptValue(engine, 0)");
+ equals.insert("engine->newVariant(QVariant(false)) <=> QScriptValue(engine, 0.0)");
+ equals.insert("engine->newVariant(QVariant(false)) <=> QScriptValue(engine, QString(\"\"))");
+ equals.insert("engine->newVariant(QVariant(false)) <=> QScriptValue(engine, QString())");
+ equals.insert("engine->newVariant(QVariant(false)) <=> QScriptValue(engine, QString(\"0\"))");
+ equals.insert("engine->newVariant(QVariant(false)) <=> engine->evaluate(\"false\")");
+ equals.insert("engine->newVariant(QVariant(false)) <=> engine->evaluate(\"0\")");
+ equals.insert("engine->newVariant(QVariant(false)) <=> engine->evaluate(\"0.0\")");
+ equals.insert("engine->newVariant(QVariant(false)) <=> engine->evaluate(\"''\")");
+ equals.insert("engine->newVariant(QVariant(false)) <=> engine->evaluate(\"'0'\")");
+ equals.insert("engine->newVariant(QVariant(false)) <=> engine->newVariant(QVariant(false))");
+ equals.insert("engine->newQObject(0) <=> QScriptValue(QScriptValue::UndefinedValue)");
+ equals.insert("engine->newQObject(0) <=> QScriptValue(QScriptValue::NullValue)");
+ equals.insert("engine->newQObject(0) <=> QScriptValue(0, QScriptValue::UndefinedValue)");
+ equals.insert("engine->newQObject(0) <=> QScriptValue(0, QScriptValue::NullValue)");
+ equals.insert("engine->newQObject(0) <=> QScriptValue(engine, QScriptValue::UndefinedValue)");
+ equals.insert("engine->newQObject(0) <=> QScriptValue(engine, QScriptValue::NullValue)");
+ equals.insert("engine->newQObject(0) <=> engine->evaluate(\"{}\")");
+ equals.insert("engine->newQObject(0) <=> engine->evaluate(\"undefined\")");
+ equals.insert("engine->newQObject(0) <=> engine->evaluate(\"null\")");
+ equals.insert("engine->newQObject(0) <=> engine->nullValue()");
+ equals.insert("engine->newQObject(0) <=> engine->undefinedValue()");
+ equals.insert("engine->newQObject(0) <=> engine->newQObject(0)");
+ equals.insert("engine->newQObject(engine) <=> engine->newQObject(engine)");
}
QHash<QString, QScriptValue>::const_iterator it;
for (it = m_values.constBegin(); it != m_values.constEnd(); ++it) {
@@ -2489,59 +3518,78 @@ void tst_QScriptValue::strictlyEquals_makeData(const char *expr)
equals.insert("QScriptValue(QScriptValue::UndefinedValue) <=> QScriptValue(0, QScriptValue::UndefinedValue)");
equals.insert("QScriptValue(QScriptValue::UndefinedValue) <=> QScriptValue(engine, QScriptValue::UndefinedValue)");
equals.insert("QScriptValue(QScriptValue::UndefinedValue) <=> engine->evaluate(\"{}\")");
+ equals.insert("QScriptValue(QScriptValue::UndefinedValue) <=> engine->evaluate(\"undefined\")");
equals.insert("QScriptValue(QScriptValue::UndefinedValue) <=> engine->undefinedValue()");
equals.insert("QScriptValue(QScriptValue::NullValue) <=> QScriptValue(QScriptValue::NullValue)");
equals.insert("QScriptValue(QScriptValue::NullValue) <=> QScriptValue(0, QScriptValue::NullValue)");
equals.insert("QScriptValue(QScriptValue::NullValue) <=> QScriptValue(engine, QScriptValue::NullValue)");
+ equals.insert("QScriptValue(QScriptValue::NullValue) <=> engine->evaluate(\"null\")");
equals.insert("QScriptValue(QScriptValue::NullValue) <=> engine->nullValue()");
+ equals.insert("QScriptValue(QScriptValue::NullValue) <=> engine->newQObject(0)");
equals.insert("QScriptValue(true) <=> QScriptValue(true)");
equals.insert("QScriptValue(true) <=> QScriptValue(0, true)");
equals.insert("QScriptValue(true) <=> QScriptValue(engine, true)");
+ equals.insert("QScriptValue(true) <=> engine->evaluate(\"true\")");
equals.insert("QScriptValue(false) <=> QScriptValue(false)");
equals.insert("QScriptValue(false) <=> QScriptValue(0, false)");
equals.insert("QScriptValue(false) <=> QScriptValue(engine, false)");
+ equals.insert("QScriptValue(false) <=> engine->evaluate(\"false\")");
equals.insert("QScriptValue(int(122)) <=> QScriptValue(int(122))");
equals.insert("QScriptValue(int(122)) <=> QScriptValue(0, int(122))");
equals.insert("QScriptValue(int(122)) <=> QScriptValue(engine, int(122))");
+ equals.insert("QScriptValue(int(122)) <=> engine->evaluate(\"122\")");
equals.insert("QScriptValue(uint(124)) <=> QScriptValue(uint(124))");
equals.insert("QScriptValue(uint(124)) <=> QScriptValue(0, uint(124))");
equals.insert("QScriptValue(uint(124)) <=> QScriptValue(engine, uint(124))");
+ equals.insert("QScriptValue(uint(124)) <=> engine->evaluate(\"124\")");
equals.insert("QScriptValue(0) <=> QScriptValue(0)");
equals.insert("QScriptValue(0) <=> QScriptValue(0.0)");
equals.insert("QScriptValue(0) <=> QScriptValue(0, 0)");
equals.insert("QScriptValue(0) <=> QScriptValue(0, 0.0)");
equals.insert("QScriptValue(0) <=> QScriptValue(engine, 0)");
equals.insert("QScriptValue(0) <=> QScriptValue(engine, 0.0)");
+ equals.insert("QScriptValue(0) <=> engine->evaluate(\"0\")");
+ equals.insert("QScriptValue(0) <=> engine->evaluate(\"0.0\")");
equals.insert("QScriptValue(0.0) <=> QScriptValue(0)");
equals.insert("QScriptValue(0.0) <=> QScriptValue(0.0)");
equals.insert("QScriptValue(0.0) <=> QScriptValue(0, 0)");
equals.insert("QScriptValue(0.0) <=> QScriptValue(0, 0.0)");
equals.insert("QScriptValue(0.0) <=> QScriptValue(engine, 0)");
equals.insert("QScriptValue(0.0) <=> QScriptValue(engine, 0.0)");
+ equals.insert("QScriptValue(0.0) <=> engine->evaluate(\"0\")");
+ equals.insert("QScriptValue(0.0) <=> engine->evaluate(\"0.0\")");
equals.insert("QScriptValue(123.0) <=> QScriptValue(123.0)");
equals.insert("QScriptValue(123.0) <=> QScriptValue(0, 123.0)");
equals.insert("QScriptValue(123.0) <=> QScriptValue(engine, 123.0)");
+ equals.insert("QScriptValue(123.0) <=> engine->evaluate(\"123.0\")");
equals.insert("QScriptValue(6.37e-8) <=> QScriptValue(6.37e-8)");
equals.insert("QScriptValue(6.37e-8) <=> QScriptValue(0, 6.37e-8)");
equals.insert("QScriptValue(6.37e-8) <=> QScriptValue(engine, 6.37e-8)");
+ equals.insert("QScriptValue(6.37e-8) <=> engine->evaluate(\"6.37e-8\")");
equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(-6.37e-8)");
equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(0, -6.37e-8)");
equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(engine, -6.37e-8)");
+ equals.insert("QScriptValue(-6.37e-8) <=> engine->evaluate(\"-6.37e-8\")");
equals.insert("QScriptValue(0x43211234) <=> QScriptValue(0x43211234)");
equals.insert("QScriptValue(0x43211234) <=> QScriptValue(0, 0x43211234)");
equals.insert("QScriptValue(0x43211234) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(0x43211234) <=> engine->evaluate(\"0x43211234\")");
equals.insert("QScriptValue(0x10000) <=> QScriptValue(0x10000)");
equals.insert("QScriptValue(0x10000) <=> QScriptValue(0, 0x10000)");
equals.insert("QScriptValue(0x10000) <=> QScriptValue(engine, 0x10000)");
+ equals.insert("QScriptValue(0x10000) <=> engine->evaluate(\"0x10000\")");
equals.insert("QScriptValue(0x10001) <=> QScriptValue(0x10001)");
equals.insert("QScriptValue(0x10001) <=> QScriptValue(0, 0x10001)");
equals.insert("QScriptValue(0x10001) <=> QScriptValue(engine, 0x10001)");
+ equals.insert("QScriptValue(0x10001) <=> engine->evaluate(\"0x10001\")");
equals.insert("QScriptValue(qInf()) <=> QScriptValue(qInf())");
equals.insert("QScriptValue(qInf()) <=> QScriptValue(0, qInf())");
equals.insert("QScriptValue(qInf()) <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(qInf()) <=> engine->evaluate(\"Infinity\")");
equals.insert("QScriptValue(-qInf()) <=> QScriptValue(-qInf())");
equals.insert("QScriptValue(-qInf()) <=> QScriptValue(0, -qInf())");
equals.insert("QScriptValue(-qInf()) <=> QScriptValue(engine, -qInf())");
+ equals.insert("QScriptValue(-qInf()) <=> engine->evaluate(\"-Infinity\")");
equals.insert("QScriptValue(\"NaN\") <=> QScriptValue(\"NaN\")");
equals.insert("QScriptValue(\"NaN\") <=> QScriptValue(0, \"NaN\")");
equals.insert("QScriptValue(\"NaN\") <=> QScriptValue(engine, \"NaN\")");
@@ -2557,88 +3605,114 @@ void tst_QScriptValue::strictlyEquals_makeData(const char *expr)
equals.insert("QScriptValue(\"ciao\") <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
equals.insert("QScriptValue(\"ciao\") <=> QScriptValue(engine, \"ciao\")");
equals.insert("QScriptValue(\"ciao\") <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(\"ciao\") <=> engine->evaluate(\"'ciao'\")");
equals.insert("QScriptValue(QString::fromLatin1(\"ciao\")) <=> QScriptValue(\"ciao\")");
equals.insert("QScriptValue(QString::fromLatin1(\"ciao\")) <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
equals.insert("QScriptValue(QString::fromLatin1(\"ciao\")) <=> QScriptValue(0, \"ciao\")");
equals.insert("QScriptValue(QString::fromLatin1(\"ciao\")) <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
equals.insert("QScriptValue(QString::fromLatin1(\"ciao\")) <=> QScriptValue(engine, \"ciao\")");
equals.insert("QScriptValue(QString::fromLatin1(\"ciao\")) <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(QString::fromLatin1(\"ciao\")) <=> engine->evaluate(\"'ciao'\")");
equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(QString(\"\"))");
equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(QString())");
equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(0, QString(\"\"))");
equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(0, QString())");
equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(engine, QString(\"\"))");
equals.insert("QScriptValue(QString(\"\")) <=> QScriptValue(engine, QString())");
+ equals.insert("QScriptValue(QString(\"\")) <=> engine->evaluate(\"''\")");
equals.insert("QScriptValue(QString()) <=> QScriptValue(QString(\"\"))");
equals.insert("QScriptValue(QString()) <=> QScriptValue(QString())");
equals.insert("QScriptValue(QString()) <=> QScriptValue(0, QString(\"\"))");
equals.insert("QScriptValue(QString()) <=> QScriptValue(0, QString())");
equals.insert("QScriptValue(QString()) <=> QScriptValue(engine, QString(\"\"))");
equals.insert("QScriptValue(QString()) <=> QScriptValue(engine, QString())");
+ equals.insert("QScriptValue(QString()) <=> engine->evaluate(\"''\")");
equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(QString(\"0\"))");
equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(0, QString(\"0\"))");
equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(engine, QString(\"0\"))");
+ equals.insert("QScriptValue(QString(\"0\")) <=> engine->evaluate(\"'0'\")");
equals.insert("QScriptValue(QString(\"123\")) <=> QScriptValue(QString(\"123\"))");
equals.insert("QScriptValue(QString(\"123\")) <=> QScriptValue(0, QString(\"123\"))");
equals.insert("QScriptValue(QString(\"123\")) <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("QScriptValue(QString(\"123\")) <=> engine->evaluate(\"'123'\")");
equals.insert("QScriptValue(QString(\"12.4\")) <=> QScriptValue(QString(\"12.4\"))");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> engine->evaluate(\"'12.4'\")");
equals.insert("QScriptValue(0, QScriptValue::UndefinedValue) <=> QScriptValue(QScriptValue::UndefinedValue)");
equals.insert("QScriptValue(0, QScriptValue::UndefinedValue) <=> QScriptValue(0, QScriptValue::UndefinedValue)");
equals.insert("QScriptValue(0, QScriptValue::UndefinedValue) <=> QScriptValue(engine, QScriptValue::UndefinedValue)");
equals.insert("QScriptValue(0, QScriptValue::UndefinedValue) <=> engine->evaluate(\"{}\")");
+ equals.insert("QScriptValue(0, QScriptValue::UndefinedValue) <=> engine->evaluate(\"undefined\")");
equals.insert("QScriptValue(0, QScriptValue::UndefinedValue) <=> engine->undefinedValue()");
equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(QScriptValue::NullValue)");
equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(0, QScriptValue::NullValue)");
equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(engine, QScriptValue::NullValue)");
+ equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> engine->evaluate(\"null\")");
equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> engine->nullValue()");
+ equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> engine->newQObject(0)");
equals.insert("QScriptValue(0, true) <=> QScriptValue(true)");
equals.insert("QScriptValue(0, true) <=> QScriptValue(0, true)");
equals.insert("QScriptValue(0, true) <=> QScriptValue(engine, true)");
+ equals.insert("QScriptValue(0, true) <=> engine->evaluate(\"true\")");
equals.insert("QScriptValue(0, false) <=> QScriptValue(false)");
equals.insert("QScriptValue(0, false) <=> QScriptValue(0, false)");
equals.insert("QScriptValue(0, false) <=> QScriptValue(engine, false)");
+ equals.insert("QScriptValue(0, false) <=> engine->evaluate(\"false\")");
equals.insert("QScriptValue(0, int(122)) <=> QScriptValue(int(122))");
equals.insert("QScriptValue(0, int(122)) <=> QScriptValue(0, int(122))");
equals.insert("QScriptValue(0, int(122)) <=> QScriptValue(engine, int(122))");
+ equals.insert("QScriptValue(0, int(122)) <=> engine->evaluate(\"122\")");
equals.insert("QScriptValue(0, uint(124)) <=> QScriptValue(uint(124))");
equals.insert("QScriptValue(0, uint(124)) <=> QScriptValue(0, uint(124))");
equals.insert("QScriptValue(0, uint(124)) <=> QScriptValue(engine, uint(124))");
+ equals.insert("QScriptValue(0, uint(124)) <=> engine->evaluate(\"124\")");
equals.insert("QScriptValue(0, 0) <=> QScriptValue(0)");
equals.insert("QScriptValue(0, 0) <=> QScriptValue(0.0)");
equals.insert("QScriptValue(0, 0) <=> QScriptValue(0, 0)");
equals.insert("QScriptValue(0, 0) <=> QScriptValue(0, 0.0)");
equals.insert("QScriptValue(0, 0) <=> QScriptValue(engine, 0)");
equals.insert("QScriptValue(0, 0) <=> QScriptValue(engine, 0.0)");
+ equals.insert("QScriptValue(0, 0) <=> engine->evaluate(\"0\")");
+ equals.insert("QScriptValue(0, 0) <=> engine->evaluate(\"0.0\")");
equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(0)");
equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(0.0)");
equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(0, 0)");
equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(0, 0.0)");
equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(engine, 0)");
equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(engine, 0.0)");
+ equals.insert("QScriptValue(0, 0.0) <=> engine->evaluate(\"0\")");
+ equals.insert("QScriptValue(0, 0.0) <=> engine->evaluate(\"0.0\")");
equals.insert("QScriptValue(0, 123.0) <=> QScriptValue(123.0)");
equals.insert("QScriptValue(0, 123.0) <=> QScriptValue(0, 123.0)");
equals.insert("QScriptValue(0, 123.0) <=> QScriptValue(engine, 123.0)");
+ equals.insert("QScriptValue(0, 123.0) <=> engine->evaluate(\"123.0\")");
equals.insert("QScriptValue(0, 6.37e-8) <=> QScriptValue(6.37e-8)");
equals.insert("QScriptValue(0, 6.37e-8) <=> QScriptValue(0, 6.37e-8)");
equals.insert("QScriptValue(0, 6.37e-8) <=> QScriptValue(engine, 6.37e-8)");
+ equals.insert("QScriptValue(0, 6.37e-8) <=> engine->evaluate(\"6.37e-8\")");
equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(-6.37e-8)");
equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(0, -6.37e-8)");
equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(engine, -6.37e-8)");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> engine->evaluate(\"-6.37e-8\")");
equals.insert("QScriptValue(0, 0x43211234) <=> QScriptValue(0x43211234)");
equals.insert("QScriptValue(0, 0x43211234) <=> QScriptValue(0, 0x43211234)");
equals.insert("QScriptValue(0, 0x43211234) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(0, 0x43211234) <=> engine->evaluate(\"0x43211234\")");
equals.insert("QScriptValue(0, 0x10000) <=> QScriptValue(0x10000)");
equals.insert("QScriptValue(0, 0x10000) <=> QScriptValue(0, 0x10000)");
equals.insert("QScriptValue(0, 0x10000) <=> QScriptValue(engine, 0x10000)");
+ equals.insert("QScriptValue(0, 0x10000) <=> engine->evaluate(\"0x10000\")");
equals.insert("QScriptValue(0, 0x10001) <=> QScriptValue(0x10001)");
equals.insert("QScriptValue(0, 0x10001) <=> QScriptValue(0, 0x10001)");
equals.insert("QScriptValue(0, 0x10001) <=> QScriptValue(engine, 0x10001)");
+ equals.insert("QScriptValue(0, 0x10001) <=> engine->evaluate(\"0x10001\")");
equals.insert("QScriptValue(0, qInf()) <=> QScriptValue(qInf())");
equals.insert("QScriptValue(0, qInf()) <=> QScriptValue(0, qInf())");
equals.insert("QScriptValue(0, qInf()) <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(0, qInf()) <=> engine->evaluate(\"Infinity\")");
equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(-qInf())");
equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(0, -qInf())");
equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(engine, -qInf())");
+ equals.insert("QScriptValue(0, -qInf()) <=> engine->evaluate(\"-Infinity\")");
equals.insert("QScriptValue(0, \"NaN\") <=> QScriptValue(\"NaN\")");
equals.insert("QScriptValue(0, \"NaN\") <=> QScriptValue(0, \"NaN\")");
equals.insert("QScriptValue(0, \"NaN\") <=> QScriptValue(engine, \"NaN\")");
@@ -2654,88 +3728,113 @@ void tst_QScriptValue::strictlyEquals_makeData(const char *expr)
equals.insert("QScriptValue(0, \"ciao\") <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
equals.insert("QScriptValue(0, \"ciao\") <=> QScriptValue(engine, \"ciao\")");
equals.insert("QScriptValue(0, \"ciao\") <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(0, \"ciao\") <=> engine->evaluate(\"'ciao'\")");
equals.insert("QScriptValue(0, QString::fromLatin1(\"ciao\")) <=> QScriptValue(\"ciao\")");
equals.insert("QScriptValue(0, QString::fromLatin1(\"ciao\")) <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
equals.insert("QScriptValue(0, QString::fromLatin1(\"ciao\")) <=> QScriptValue(0, \"ciao\")");
equals.insert("QScriptValue(0, QString::fromLatin1(\"ciao\")) <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
equals.insert("QScriptValue(0, QString::fromLatin1(\"ciao\")) <=> QScriptValue(engine, \"ciao\")");
equals.insert("QScriptValue(0, QString::fromLatin1(\"ciao\")) <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(0, QString::fromLatin1(\"ciao\")) <=> engine->evaluate(\"'ciao'\")");
equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(QString(\"\"))");
equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(QString())");
equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(0, QString(\"\"))");
equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(0, QString())");
equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(engine, QString(\"\"))");
equals.insert("QScriptValue(0, QString(\"\")) <=> QScriptValue(engine, QString())");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> engine->evaluate(\"''\")");
equals.insert("QScriptValue(0, QString()) <=> QScriptValue(QString(\"\"))");
equals.insert("QScriptValue(0, QString()) <=> QScriptValue(QString())");
equals.insert("QScriptValue(0, QString()) <=> QScriptValue(0, QString(\"\"))");
equals.insert("QScriptValue(0, QString()) <=> QScriptValue(0, QString())");
equals.insert("QScriptValue(0, QString()) <=> QScriptValue(engine, QString(\"\"))");
equals.insert("QScriptValue(0, QString()) <=> QScriptValue(engine, QString())");
+ equals.insert("QScriptValue(0, QString()) <=> engine->evaluate(\"''\")");
equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(QString(\"0\"))");
equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(0, QString(\"0\"))");
equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(engine, QString(\"0\"))");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> engine->evaluate(\"'0'\")");
equals.insert("QScriptValue(0, QString(\"123\")) <=> QScriptValue(QString(\"123\"))");
equals.insert("QScriptValue(0, QString(\"123\")) <=> QScriptValue(0, QString(\"123\"))");
equals.insert("QScriptValue(0, QString(\"123\")) <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("QScriptValue(0, QString(\"123\")) <=> engine->evaluate(\"'123'\")");
equals.insert("QScriptValue(0, QString(\"12.3\")) <=> QScriptValue(0, QString(\"12.3\"))");
equals.insert("QScriptValue(engine, QScriptValue::UndefinedValue) <=> QScriptValue(QScriptValue::UndefinedValue)");
equals.insert("QScriptValue(engine, QScriptValue::UndefinedValue) <=> QScriptValue(0, QScriptValue::UndefinedValue)");
equals.insert("QScriptValue(engine, QScriptValue::UndefinedValue) <=> QScriptValue(engine, QScriptValue::UndefinedValue)");
equals.insert("QScriptValue(engine, QScriptValue::UndefinedValue) <=> engine->evaluate(\"{}\")");
+ equals.insert("QScriptValue(engine, QScriptValue::UndefinedValue) <=> engine->evaluate(\"undefined\")");
equals.insert("QScriptValue(engine, QScriptValue::UndefinedValue) <=> engine->undefinedValue()");
equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> QScriptValue(QScriptValue::NullValue)");
equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> QScriptValue(0, QScriptValue::NullValue)");
equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> QScriptValue(engine, QScriptValue::NullValue)");
+ equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> engine->evaluate(\"null\")");
equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> engine->nullValue()");
+ equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> engine->newQObject(0)");
equals.insert("QScriptValue(engine, true) <=> QScriptValue(true)");
equals.insert("QScriptValue(engine, true) <=> QScriptValue(0, true)");
equals.insert("QScriptValue(engine, true) <=> QScriptValue(engine, true)");
+ equals.insert("QScriptValue(engine, true) <=> engine->evaluate(\"true\")");
equals.insert("QScriptValue(engine, false) <=> QScriptValue(false)");
equals.insert("QScriptValue(engine, false) <=> QScriptValue(0, false)");
equals.insert("QScriptValue(engine, false) <=> QScriptValue(engine, false)");
+ equals.insert("QScriptValue(engine, false) <=> engine->evaluate(\"false\")");
equals.insert("QScriptValue(engine, int(122)) <=> QScriptValue(int(122))");
equals.insert("QScriptValue(engine, int(122)) <=> QScriptValue(0, int(122))");
equals.insert("QScriptValue(engine, int(122)) <=> QScriptValue(engine, int(122))");
+ equals.insert("QScriptValue(engine, int(122)) <=> engine->evaluate(\"122\")");
equals.insert("QScriptValue(engine, uint(124)) <=> QScriptValue(uint(124))");
equals.insert("QScriptValue(engine, uint(124)) <=> QScriptValue(0, uint(124))");
equals.insert("QScriptValue(engine, uint(124)) <=> QScriptValue(engine, uint(124))");
+ equals.insert("QScriptValue(engine, uint(124)) <=> engine->evaluate(\"124\")");
equals.insert("QScriptValue(engine, 0) <=> QScriptValue(0)");
equals.insert("QScriptValue(engine, 0) <=> QScriptValue(0.0)");
equals.insert("QScriptValue(engine, 0) <=> QScriptValue(0, 0)");
equals.insert("QScriptValue(engine, 0) <=> QScriptValue(0, 0.0)");
equals.insert("QScriptValue(engine, 0) <=> QScriptValue(engine, 0)");
equals.insert("QScriptValue(engine, 0) <=> QScriptValue(engine, 0.0)");
+ equals.insert("QScriptValue(engine, 0) <=> engine->evaluate(\"0\")");
+ equals.insert("QScriptValue(engine, 0) <=> engine->evaluate(\"0.0\")");
equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(0)");
equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(0.0)");
equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(0, 0)");
equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(0, 0.0)");
equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(engine, 0)");
equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(engine, 0.0)");
+ equals.insert("QScriptValue(engine, 0.0) <=> engine->evaluate(\"0\")");
+ equals.insert("QScriptValue(engine, 0.0) <=> engine->evaluate(\"0.0\")");
equals.insert("QScriptValue(engine, 123.0) <=> QScriptValue(123.0)");
equals.insert("QScriptValue(engine, 123.0) <=> QScriptValue(0, 123.0)");
equals.insert("QScriptValue(engine, 123.0) <=> QScriptValue(engine, 123.0)");
+ equals.insert("QScriptValue(engine, 123.0) <=> engine->evaluate(\"123.0\")");
equals.insert("QScriptValue(engine, 6.37e-8) <=> QScriptValue(6.37e-8)");
equals.insert("QScriptValue(engine, 6.37e-8) <=> QScriptValue(0, 6.37e-8)");
equals.insert("QScriptValue(engine, 6.37e-8) <=> QScriptValue(engine, 6.37e-8)");
+ equals.insert("QScriptValue(engine, 6.37e-8) <=> engine->evaluate(\"6.37e-8\")");
equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(-6.37e-8)");
equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(0, -6.37e-8)");
equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(engine, -6.37e-8)");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> engine->evaluate(\"-6.37e-8\")");
equals.insert("QScriptValue(engine, 0x43211234) <=> QScriptValue(0x43211234)");
equals.insert("QScriptValue(engine, 0x43211234) <=> QScriptValue(0, 0x43211234)");
equals.insert("QScriptValue(engine, 0x43211234) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("QScriptValue(engine, 0x43211234) <=> engine->evaluate(\"0x43211234\")");
equals.insert("QScriptValue(engine, 0x10000) <=> QScriptValue(0x10000)");
equals.insert("QScriptValue(engine, 0x10000) <=> QScriptValue(0, 0x10000)");
equals.insert("QScriptValue(engine, 0x10000) <=> QScriptValue(engine, 0x10000)");
+ equals.insert("QScriptValue(engine, 0x10000) <=> engine->evaluate(\"0x10000\")");
equals.insert("QScriptValue(engine, 0x10001) <=> QScriptValue(0x10001)");
equals.insert("QScriptValue(engine, 0x10001) <=> QScriptValue(0, 0x10001)");
equals.insert("QScriptValue(engine, 0x10001) <=> QScriptValue(engine, 0x10001)");
+ equals.insert("QScriptValue(engine, 0x10001) <=> engine->evaluate(\"0x10001\")");
equals.insert("QScriptValue(engine, qInf()) <=> QScriptValue(qInf())");
equals.insert("QScriptValue(engine, qInf()) <=> QScriptValue(0, qInf())");
equals.insert("QScriptValue(engine, qInf()) <=> QScriptValue(engine, qInf())");
+ equals.insert("QScriptValue(engine, qInf()) <=> engine->evaluate(\"Infinity\")");
equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(-qInf())");
equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(0, -qInf())");
equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(engine, -qInf())");
+ equals.insert("QScriptValue(engine, -qInf()) <=> engine->evaluate(\"-Infinity\")");
equals.insert("QScriptValue(engine, \"NaN\") <=> QScriptValue(\"NaN\")");
equals.insert("QScriptValue(engine, \"NaN\") <=> QScriptValue(0, \"NaN\")");
equals.insert("QScriptValue(engine, \"NaN\") <=> QScriptValue(engine, \"NaN\")");
@@ -2751,36 +3850,43 @@ void tst_QScriptValue::strictlyEquals_makeData(const char *expr)
equals.insert("QScriptValue(engine, \"ciao\") <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
equals.insert("QScriptValue(engine, \"ciao\") <=> QScriptValue(engine, \"ciao\")");
equals.insert("QScriptValue(engine, \"ciao\") <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(engine, \"ciao\") <=> engine->evaluate(\"'ciao'\")");
equals.insert("QScriptValue(engine, QString::fromLatin1(\"ciao\")) <=> QScriptValue(\"ciao\")");
equals.insert("QScriptValue(engine, QString::fromLatin1(\"ciao\")) <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
equals.insert("QScriptValue(engine, QString::fromLatin1(\"ciao\")) <=> QScriptValue(0, \"ciao\")");
equals.insert("QScriptValue(engine, QString::fromLatin1(\"ciao\")) <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
equals.insert("QScriptValue(engine, QString::fromLatin1(\"ciao\")) <=> QScriptValue(engine, \"ciao\")");
equals.insert("QScriptValue(engine, QString::fromLatin1(\"ciao\")) <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("QScriptValue(engine, QString::fromLatin1(\"ciao\")) <=> engine->evaluate(\"'ciao'\")");
equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(QString(\"\"))");
equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(QString())");
equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(0, QString(\"\"))");
equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(0, QString())");
equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(engine, QString(\"\"))");
equals.insert("QScriptValue(engine, QString(\"\")) <=> QScriptValue(engine, QString())");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> engine->evaluate(\"''\")");
equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(QString(\"\"))");
equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(QString())");
equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(0, QString(\"\"))");
equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(0, QString())");
equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(engine, QString(\"\"))");
equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(engine, QString())");
+ equals.insert("QScriptValue(engine, QString()) <=> engine->evaluate(\"''\")");
equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(QString(\"0\"))");
equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(0, QString(\"0\"))");
equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(engine, QString(\"0\"))");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> engine->evaluate(\"'0'\")");
equals.insert("QScriptValue(engine, QString(\"123\")) <=> QScriptValue(QString(\"123\"))");
equals.insert("QScriptValue(engine, QString(\"123\")) <=> QScriptValue(0, QString(\"123\"))");
equals.insert("QScriptValue(engine, QString(\"123\")) <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("QScriptValue(engine, QString(\"123\")) <=> engine->evaluate(\"'123'\")");
equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> QScriptValue(engine, QString(\"1.23\"))");
equals.insert("engine->evaluate(\"[]\") <=> engine->evaluate(\"[]\")");
equals.insert("engine->evaluate(\"{}\") <=> QScriptValue(QScriptValue::UndefinedValue)");
equals.insert("engine->evaluate(\"{}\") <=> QScriptValue(0, QScriptValue::UndefinedValue)");
equals.insert("engine->evaluate(\"{}\") <=> QScriptValue(engine, QScriptValue::UndefinedValue)");
equals.insert("engine->evaluate(\"{}\") <=> engine->evaluate(\"{}\")");
+ equals.insert("engine->evaluate(\"{}\") <=> engine->evaluate(\"undefined\")");
equals.insert("engine->evaluate(\"{}\") <=> engine->undefinedValue()");
equals.insert("engine->evaluate(\"Object.prototype\") <=> engine->evaluate(\"Object.prototype\")");
equals.insert("engine->evaluate(\"Date.prototype\") <=> engine->evaluate(\"Date.prototype\")");
@@ -2798,15 +3904,138 @@ void tst_QScriptValue::strictlyEquals_makeData(const char *expr)
equals.insert("engine->evaluate(\"new Object()\") <=> engine->evaluate(\"new Object()\")");
equals.insert("engine->evaluate(\"new Array()\") <=> engine->evaluate(\"new Array()\")");
equals.insert("engine->evaluate(\"new Error()\") <=> engine->evaluate(\"new Error()\")");
+ equals.insert("engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\") <=> engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")");
+ equals.insert("engine->evaluate(\"Undefined\") <=> engine->evaluate(\"Undefined\")");
+ equals.insert("engine->evaluate(\"Null\") <=> engine->evaluate(\"Null\")");
+ equals.insert("engine->evaluate(\"True\") <=> engine->evaluate(\"True\")");
+ equals.insert("engine->evaluate(\"False\") <=> engine->evaluate(\"False\")");
+ equals.insert("engine->evaluate(\"undefined\") <=> QScriptValue(QScriptValue::UndefinedValue)");
+ equals.insert("engine->evaluate(\"undefined\") <=> QScriptValue(0, QScriptValue::UndefinedValue)");
+ equals.insert("engine->evaluate(\"undefined\") <=> QScriptValue(engine, QScriptValue::UndefinedValue)");
+ equals.insert("engine->evaluate(\"undefined\") <=> engine->evaluate(\"{}\")");
+ equals.insert("engine->evaluate(\"undefined\") <=> engine->evaluate(\"undefined\")");
+ equals.insert("engine->evaluate(\"undefined\") <=> engine->undefinedValue()");
+ equals.insert("engine->evaluate(\"null\") <=> QScriptValue(QScriptValue::NullValue)");
+ equals.insert("engine->evaluate(\"null\") <=> QScriptValue(0, QScriptValue::NullValue)");
+ equals.insert("engine->evaluate(\"null\") <=> QScriptValue(engine, QScriptValue::NullValue)");
+ equals.insert("engine->evaluate(\"null\") <=> engine->evaluate(\"null\")");
+ equals.insert("engine->evaluate(\"null\") <=> engine->nullValue()");
+ equals.insert("engine->evaluate(\"null\") <=> engine->newQObject(0)");
+ equals.insert("engine->evaluate(\"true\") <=> QScriptValue(true)");
+ equals.insert("engine->evaluate(\"true\") <=> QScriptValue(0, true)");
+ equals.insert("engine->evaluate(\"true\") <=> QScriptValue(engine, true)");
+ equals.insert("engine->evaluate(\"true\") <=> engine->evaluate(\"true\")");
+ equals.insert("engine->evaluate(\"false\") <=> QScriptValue(false)");
+ equals.insert("engine->evaluate(\"false\") <=> QScriptValue(0, false)");
+ equals.insert("engine->evaluate(\"false\") <=> QScriptValue(engine, false)");
+ equals.insert("engine->evaluate(\"false\") <=> engine->evaluate(\"false\")");
+ equals.insert("engine->evaluate(\"122\") <=> QScriptValue(int(122))");
+ equals.insert("engine->evaluate(\"122\") <=> QScriptValue(0, int(122))");
+ equals.insert("engine->evaluate(\"122\") <=> QScriptValue(engine, int(122))");
+ equals.insert("engine->evaluate(\"122\") <=> engine->evaluate(\"122\")");
+ equals.insert("engine->evaluate(\"124\") <=> QScriptValue(uint(124))");
+ equals.insert("engine->evaluate(\"124\") <=> QScriptValue(0, uint(124))");
+ equals.insert("engine->evaluate(\"124\") <=> QScriptValue(engine, uint(124))");
+ equals.insert("engine->evaluate(\"124\") <=> engine->evaluate(\"124\")");
+ equals.insert("engine->evaluate(\"0\") <=> QScriptValue(0)");
+ equals.insert("engine->evaluate(\"0\") <=> QScriptValue(0.0)");
+ equals.insert("engine->evaluate(\"0\") <=> QScriptValue(0, 0)");
+ equals.insert("engine->evaluate(\"0\") <=> QScriptValue(0, 0.0)");
+ equals.insert("engine->evaluate(\"0\") <=> QScriptValue(engine, 0)");
+ equals.insert("engine->evaluate(\"0\") <=> QScriptValue(engine, 0.0)");
+ equals.insert("engine->evaluate(\"0\") <=> engine->evaluate(\"0\")");
+ equals.insert("engine->evaluate(\"0\") <=> engine->evaluate(\"0.0\")");
+ equals.insert("engine->evaluate(\"0.0\") <=> QScriptValue(0)");
+ equals.insert("engine->evaluate(\"0.0\") <=> QScriptValue(0.0)");
+ equals.insert("engine->evaluate(\"0.0\") <=> QScriptValue(0, 0)");
+ equals.insert("engine->evaluate(\"0.0\") <=> QScriptValue(0, 0.0)");
+ equals.insert("engine->evaluate(\"0.0\") <=> QScriptValue(engine, 0)");
+ equals.insert("engine->evaluate(\"0.0\") <=> QScriptValue(engine, 0.0)");
+ equals.insert("engine->evaluate(\"0.0\") <=> engine->evaluate(\"0\")");
+ equals.insert("engine->evaluate(\"0.0\") <=> engine->evaluate(\"0.0\")");
+ equals.insert("engine->evaluate(\"123.0\") <=> QScriptValue(123.0)");
+ equals.insert("engine->evaluate(\"123.0\") <=> QScriptValue(0, 123.0)");
+ equals.insert("engine->evaluate(\"123.0\") <=> QScriptValue(engine, 123.0)");
+ equals.insert("engine->evaluate(\"123.0\") <=> engine->evaluate(\"123.0\")");
+ equals.insert("engine->evaluate(\"6.37e-8\") <=> QScriptValue(6.37e-8)");
+ equals.insert("engine->evaluate(\"6.37e-8\") <=> QScriptValue(0, 6.37e-8)");
+ equals.insert("engine->evaluate(\"6.37e-8\") <=> QScriptValue(engine, 6.37e-8)");
+ equals.insert("engine->evaluate(\"6.37e-8\") <=> engine->evaluate(\"6.37e-8\")");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> QScriptValue(-6.37e-8)");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> QScriptValue(0, -6.37e-8)");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> QScriptValue(engine, -6.37e-8)");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> engine->evaluate(\"-6.37e-8\")");
+ equals.insert("engine->evaluate(\"0x43211234\") <=> QScriptValue(0x43211234)");
+ equals.insert("engine->evaluate(\"0x43211234\") <=> QScriptValue(0, 0x43211234)");
+ equals.insert("engine->evaluate(\"0x43211234\") <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("engine->evaluate(\"0x43211234\") <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("engine->evaluate(\"0x10000\") <=> QScriptValue(0x10000)");
+ equals.insert("engine->evaluate(\"0x10000\") <=> QScriptValue(0, 0x10000)");
+ equals.insert("engine->evaluate(\"0x10000\") <=> QScriptValue(engine, 0x10000)");
+ equals.insert("engine->evaluate(\"0x10000\") <=> engine->evaluate(\"0x10000\")");
+ equals.insert("engine->evaluate(\"0x10001\") <=> QScriptValue(0x10001)");
+ equals.insert("engine->evaluate(\"0x10001\") <=> QScriptValue(0, 0x10001)");
+ equals.insert("engine->evaluate(\"0x10001\") <=> QScriptValue(engine, 0x10001)");
+ equals.insert("engine->evaluate(\"0x10001\") <=> engine->evaluate(\"0x10001\")");
+ equals.insert("engine->evaluate(\"Infinity\") <=> QScriptValue(qInf())");
+ equals.insert("engine->evaluate(\"Infinity\") <=> QScriptValue(0, qInf())");
+ equals.insert("engine->evaluate(\"Infinity\") <=> QScriptValue(engine, qInf())");
+ equals.insert("engine->evaluate(\"Infinity\") <=> engine->evaluate(\"Infinity\")");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(-qInf())");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(0, -qInf())");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(engine, -qInf())");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> engine->evaluate(\"-Infinity\")");
+ equals.insert("engine->evaluate(\"'ciao'\") <=> QScriptValue(\"ciao\")");
+ equals.insert("engine->evaluate(\"'ciao'\") <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->evaluate(\"'ciao'\") <=> QScriptValue(0, \"ciao\")");
+ equals.insert("engine->evaluate(\"'ciao'\") <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->evaluate(\"'ciao'\") <=> QScriptValue(engine, \"ciao\")");
+ equals.insert("engine->evaluate(\"'ciao'\") <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->evaluate(\"'ciao'\") <=> engine->evaluate(\"'ciao'\")");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(QString(\"\"))");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(QString())");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(0, QString(\"\"))");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(0, QString())");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(engine, QString(\"\"))");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(engine, QString())");
+ equals.insert("engine->evaluate(\"''\") <=> engine->evaluate(\"''\")");
+ equals.insert("engine->evaluate(\"'0'\") <=> QScriptValue(QString(\"0\"))");
+ equals.insert("engine->evaluate(\"'0'\") <=> QScriptValue(0, QString(\"0\"))");
+ equals.insert("engine->evaluate(\"'0'\") <=> QScriptValue(engine, QString(\"0\"))");
+ equals.insert("engine->evaluate(\"'0'\") <=> engine->evaluate(\"'0'\")");
+ equals.insert("engine->evaluate(\"'123'\") <=> QScriptValue(QString(\"123\"))");
+ equals.insert("engine->evaluate(\"'123'\") <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("engine->evaluate(\"'123'\") <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("engine->evaluate(\"'123'\") <=> engine->evaluate(\"'123'\")");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> QScriptValue(QString(\"12.4\"))");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> engine->evaluate(\"'12.4'\")");
equals.insert("engine->nullValue() <=> QScriptValue(QScriptValue::NullValue)");
equals.insert("engine->nullValue() <=> QScriptValue(0, QScriptValue::NullValue)");
equals.insert("engine->nullValue() <=> QScriptValue(engine, QScriptValue::NullValue)");
+ equals.insert("engine->nullValue() <=> engine->evaluate(\"null\")");
equals.insert("engine->nullValue() <=> engine->nullValue()");
+ equals.insert("engine->nullValue() <=> engine->newQObject(0)");
equals.insert("engine->undefinedValue() <=> QScriptValue(QScriptValue::UndefinedValue)");
equals.insert("engine->undefinedValue() <=> QScriptValue(0, QScriptValue::UndefinedValue)");
equals.insert("engine->undefinedValue() <=> QScriptValue(engine, QScriptValue::UndefinedValue)");
equals.insert("engine->undefinedValue() <=> engine->evaluate(\"{}\")");
+ equals.insert("engine->undefinedValue() <=> engine->evaluate(\"undefined\")");
equals.insert("engine->undefinedValue() <=> engine->undefinedValue()");
+ equals.insert("engine->newObject() <=> engine->newObject()");
+ equals.insert("engine->newArray() <=> engine->newArray()");
+ equals.insert("engine->newArray(10) <=> engine->newArray(10)");
+ equals.insert("engine->newDate(QDateTime()) <=> engine->newDate(QDateTime())");
+ equals.insert("engine->newQMetaObject(&QObject::staticMetaObject) <=> engine->newQMetaObject(&QObject::staticMetaObject)");
+ equals.insert("engine->newVariant(QVariant()) <=> engine->newVariant(QVariant())");
+ equals.insert("engine->newVariant(QVariant(123)) <=> engine->newVariant(QVariant(123))");
+ equals.insert("engine->newVariant(QVariant(false)) <=> engine->newVariant(QVariant(false))");
+ equals.insert("engine->newQObject(0) <=> QScriptValue(QScriptValue::NullValue)");
+ equals.insert("engine->newQObject(0) <=> QScriptValue(0, QScriptValue::NullValue)");
+ equals.insert("engine->newQObject(0) <=> QScriptValue(engine, QScriptValue::NullValue)");
+ equals.insert("engine->newQObject(0) <=> engine->evaluate(\"null\")");
+ equals.insert("engine->newQObject(0) <=> engine->nullValue()");
+ equals.insert("engine->newQObject(0) <=> engine->newQObject(0)");
+ equals.insert("engine->newQObject(engine) <=> engine->newQObject(engine)");
}
QHash<QString, QScriptValue>::const_iterator it;
for (it = m_values.constBegin(); it != m_values.constEnd(); ++it) {
@@ -2872,6 +4101,19 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(QScriptValue::NullValue) <=> QScriptValue(engine, \"Infinity\")");
equals.insert("QScriptValue(QScriptValue::NullValue) <=> QScriptValue(engine, QString(\"123\"))");
equals.insert("QScriptValue(QScriptValue::NullValue) <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("QScriptValue(QScriptValue::NullValue) <=> engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")");
+ equals.insert("QScriptValue(QScriptValue::NullValue) <=> engine->evaluate(\"true\")");
+ equals.insert("QScriptValue(QScriptValue::NullValue) <=> engine->evaluate(\"122\")");
+ equals.insert("QScriptValue(QScriptValue::NullValue) <=> engine->evaluate(\"124\")");
+ equals.insert("QScriptValue(QScriptValue::NullValue) <=> engine->evaluate(\"123.0\")");
+ equals.insert("QScriptValue(QScriptValue::NullValue) <=> engine->evaluate(\"6.37e-8\")");
+ equals.insert("QScriptValue(QScriptValue::NullValue) <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("QScriptValue(QScriptValue::NullValue) <=> engine->evaluate(\"0x10000\")");
+ equals.insert("QScriptValue(QScriptValue::NullValue) <=> engine->evaluate(\"0x10001\")");
+ equals.insert("QScriptValue(QScriptValue::NullValue) <=> engine->evaluate(\"Infinity\")");
+ equals.insert("QScriptValue(QScriptValue::NullValue) <=> engine->evaluate(\"'123'\")");
+ equals.insert("QScriptValue(QScriptValue::NullValue) <=> engine->evaluate(\"'12.4'\")");
+ equals.insert("QScriptValue(QScriptValue::NullValue) <=> engine->newVariant(QVariant(123))");
equals.insert("QScriptValue(true) <=> QScriptValue(int(122))");
equals.insert("QScriptValue(true) <=> QScriptValue(uint(124))");
equals.insert("QScriptValue(true) <=> QScriptValue(123.0)");
@@ -2902,6 +4144,17 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(true) <=> QScriptValue(engine, \"Infinity\")");
equals.insert("QScriptValue(true) <=> QScriptValue(engine, QString(\"123\"))");
equals.insert("QScriptValue(true) <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("QScriptValue(true) <=> engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")");
+ equals.insert("QScriptValue(true) <=> engine->evaluate(\"122\")");
+ equals.insert("QScriptValue(true) <=> engine->evaluate(\"124\")");
+ equals.insert("QScriptValue(true) <=> engine->evaluate(\"123.0\")");
+ equals.insert("QScriptValue(true) <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("QScriptValue(true) <=> engine->evaluate(\"0x10000\")");
+ equals.insert("QScriptValue(true) <=> engine->evaluate(\"0x10001\")");
+ equals.insert("QScriptValue(true) <=> engine->evaluate(\"Infinity\")");
+ equals.insert("QScriptValue(true) <=> engine->evaluate(\"'123'\")");
+ equals.insert("QScriptValue(true) <=> engine->evaluate(\"'12.4'\")");
+ equals.insert("QScriptValue(true) <=> engine->newVariant(QVariant(123))");
equals.insert("QScriptValue(false) <=> QScriptValue(true)");
equals.insert("QScriptValue(false) <=> QScriptValue(int(122))");
equals.insert("QScriptValue(false) <=> QScriptValue(uint(124))");
@@ -2938,6 +4191,19 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(false) <=> QScriptValue(engine, \"Infinity\")");
equals.insert("QScriptValue(false) <=> QScriptValue(engine, QString(\"123\"))");
equals.insert("QScriptValue(false) <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("QScriptValue(false) <=> engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")");
+ equals.insert("QScriptValue(false) <=> engine->evaluate(\"true\")");
+ equals.insert("QScriptValue(false) <=> engine->evaluate(\"122\")");
+ equals.insert("QScriptValue(false) <=> engine->evaluate(\"124\")");
+ equals.insert("QScriptValue(false) <=> engine->evaluate(\"123.0\")");
+ equals.insert("QScriptValue(false) <=> engine->evaluate(\"6.37e-8\")");
+ equals.insert("QScriptValue(false) <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("QScriptValue(false) <=> engine->evaluate(\"0x10000\")");
+ equals.insert("QScriptValue(false) <=> engine->evaluate(\"0x10001\")");
+ equals.insert("QScriptValue(false) <=> engine->evaluate(\"Infinity\")");
+ equals.insert("QScriptValue(false) <=> engine->evaluate(\"'123'\")");
+ equals.insert("QScriptValue(false) <=> engine->evaluate(\"'12.4'\")");
+ equals.insert("QScriptValue(false) <=> engine->newVariant(QVariant(123))");
equals.insert("QScriptValue(int(122)) <=> QScriptValue(uint(124))");
equals.insert("QScriptValue(int(122)) <=> QScriptValue(123.0)");
equals.insert("QScriptValue(int(122)) <=> QScriptValue(0x43211234)");
@@ -2962,6 +4228,14 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(int(122)) <=> QScriptValue(engine, qInf())");
equals.insert("QScriptValue(int(122)) <=> QScriptValue(engine, \"Infinity\")");
equals.insert("QScriptValue(int(122)) <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("QScriptValue(int(122)) <=> engine->evaluate(\"124\")");
+ equals.insert("QScriptValue(int(122)) <=> engine->evaluate(\"123.0\")");
+ equals.insert("QScriptValue(int(122)) <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("QScriptValue(int(122)) <=> engine->evaluate(\"0x10000\")");
+ equals.insert("QScriptValue(int(122)) <=> engine->evaluate(\"0x10001\")");
+ equals.insert("QScriptValue(int(122)) <=> engine->evaluate(\"Infinity\")");
+ equals.insert("QScriptValue(int(122)) <=> engine->evaluate(\"'123'\")");
+ equals.insert("QScriptValue(int(122)) <=> engine->newVariant(QVariant(123))");
equals.insert("QScriptValue(uint(124)) <=> QScriptValue(0x43211234)");
equals.insert("QScriptValue(uint(124)) <=> QScriptValue(0x10000)");
equals.insert("QScriptValue(uint(124)) <=> QScriptValue(0x10001)");
@@ -2977,6 +4251,10 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(uint(124)) <=> QScriptValue(engine, 0x10001)");
equals.insert("QScriptValue(uint(124)) <=> QScriptValue(engine, qInf())");
equals.insert("QScriptValue(uint(124)) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(uint(124)) <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("QScriptValue(uint(124)) <=> engine->evaluate(\"0x10000\")");
+ equals.insert("QScriptValue(uint(124)) <=> engine->evaluate(\"0x10001\")");
+ equals.insert("QScriptValue(uint(124)) <=> engine->evaluate(\"Infinity\")");
equals.insert("QScriptValue(0) <=> QScriptValue(true)");
equals.insert("QScriptValue(0) <=> QScriptValue(int(122))");
equals.insert("QScriptValue(0) <=> QScriptValue(uint(124))");
@@ -3013,6 +4291,19 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(0) <=> QScriptValue(engine, \"Infinity\")");
equals.insert("QScriptValue(0) <=> QScriptValue(engine, QString(\"123\"))");
equals.insert("QScriptValue(0) <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("QScriptValue(0) <=> engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")");
+ equals.insert("QScriptValue(0) <=> engine->evaluate(\"true\")");
+ equals.insert("QScriptValue(0) <=> engine->evaluate(\"122\")");
+ equals.insert("QScriptValue(0) <=> engine->evaluate(\"124\")");
+ equals.insert("QScriptValue(0) <=> engine->evaluate(\"123.0\")");
+ equals.insert("QScriptValue(0) <=> engine->evaluate(\"6.37e-8\")");
+ equals.insert("QScriptValue(0) <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("QScriptValue(0) <=> engine->evaluate(\"0x10000\")");
+ equals.insert("QScriptValue(0) <=> engine->evaluate(\"0x10001\")");
+ equals.insert("QScriptValue(0) <=> engine->evaluate(\"Infinity\")");
+ equals.insert("QScriptValue(0) <=> engine->evaluate(\"'123'\")");
+ equals.insert("QScriptValue(0) <=> engine->evaluate(\"'12.4'\")");
+ equals.insert("QScriptValue(0) <=> engine->newVariant(QVariant(123))");
equals.insert("QScriptValue(0.0) <=> QScriptValue(true)");
equals.insert("QScriptValue(0.0) <=> QScriptValue(int(122))");
equals.insert("QScriptValue(0.0) <=> QScriptValue(uint(124))");
@@ -3049,6 +4340,19 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(0.0) <=> QScriptValue(engine, \"Infinity\")");
equals.insert("QScriptValue(0.0) <=> QScriptValue(engine, QString(\"123\"))");
equals.insert("QScriptValue(0.0) <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("QScriptValue(0.0) <=> engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")");
+ equals.insert("QScriptValue(0.0) <=> engine->evaluate(\"true\")");
+ equals.insert("QScriptValue(0.0) <=> engine->evaluate(\"122\")");
+ equals.insert("QScriptValue(0.0) <=> engine->evaluate(\"124\")");
+ equals.insert("QScriptValue(0.0) <=> engine->evaluate(\"123.0\")");
+ equals.insert("QScriptValue(0.0) <=> engine->evaluate(\"6.37e-8\")");
+ equals.insert("QScriptValue(0.0) <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("QScriptValue(0.0) <=> engine->evaluate(\"0x10000\")");
+ equals.insert("QScriptValue(0.0) <=> engine->evaluate(\"0x10001\")");
+ equals.insert("QScriptValue(0.0) <=> engine->evaluate(\"Infinity\")");
+ equals.insert("QScriptValue(0.0) <=> engine->evaluate(\"'123'\")");
+ equals.insert("QScriptValue(0.0) <=> engine->evaluate(\"'12.4'\")");
+ equals.insert("QScriptValue(0.0) <=> engine->newVariant(QVariant(123))");
equals.insert("QScriptValue(123.0) <=> QScriptValue(uint(124))");
equals.insert("QScriptValue(123.0) <=> QScriptValue(0x43211234)");
equals.insert("QScriptValue(123.0) <=> QScriptValue(0x10000)");
@@ -3067,6 +4371,11 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(123.0) <=> QScriptValue(engine, 0x10001)");
equals.insert("QScriptValue(123.0) <=> QScriptValue(engine, qInf())");
equals.insert("QScriptValue(123.0) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(123.0) <=> engine->evaluate(\"124\")");
+ equals.insert("QScriptValue(123.0) <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("QScriptValue(123.0) <=> engine->evaluate(\"0x10000\")");
+ equals.insert("QScriptValue(123.0) <=> engine->evaluate(\"0x10001\")");
+ equals.insert("QScriptValue(123.0) <=> engine->evaluate(\"Infinity\")");
equals.insert("QScriptValue(6.37e-8) <=> QScriptValue(true)");
equals.insert("QScriptValue(6.37e-8) <=> QScriptValue(int(122))");
equals.insert("QScriptValue(6.37e-8) <=> QScriptValue(uint(124))");
@@ -3100,6 +4409,18 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(6.37e-8) <=> QScriptValue(engine, \"Infinity\")");
equals.insert("QScriptValue(6.37e-8) <=> QScriptValue(engine, QString(\"123\"))");
equals.insert("QScriptValue(6.37e-8) <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("QScriptValue(6.37e-8) <=> engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")");
+ equals.insert("QScriptValue(6.37e-8) <=> engine->evaluate(\"true\")");
+ equals.insert("QScriptValue(6.37e-8) <=> engine->evaluate(\"122\")");
+ equals.insert("QScriptValue(6.37e-8) <=> engine->evaluate(\"124\")");
+ equals.insert("QScriptValue(6.37e-8) <=> engine->evaluate(\"123.0\")");
+ equals.insert("QScriptValue(6.37e-8) <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("QScriptValue(6.37e-8) <=> engine->evaluate(\"0x10000\")");
+ equals.insert("QScriptValue(6.37e-8) <=> engine->evaluate(\"0x10001\")");
+ equals.insert("QScriptValue(6.37e-8) <=> engine->evaluate(\"Infinity\")");
+ equals.insert("QScriptValue(6.37e-8) <=> engine->evaluate(\"'123'\")");
+ equals.insert("QScriptValue(6.37e-8) <=> engine->evaluate(\"'12.4'\")");
+ equals.insert("QScriptValue(6.37e-8) <=> engine->newVariant(QVariant(123))");
equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(QScriptValue::NullValue)");
equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(true)");
equals.insert("QScriptValue(-6.37e-8) <=> QScriptValue(false)");
@@ -3160,13 +4481,36 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(-6.37e-8) <=> engine->evaluate(\"[]\")");
equals.insert("QScriptValue(-6.37e-8) <=> engine->evaluate(\"Array.prototype\")");
equals.insert("QScriptValue(-6.37e-8) <=> engine->evaluate(\"new Array()\")");
+ equals.insert("QScriptValue(-6.37e-8) <=> engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")");
+ equals.insert("QScriptValue(-6.37e-8) <=> engine->evaluate(\"null\")");
+ equals.insert("QScriptValue(-6.37e-8) <=> engine->evaluate(\"true\")");
+ equals.insert("QScriptValue(-6.37e-8) <=> engine->evaluate(\"false\")");
+ equals.insert("QScriptValue(-6.37e-8) <=> engine->evaluate(\"122\")");
+ equals.insert("QScriptValue(-6.37e-8) <=> engine->evaluate(\"124\")");
+ equals.insert("QScriptValue(-6.37e-8) <=> engine->evaluate(\"0\")");
+ equals.insert("QScriptValue(-6.37e-8) <=> engine->evaluate(\"0.0\")");
+ equals.insert("QScriptValue(-6.37e-8) <=> engine->evaluate(\"123.0\")");
+ equals.insert("QScriptValue(-6.37e-8) <=> engine->evaluate(\"6.37e-8\")");
+ equals.insert("QScriptValue(-6.37e-8) <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("QScriptValue(-6.37e-8) <=> engine->evaluate(\"0x10000\")");
+ equals.insert("QScriptValue(-6.37e-8) <=> engine->evaluate(\"0x10001\")");
+ equals.insert("QScriptValue(-6.37e-8) <=> engine->evaluate(\"Infinity\")");
+ equals.insert("QScriptValue(-6.37e-8) <=> engine->evaluate(\"''\")");
+ equals.insert("QScriptValue(-6.37e-8) <=> engine->evaluate(\"'0'\")");
+ equals.insert("QScriptValue(-6.37e-8) <=> engine->evaluate(\"'123'\")");
+ equals.insert("QScriptValue(-6.37e-8) <=> engine->evaluate(\"'12.4'\")");
equals.insert("QScriptValue(-6.37e-8) <=> engine->nullValue()");
+ equals.insert("QScriptValue(-6.37e-8) <=> engine->newArray()");
+ equals.insert("QScriptValue(-6.37e-8) <=> engine->newVariant(QVariant(123))");
+ equals.insert("QScriptValue(-6.37e-8) <=> engine->newVariant(QVariant(false))");
+ equals.insert("QScriptValue(-6.37e-8) <=> engine->newQObject(0)");
equals.insert("QScriptValue(0x43211234) <=> QScriptValue(qInf())");
equals.insert("QScriptValue(0x43211234) <=> QScriptValue(\"Infinity\")");
equals.insert("QScriptValue(0x43211234) <=> QScriptValue(0, qInf())");
equals.insert("QScriptValue(0x43211234) <=> QScriptValue(0, \"Infinity\")");
equals.insert("QScriptValue(0x43211234) <=> QScriptValue(engine, qInf())");
equals.insert("QScriptValue(0x43211234) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(0x43211234) <=> engine->evaluate(\"Infinity\")");
equals.insert("QScriptValue(0x10000) <=> QScriptValue(0x43211234)");
equals.insert("QScriptValue(0x10000) <=> QScriptValue(0x10001)");
equals.insert("QScriptValue(0x10000) <=> QScriptValue(qInf())");
@@ -3179,6 +4523,9 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(0x10000) <=> QScriptValue(engine, 0x10001)");
equals.insert("QScriptValue(0x10000) <=> QScriptValue(engine, qInf())");
equals.insert("QScriptValue(0x10000) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(0x10000) <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("QScriptValue(0x10000) <=> engine->evaluate(\"0x10001\")");
+ equals.insert("QScriptValue(0x10000) <=> engine->evaluate(\"Infinity\")");
equals.insert("QScriptValue(0x10001) <=> QScriptValue(0x43211234)");
equals.insert("QScriptValue(0x10001) <=> QScriptValue(qInf())");
equals.insert("QScriptValue(0x10001) <=> QScriptValue(\"Infinity\")");
@@ -3188,6 +4535,8 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(0x10001) <=> QScriptValue(engine, 0x43211234)");
equals.insert("QScriptValue(0x10001) <=> QScriptValue(engine, qInf())");
equals.insert("QScriptValue(0x10001) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(0x10001) <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("QScriptValue(0x10001) <=> engine->evaluate(\"Infinity\")");
equals.insert("QScriptValue(-qInf()) <=> QScriptValue(QScriptValue::NullValue)");
equals.insert("QScriptValue(-qInf()) <=> QScriptValue(true)");
equals.insert("QScriptValue(-qInf()) <=> QScriptValue(false)");
@@ -3251,7 +4600,30 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(-qInf()) <=> engine->evaluate(\"[]\")");
equals.insert("QScriptValue(-qInf()) <=> engine->evaluate(\"Array.prototype\")");
equals.insert("QScriptValue(-qInf()) <=> engine->evaluate(\"new Array()\")");
+ equals.insert("QScriptValue(-qInf()) <=> engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")");
+ equals.insert("QScriptValue(-qInf()) <=> engine->evaluate(\"null\")");
+ equals.insert("QScriptValue(-qInf()) <=> engine->evaluate(\"true\")");
+ equals.insert("QScriptValue(-qInf()) <=> engine->evaluate(\"false\")");
+ equals.insert("QScriptValue(-qInf()) <=> engine->evaluate(\"122\")");
+ equals.insert("QScriptValue(-qInf()) <=> engine->evaluate(\"124\")");
+ equals.insert("QScriptValue(-qInf()) <=> engine->evaluate(\"0\")");
+ equals.insert("QScriptValue(-qInf()) <=> engine->evaluate(\"0.0\")");
+ equals.insert("QScriptValue(-qInf()) <=> engine->evaluate(\"123.0\")");
+ equals.insert("QScriptValue(-qInf()) <=> engine->evaluate(\"6.37e-8\")");
+ equals.insert("QScriptValue(-qInf()) <=> engine->evaluate(\"-6.37e-8\")");
+ equals.insert("QScriptValue(-qInf()) <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("QScriptValue(-qInf()) <=> engine->evaluate(\"0x10000\")");
+ equals.insert("QScriptValue(-qInf()) <=> engine->evaluate(\"0x10001\")");
+ equals.insert("QScriptValue(-qInf()) <=> engine->evaluate(\"Infinity\")");
+ equals.insert("QScriptValue(-qInf()) <=> engine->evaluate(\"''\")");
+ equals.insert("QScriptValue(-qInf()) <=> engine->evaluate(\"'0'\")");
+ equals.insert("QScriptValue(-qInf()) <=> engine->evaluate(\"'123'\")");
+ equals.insert("QScriptValue(-qInf()) <=> engine->evaluate(\"'12.4'\")");
equals.insert("QScriptValue(-qInf()) <=> engine->nullValue()");
+ equals.insert("QScriptValue(-qInf()) <=> engine->newArray()");
+ equals.insert("QScriptValue(-qInf()) <=> engine->newVariant(QVariant(123))");
+ equals.insert("QScriptValue(-qInf()) <=> engine->newVariant(QVariant(false))");
+ equals.insert("QScriptValue(-qInf()) <=> engine->newQObject(0)");
equals.insert("QScriptValue(\"NaN\") <=> QScriptValue(\"ciao\")");
equals.insert("QScriptValue(\"NaN\") <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
equals.insert("QScriptValue(\"NaN\") <=> QScriptValue(0, \"ciao\")");
@@ -3268,6 +4640,14 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(\"NaN\") <=> engine->evaluate(\"(function() { return 'ciao'; })\")");
equals.insert("QScriptValue(\"NaN\") <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
equals.insert("QScriptValue(\"NaN\") <=> engine->evaluate(\"new Object()\")");
+ equals.insert("QScriptValue(\"NaN\") <=> engine->evaluate(\"Undefined\")");
+ equals.insert("QScriptValue(\"NaN\") <=> engine->evaluate(\"Null\")");
+ equals.insert("QScriptValue(\"NaN\") <=> engine->evaluate(\"True\")");
+ equals.insert("QScriptValue(\"NaN\") <=> engine->evaluate(\"False\")");
+ equals.insert("QScriptValue(\"NaN\") <=> engine->evaluate(\"'ciao'\")");
+ equals.insert("QScriptValue(\"NaN\") <=> engine->newObject()");
+ equals.insert("QScriptValue(\"NaN\") <=> engine->newQMetaObject(&QObject::staticMetaObject)");
+ equals.insert("QScriptValue(\"NaN\") <=> engine->newQObject(engine)");
equals.insert("QScriptValue(\"Infinity\") <=> QScriptValue(\"NaN\")");
equals.insert("QScriptValue(\"Infinity\") <=> QScriptValue(\"ciao\")");
equals.insert("QScriptValue(\"Infinity\") <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
@@ -3287,6 +4667,14 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(\"Infinity\") <=> engine->evaluate(\"(function() { return 'ciao'; })\")");
equals.insert("QScriptValue(\"Infinity\") <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
equals.insert("QScriptValue(\"Infinity\") <=> engine->evaluate(\"new Object()\")");
+ equals.insert("QScriptValue(\"Infinity\") <=> engine->evaluate(\"Undefined\")");
+ equals.insert("QScriptValue(\"Infinity\") <=> engine->evaluate(\"Null\")");
+ equals.insert("QScriptValue(\"Infinity\") <=> engine->evaluate(\"True\")");
+ equals.insert("QScriptValue(\"Infinity\") <=> engine->evaluate(\"False\")");
+ equals.insert("QScriptValue(\"Infinity\") <=> engine->evaluate(\"'ciao'\")");
+ equals.insert("QScriptValue(\"Infinity\") <=> engine->newObject()");
+ equals.insert("QScriptValue(\"Infinity\") <=> engine->newQMetaObject(&QObject::staticMetaObject)");
+ equals.insert("QScriptValue(\"Infinity\") <=> engine->newQObject(engine)");
equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(QScriptValue::NullValue)");
equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(true)");
equals.insert("QScriptValue(\"-Infinity\") <=> QScriptValue(false)");
@@ -3363,7 +4751,36 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(\"-Infinity\") <=> engine->evaluate(\"/foo/\")");
equals.insert("QScriptValue(\"-Infinity\") <=> engine->evaluate(\"new Object()\")");
equals.insert("QScriptValue(\"-Infinity\") <=> engine->evaluate(\"new Error()\")");
+ equals.insert("QScriptValue(\"-Infinity\") <=> engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")");
+ equals.insert("QScriptValue(\"-Infinity\") <=> engine->evaluate(\"Undefined\")");
+ equals.insert("QScriptValue(\"-Infinity\") <=> engine->evaluate(\"Null\")");
+ equals.insert("QScriptValue(\"-Infinity\") <=> engine->evaluate(\"True\")");
+ equals.insert("QScriptValue(\"-Infinity\") <=> engine->evaluate(\"False\")");
+ equals.insert("QScriptValue(\"-Infinity\") <=> engine->evaluate(\"null\")");
+ equals.insert("QScriptValue(\"-Infinity\") <=> engine->evaluate(\"true\")");
+ equals.insert("QScriptValue(\"-Infinity\") <=> engine->evaluate(\"false\")");
+ equals.insert("QScriptValue(\"-Infinity\") <=> engine->evaluate(\"122\")");
+ equals.insert("QScriptValue(\"-Infinity\") <=> engine->evaluate(\"124\")");
+ equals.insert("QScriptValue(\"-Infinity\") <=> engine->evaluate(\"0\")");
+ equals.insert("QScriptValue(\"-Infinity\") <=> engine->evaluate(\"0.0\")");
+ equals.insert("QScriptValue(\"-Infinity\") <=> engine->evaluate(\"123.0\")");
+ equals.insert("QScriptValue(\"-Infinity\") <=> engine->evaluate(\"6.37e-8\")");
+ equals.insert("QScriptValue(\"-Infinity\") <=> engine->evaluate(\"-6.37e-8\")");
+ equals.insert("QScriptValue(\"-Infinity\") <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("QScriptValue(\"-Infinity\") <=> engine->evaluate(\"0x10000\")");
+ equals.insert("QScriptValue(\"-Infinity\") <=> engine->evaluate(\"0x10001\")");
+ equals.insert("QScriptValue(\"-Infinity\") <=> engine->evaluate(\"Infinity\")");
+ equals.insert("QScriptValue(\"-Infinity\") <=> engine->evaluate(\"'ciao'\")");
+ equals.insert("QScriptValue(\"-Infinity\") <=> engine->evaluate(\"'0'\")");
+ equals.insert("QScriptValue(\"-Infinity\") <=> engine->evaluate(\"'123'\")");
+ equals.insert("QScriptValue(\"-Infinity\") <=> engine->evaluate(\"'12.4'\")");
equals.insert("QScriptValue(\"-Infinity\") <=> engine->nullValue()");
+ equals.insert("QScriptValue(\"-Infinity\") <=> engine->newObject()");
+ equals.insert("QScriptValue(\"-Infinity\") <=> engine->newQMetaObject(&QObject::staticMetaObject)");
+ equals.insert("QScriptValue(\"-Infinity\") <=> engine->newVariant(QVariant(123))");
+ equals.insert("QScriptValue(\"-Infinity\") <=> engine->newVariant(QVariant(false))");
+ equals.insert("QScriptValue(\"-Infinity\") <=> engine->newQObject(0)");
+ equals.insert("QScriptValue(\"-Infinity\") <=> engine->newQObject(engine)");
equals.insert("QScriptValue(\"ciao\") <=> engine->evaluate(\"Function.prototype\")");
equals.insert("QScriptValue(\"ciao\") <=> engine->evaluate(\"Object\")");
equals.insert("QScriptValue(\"ciao\") <=> engine->evaluate(\"Array\")");
@@ -3444,6 +4861,29 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(QString(\"\")) <=> engine->evaluate(\"/foo/\")");
equals.insert("QScriptValue(QString(\"\")) <=> engine->evaluate(\"new Object()\")");
equals.insert("QScriptValue(QString(\"\")) <=> engine->evaluate(\"new Error()\")");
+ equals.insert("QScriptValue(QString(\"\")) <=> engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")");
+ equals.insert("QScriptValue(QString(\"\")) <=> engine->evaluate(\"Undefined\")");
+ equals.insert("QScriptValue(QString(\"\")) <=> engine->evaluate(\"Null\")");
+ equals.insert("QScriptValue(QString(\"\")) <=> engine->evaluate(\"True\")");
+ equals.insert("QScriptValue(QString(\"\")) <=> engine->evaluate(\"False\")");
+ equals.insert("QScriptValue(QString(\"\")) <=> engine->evaluate(\"true\")");
+ equals.insert("QScriptValue(QString(\"\")) <=> engine->evaluate(\"122\")");
+ equals.insert("QScriptValue(QString(\"\")) <=> engine->evaluate(\"124\")");
+ equals.insert("QScriptValue(QString(\"\")) <=> engine->evaluate(\"123.0\")");
+ equals.insert("QScriptValue(QString(\"\")) <=> engine->evaluate(\"6.37e-8\")");
+ equals.insert("QScriptValue(QString(\"\")) <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("QScriptValue(QString(\"\")) <=> engine->evaluate(\"0x10000\")");
+ equals.insert("QScriptValue(QString(\"\")) <=> engine->evaluate(\"0x10001\")");
+ equals.insert("QScriptValue(QString(\"\")) <=> engine->evaluate(\"Infinity\")");
+ equals.insert("QScriptValue(QString(\"\")) <=> engine->evaluate(\"'ciao'\")");
+ equals.insert("QScriptValue(QString(\"\")) <=> engine->evaluate(\"'0'\")");
+ equals.insert("QScriptValue(QString(\"\")) <=> engine->evaluate(\"'123'\")");
+ equals.insert("QScriptValue(QString(\"\")) <=> engine->evaluate(\"'12.4'\")");
+ equals.insert("QScriptValue(QString(\"\")) <=> engine->newObject()");
+ equals.insert("QScriptValue(QString(\"\")) <=> engine->newArray(10)");
+ equals.insert("QScriptValue(QString(\"\")) <=> engine->newQMetaObject(&QObject::staticMetaObject)");
+ equals.insert("QScriptValue(QString(\"\")) <=> engine->newVariant(QVariant(123))");
+ equals.insert("QScriptValue(QString(\"\")) <=> engine->newQObject(engine)");
equals.insert("QScriptValue(QString()) <=> QScriptValue(true)");
equals.insert("QScriptValue(QString()) <=> QScriptValue(int(122))");
equals.insert("QScriptValue(QString()) <=> QScriptValue(uint(124))");
@@ -3508,6 +4948,29 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(QString()) <=> engine->evaluate(\"/foo/\")");
equals.insert("QScriptValue(QString()) <=> engine->evaluate(\"new Object()\")");
equals.insert("QScriptValue(QString()) <=> engine->evaluate(\"new Error()\")");
+ equals.insert("QScriptValue(QString()) <=> engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")");
+ equals.insert("QScriptValue(QString()) <=> engine->evaluate(\"Undefined\")");
+ equals.insert("QScriptValue(QString()) <=> engine->evaluate(\"Null\")");
+ equals.insert("QScriptValue(QString()) <=> engine->evaluate(\"True\")");
+ equals.insert("QScriptValue(QString()) <=> engine->evaluate(\"False\")");
+ equals.insert("QScriptValue(QString()) <=> engine->evaluate(\"true\")");
+ equals.insert("QScriptValue(QString()) <=> engine->evaluate(\"122\")");
+ equals.insert("QScriptValue(QString()) <=> engine->evaluate(\"124\")");
+ equals.insert("QScriptValue(QString()) <=> engine->evaluate(\"123.0\")");
+ equals.insert("QScriptValue(QString()) <=> engine->evaluate(\"6.37e-8\")");
+ equals.insert("QScriptValue(QString()) <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("QScriptValue(QString()) <=> engine->evaluate(\"0x10000\")");
+ equals.insert("QScriptValue(QString()) <=> engine->evaluate(\"0x10001\")");
+ equals.insert("QScriptValue(QString()) <=> engine->evaluate(\"Infinity\")");
+ equals.insert("QScriptValue(QString()) <=> engine->evaluate(\"'ciao'\")");
+ equals.insert("QScriptValue(QString()) <=> engine->evaluate(\"'0'\")");
+ equals.insert("QScriptValue(QString()) <=> engine->evaluate(\"'123'\")");
+ equals.insert("QScriptValue(QString()) <=> engine->evaluate(\"'12.4'\")");
+ equals.insert("QScriptValue(QString()) <=> engine->newObject()");
+ equals.insert("QScriptValue(QString()) <=> engine->newArray(10)");
+ equals.insert("QScriptValue(QString()) <=> engine->newQMetaObject(&QObject::staticMetaObject)");
+ equals.insert("QScriptValue(QString()) <=> engine->newVariant(QVariant(123))");
+ equals.insert("QScriptValue(QString()) <=> engine->newQObject(engine)");
equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(true)");
equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(int(122))");
equals.insert("QScriptValue(QString(\"0\")) <=> QScriptValue(uint(124))");
@@ -3565,6 +5028,27 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(QString(\"0\")) <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
equals.insert("QScriptValue(QString(\"0\")) <=> engine->evaluate(\"new Object()\")");
equals.insert("QScriptValue(QString(\"0\")) <=> engine->evaluate(\"new Error()\")");
+ equals.insert("QScriptValue(QString(\"0\")) <=> engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")");
+ equals.insert("QScriptValue(QString(\"0\")) <=> engine->evaluate(\"Undefined\")");
+ equals.insert("QScriptValue(QString(\"0\")) <=> engine->evaluate(\"Null\")");
+ equals.insert("QScriptValue(QString(\"0\")) <=> engine->evaluate(\"True\")");
+ equals.insert("QScriptValue(QString(\"0\")) <=> engine->evaluate(\"False\")");
+ equals.insert("QScriptValue(QString(\"0\")) <=> engine->evaluate(\"true\")");
+ equals.insert("QScriptValue(QString(\"0\")) <=> engine->evaluate(\"122\")");
+ equals.insert("QScriptValue(QString(\"0\")) <=> engine->evaluate(\"124\")");
+ equals.insert("QScriptValue(QString(\"0\")) <=> engine->evaluate(\"123.0\")");
+ equals.insert("QScriptValue(QString(\"0\")) <=> engine->evaluate(\"6.37e-8\")");
+ equals.insert("QScriptValue(QString(\"0\")) <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("QScriptValue(QString(\"0\")) <=> engine->evaluate(\"0x10000\")");
+ equals.insert("QScriptValue(QString(\"0\")) <=> engine->evaluate(\"0x10001\")");
+ equals.insert("QScriptValue(QString(\"0\")) <=> engine->evaluate(\"Infinity\")");
+ equals.insert("QScriptValue(QString(\"0\")) <=> engine->evaluate(\"'ciao'\")");
+ equals.insert("QScriptValue(QString(\"0\")) <=> engine->evaluate(\"'123'\")");
+ equals.insert("QScriptValue(QString(\"0\")) <=> engine->evaluate(\"'12.4'\")");
+ equals.insert("QScriptValue(QString(\"0\")) <=> engine->newObject()");
+ equals.insert("QScriptValue(QString(\"0\")) <=> engine->newQMetaObject(&QObject::staticMetaObject)");
+ equals.insert("QScriptValue(QString(\"0\")) <=> engine->newVariant(QVariant(123))");
+ equals.insert("QScriptValue(QString(\"0\")) <=> engine->newQObject(engine)");
equals.insert("QScriptValue(QString(\"123\")) <=> QScriptValue(uint(124))");
equals.insert("QScriptValue(QString(\"123\")) <=> QScriptValue(0x43211234)");
equals.insert("QScriptValue(QString(\"123\")) <=> QScriptValue(0x10000)");
@@ -3604,6 +5088,19 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(QString(\"123\")) <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
equals.insert("QScriptValue(QString(\"123\")) <=> engine->evaluate(\"new Object()\")");
equals.insert("QScriptValue(QString(\"123\")) <=> engine->evaluate(\"new Error()\")");
+ equals.insert("QScriptValue(QString(\"123\")) <=> engine->evaluate(\"Undefined\")");
+ equals.insert("QScriptValue(QString(\"123\")) <=> engine->evaluate(\"Null\")");
+ equals.insert("QScriptValue(QString(\"123\")) <=> engine->evaluate(\"True\")");
+ equals.insert("QScriptValue(QString(\"123\")) <=> engine->evaluate(\"False\")");
+ equals.insert("QScriptValue(QString(\"123\")) <=> engine->evaluate(\"124\")");
+ equals.insert("QScriptValue(QString(\"123\")) <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("QScriptValue(QString(\"123\")) <=> engine->evaluate(\"0x10000\")");
+ equals.insert("QScriptValue(QString(\"123\")) <=> engine->evaluate(\"0x10001\")");
+ equals.insert("QScriptValue(QString(\"123\")) <=> engine->evaluate(\"Infinity\")");
+ equals.insert("QScriptValue(QString(\"123\")) <=> engine->evaluate(\"'ciao'\")");
+ equals.insert("QScriptValue(QString(\"123\")) <=> engine->newObject()");
+ equals.insert("QScriptValue(QString(\"123\")) <=> engine->newQMetaObject(&QObject::staticMetaObject)");
+ equals.insert("QScriptValue(QString(\"123\")) <=> engine->newQObject(engine)");
equals.insert("QScriptValue(QString(\"12.4\")) <=> QScriptValue(int(122))");
equals.insert("QScriptValue(QString(\"12.4\")) <=> QScriptValue(uint(124))");
equals.insert("QScriptValue(QString(\"12.4\")) <=> QScriptValue(123.0)");
@@ -3652,6 +5149,24 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(QString(\"12.4\")) <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
equals.insert("QScriptValue(QString(\"12.4\")) <=> engine->evaluate(\"new Object()\")");
equals.insert("QScriptValue(QString(\"12.4\")) <=> engine->evaluate(\"new Error()\")");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> engine->evaluate(\"Undefined\")");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> engine->evaluate(\"Null\")");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> engine->evaluate(\"True\")");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> engine->evaluate(\"False\")");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> engine->evaluate(\"122\")");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> engine->evaluate(\"124\")");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> engine->evaluate(\"123.0\")");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> engine->evaluate(\"0x10000\")");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> engine->evaluate(\"0x10001\")");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> engine->evaluate(\"Infinity\")");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> engine->evaluate(\"'ciao'\")");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> engine->evaluate(\"'123'\")");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> engine->newObject()");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> engine->newQMetaObject(&QObject::staticMetaObject)");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> engine->newVariant(QVariant(123))");
+ equals.insert("QScriptValue(QString(\"12.4\")) <=> engine->newQObject(engine)");
equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(true)");
equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(int(122))");
equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(uint(124))");
@@ -3688,6 +5203,19 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(engine, \"Infinity\")");
equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(engine, QString(\"123\"))");
equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")");
+ equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> engine->evaluate(\"true\")");
+ equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> engine->evaluate(\"122\")");
+ equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> engine->evaluate(\"124\")");
+ equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> engine->evaluate(\"123.0\")");
+ equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> engine->evaluate(\"6.37e-8\")");
+ equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> engine->evaluate(\"0x10000\")");
+ equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> engine->evaluate(\"0x10001\")");
+ equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> engine->evaluate(\"Infinity\")");
+ equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> engine->evaluate(\"'123'\")");
+ equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> engine->evaluate(\"'12.4'\")");
+ equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> engine->newVariant(QVariant(123))");
equals.insert("QScriptValue(0, true) <=> QScriptValue(int(122))");
equals.insert("QScriptValue(0, true) <=> QScriptValue(uint(124))");
equals.insert("QScriptValue(0, true) <=> QScriptValue(123.0)");
@@ -3718,6 +5246,17 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(0, true) <=> QScriptValue(engine, \"Infinity\")");
equals.insert("QScriptValue(0, true) <=> QScriptValue(engine, QString(\"123\"))");
equals.insert("QScriptValue(0, true) <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("QScriptValue(0, true) <=> engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")");
+ equals.insert("QScriptValue(0, true) <=> engine->evaluate(\"122\")");
+ equals.insert("QScriptValue(0, true) <=> engine->evaluate(\"124\")");
+ equals.insert("QScriptValue(0, true) <=> engine->evaluate(\"123.0\")");
+ equals.insert("QScriptValue(0, true) <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("QScriptValue(0, true) <=> engine->evaluate(\"0x10000\")");
+ equals.insert("QScriptValue(0, true) <=> engine->evaluate(\"0x10001\")");
+ equals.insert("QScriptValue(0, true) <=> engine->evaluate(\"Infinity\")");
+ equals.insert("QScriptValue(0, true) <=> engine->evaluate(\"'123'\")");
+ equals.insert("QScriptValue(0, true) <=> engine->evaluate(\"'12.4'\")");
+ equals.insert("QScriptValue(0, true) <=> engine->newVariant(QVariant(123))");
equals.insert("QScriptValue(0, false) <=> QScriptValue(true)");
equals.insert("QScriptValue(0, false) <=> QScriptValue(int(122))");
equals.insert("QScriptValue(0, false) <=> QScriptValue(uint(124))");
@@ -3754,6 +5293,19 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(0, false) <=> QScriptValue(engine, \"Infinity\")");
equals.insert("QScriptValue(0, false) <=> QScriptValue(engine, QString(\"123\"))");
equals.insert("QScriptValue(0, false) <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("QScriptValue(0, false) <=> engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")");
+ equals.insert("QScriptValue(0, false) <=> engine->evaluate(\"true\")");
+ equals.insert("QScriptValue(0, false) <=> engine->evaluate(\"122\")");
+ equals.insert("QScriptValue(0, false) <=> engine->evaluate(\"124\")");
+ equals.insert("QScriptValue(0, false) <=> engine->evaluate(\"123.0\")");
+ equals.insert("QScriptValue(0, false) <=> engine->evaluate(\"6.37e-8\")");
+ equals.insert("QScriptValue(0, false) <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("QScriptValue(0, false) <=> engine->evaluate(\"0x10000\")");
+ equals.insert("QScriptValue(0, false) <=> engine->evaluate(\"0x10001\")");
+ equals.insert("QScriptValue(0, false) <=> engine->evaluate(\"Infinity\")");
+ equals.insert("QScriptValue(0, false) <=> engine->evaluate(\"'123'\")");
+ equals.insert("QScriptValue(0, false) <=> engine->evaluate(\"'12.4'\")");
+ equals.insert("QScriptValue(0, false) <=> engine->newVariant(QVariant(123))");
equals.insert("QScriptValue(0, int(122)) <=> QScriptValue(uint(124))");
equals.insert("QScriptValue(0, int(122)) <=> QScriptValue(123.0)");
equals.insert("QScriptValue(0, int(122)) <=> QScriptValue(0x43211234)");
@@ -3778,6 +5330,14 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(0, int(122)) <=> QScriptValue(engine, qInf())");
equals.insert("QScriptValue(0, int(122)) <=> QScriptValue(engine, \"Infinity\")");
equals.insert("QScriptValue(0, int(122)) <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("QScriptValue(0, int(122)) <=> engine->evaluate(\"124\")");
+ equals.insert("QScriptValue(0, int(122)) <=> engine->evaluate(\"123.0\")");
+ equals.insert("QScriptValue(0, int(122)) <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("QScriptValue(0, int(122)) <=> engine->evaluate(\"0x10000\")");
+ equals.insert("QScriptValue(0, int(122)) <=> engine->evaluate(\"0x10001\")");
+ equals.insert("QScriptValue(0, int(122)) <=> engine->evaluate(\"Infinity\")");
+ equals.insert("QScriptValue(0, int(122)) <=> engine->evaluate(\"'123'\")");
+ equals.insert("QScriptValue(0, int(122)) <=> engine->newVariant(QVariant(123))");
equals.insert("QScriptValue(0, uint(124)) <=> QScriptValue(0x43211234)");
equals.insert("QScriptValue(0, uint(124)) <=> QScriptValue(0x10000)");
equals.insert("QScriptValue(0, uint(124)) <=> QScriptValue(0x10001)");
@@ -3793,6 +5353,10 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(0, uint(124)) <=> QScriptValue(engine, 0x10001)");
equals.insert("QScriptValue(0, uint(124)) <=> QScriptValue(engine, qInf())");
equals.insert("QScriptValue(0, uint(124)) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(0, uint(124)) <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("QScriptValue(0, uint(124)) <=> engine->evaluate(\"0x10000\")");
+ equals.insert("QScriptValue(0, uint(124)) <=> engine->evaluate(\"0x10001\")");
+ equals.insert("QScriptValue(0, uint(124)) <=> engine->evaluate(\"Infinity\")");
equals.insert("QScriptValue(0, 0) <=> QScriptValue(true)");
equals.insert("QScriptValue(0, 0) <=> QScriptValue(int(122))");
equals.insert("QScriptValue(0, 0) <=> QScriptValue(uint(124))");
@@ -3829,6 +5393,19 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(0, 0) <=> QScriptValue(engine, \"Infinity\")");
equals.insert("QScriptValue(0, 0) <=> QScriptValue(engine, QString(\"123\"))");
equals.insert("QScriptValue(0, 0) <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("QScriptValue(0, 0) <=> engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")");
+ equals.insert("QScriptValue(0, 0) <=> engine->evaluate(\"true\")");
+ equals.insert("QScriptValue(0, 0) <=> engine->evaluate(\"122\")");
+ equals.insert("QScriptValue(0, 0) <=> engine->evaluate(\"124\")");
+ equals.insert("QScriptValue(0, 0) <=> engine->evaluate(\"123.0\")");
+ equals.insert("QScriptValue(0, 0) <=> engine->evaluate(\"6.37e-8\")");
+ equals.insert("QScriptValue(0, 0) <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("QScriptValue(0, 0) <=> engine->evaluate(\"0x10000\")");
+ equals.insert("QScriptValue(0, 0) <=> engine->evaluate(\"0x10001\")");
+ equals.insert("QScriptValue(0, 0) <=> engine->evaluate(\"Infinity\")");
+ equals.insert("QScriptValue(0, 0) <=> engine->evaluate(\"'123'\")");
+ equals.insert("QScriptValue(0, 0) <=> engine->evaluate(\"'12.4'\")");
+ equals.insert("QScriptValue(0, 0) <=> engine->newVariant(QVariant(123))");
equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(true)");
equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(int(122))");
equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(uint(124))");
@@ -3865,6 +5442,19 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(engine, \"Infinity\")");
equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(engine, QString(\"123\"))");
equals.insert("QScriptValue(0, 0.0) <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("QScriptValue(0, 0.0) <=> engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")");
+ equals.insert("QScriptValue(0, 0.0) <=> engine->evaluate(\"true\")");
+ equals.insert("QScriptValue(0, 0.0) <=> engine->evaluate(\"122\")");
+ equals.insert("QScriptValue(0, 0.0) <=> engine->evaluate(\"124\")");
+ equals.insert("QScriptValue(0, 0.0) <=> engine->evaluate(\"123.0\")");
+ equals.insert("QScriptValue(0, 0.0) <=> engine->evaluate(\"6.37e-8\")");
+ equals.insert("QScriptValue(0, 0.0) <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("QScriptValue(0, 0.0) <=> engine->evaluate(\"0x10000\")");
+ equals.insert("QScriptValue(0, 0.0) <=> engine->evaluate(\"0x10001\")");
+ equals.insert("QScriptValue(0, 0.0) <=> engine->evaluate(\"Infinity\")");
+ equals.insert("QScriptValue(0, 0.0) <=> engine->evaluate(\"'123'\")");
+ equals.insert("QScriptValue(0, 0.0) <=> engine->evaluate(\"'12.4'\")");
+ equals.insert("QScriptValue(0, 0.0) <=> engine->newVariant(QVariant(123))");
equals.insert("QScriptValue(0, 123.0) <=> QScriptValue(uint(124))");
equals.insert("QScriptValue(0, 123.0) <=> QScriptValue(0x43211234)");
equals.insert("QScriptValue(0, 123.0) <=> QScriptValue(0x10000)");
@@ -3883,6 +5473,11 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(0, 123.0) <=> QScriptValue(engine, 0x10001)");
equals.insert("QScriptValue(0, 123.0) <=> QScriptValue(engine, qInf())");
equals.insert("QScriptValue(0, 123.0) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(0, 123.0) <=> engine->evaluate(\"124\")");
+ equals.insert("QScriptValue(0, 123.0) <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("QScriptValue(0, 123.0) <=> engine->evaluate(\"0x10000\")");
+ equals.insert("QScriptValue(0, 123.0) <=> engine->evaluate(\"0x10001\")");
+ equals.insert("QScriptValue(0, 123.0) <=> engine->evaluate(\"Infinity\")");
equals.insert("QScriptValue(0, 6.37e-8) <=> QScriptValue(true)");
equals.insert("QScriptValue(0, 6.37e-8) <=> QScriptValue(int(122))");
equals.insert("QScriptValue(0, 6.37e-8) <=> QScriptValue(uint(124))");
@@ -3916,6 +5511,18 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(0, 6.37e-8) <=> QScriptValue(engine, \"Infinity\")");
equals.insert("QScriptValue(0, 6.37e-8) <=> QScriptValue(engine, QString(\"123\"))");
equals.insert("QScriptValue(0, 6.37e-8) <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("QScriptValue(0, 6.37e-8) <=> engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")");
+ equals.insert("QScriptValue(0, 6.37e-8) <=> engine->evaluate(\"true\")");
+ equals.insert("QScriptValue(0, 6.37e-8) <=> engine->evaluate(\"122\")");
+ equals.insert("QScriptValue(0, 6.37e-8) <=> engine->evaluate(\"124\")");
+ equals.insert("QScriptValue(0, 6.37e-8) <=> engine->evaluate(\"123.0\")");
+ equals.insert("QScriptValue(0, 6.37e-8) <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("QScriptValue(0, 6.37e-8) <=> engine->evaluate(\"0x10000\")");
+ equals.insert("QScriptValue(0, 6.37e-8) <=> engine->evaluate(\"0x10001\")");
+ equals.insert("QScriptValue(0, 6.37e-8) <=> engine->evaluate(\"Infinity\")");
+ equals.insert("QScriptValue(0, 6.37e-8) <=> engine->evaluate(\"'123'\")");
+ equals.insert("QScriptValue(0, 6.37e-8) <=> engine->evaluate(\"'12.4'\")");
+ equals.insert("QScriptValue(0, 6.37e-8) <=> engine->newVariant(QVariant(123))");
equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(QScriptValue::NullValue)");
equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(true)");
equals.insert("QScriptValue(0, -6.37e-8) <=> QScriptValue(false)");
@@ -3976,13 +5583,36 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(0, -6.37e-8) <=> engine->evaluate(\"[]\")");
equals.insert("QScriptValue(0, -6.37e-8) <=> engine->evaluate(\"Array.prototype\")");
equals.insert("QScriptValue(0, -6.37e-8) <=> engine->evaluate(\"new Array()\")");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> engine->evaluate(\"null\")");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> engine->evaluate(\"true\")");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> engine->evaluate(\"false\")");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> engine->evaluate(\"122\")");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> engine->evaluate(\"124\")");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> engine->evaluate(\"0\")");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> engine->evaluate(\"0.0\")");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> engine->evaluate(\"123.0\")");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> engine->evaluate(\"6.37e-8\")");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> engine->evaluate(\"0x10000\")");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> engine->evaluate(\"0x10001\")");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> engine->evaluate(\"Infinity\")");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> engine->evaluate(\"''\")");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> engine->evaluate(\"'0'\")");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> engine->evaluate(\"'123'\")");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> engine->evaluate(\"'12.4'\")");
equals.insert("QScriptValue(0, -6.37e-8) <=> engine->nullValue()");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> engine->newArray()");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> engine->newVariant(QVariant(123))");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> engine->newVariant(QVariant(false))");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> engine->newQObject(0)");
equals.insert("QScriptValue(0, 0x43211234) <=> QScriptValue(qInf())");
equals.insert("QScriptValue(0, 0x43211234) <=> QScriptValue(\"Infinity\")");
equals.insert("QScriptValue(0, 0x43211234) <=> QScriptValue(0, qInf())");
equals.insert("QScriptValue(0, 0x43211234) <=> QScriptValue(0, \"Infinity\")");
equals.insert("QScriptValue(0, 0x43211234) <=> QScriptValue(engine, qInf())");
equals.insert("QScriptValue(0, 0x43211234) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(0, 0x43211234) <=> engine->evaluate(\"Infinity\")");
equals.insert("QScriptValue(0, 0x10000) <=> QScriptValue(0x43211234)");
equals.insert("QScriptValue(0, 0x10000) <=> QScriptValue(0x10001)");
equals.insert("QScriptValue(0, 0x10000) <=> QScriptValue(qInf())");
@@ -3995,6 +5625,9 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(0, 0x10000) <=> QScriptValue(engine, 0x10001)");
equals.insert("QScriptValue(0, 0x10000) <=> QScriptValue(engine, qInf())");
equals.insert("QScriptValue(0, 0x10000) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(0, 0x10000) <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("QScriptValue(0, 0x10000) <=> engine->evaluate(\"0x10001\")");
+ equals.insert("QScriptValue(0, 0x10000) <=> engine->evaluate(\"Infinity\")");
equals.insert("QScriptValue(0, 0x10001) <=> QScriptValue(0x43211234)");
equals.insert("QScriptValue(0, 0x10001) <=> QScriptValue(qInf())");
equals.insert("QScriptValue(0, 0x10001) <=> QScriptValue(\"Infinity\")");
@@ -4004,6 +5637,8 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(0, 0x10001) <=> QScriptValue(engine, 0x43211234)");
equals.insert("QScriptValue(0, 0x10001) <=> QScriptValue(engine, qInf())");
equals.insert("QScriptValue(0, 0x10001) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(0, 0x10001) <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("QScriptValue(0, 0x10001) <=> engine->evaluate(\"Infinity\")");
equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(QScriptValue::NullValue)");
equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(true)");
equals.insert("QScriptValue(0, -qInf()) <=> QScriptValue(false)");
@@ -4067,7 +5702,30 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(0, -qInf()) <=> engine->evaluate(\"[]\")");
equals.insert("QScriptValue(0, -qInf()) <=> engine->evaluate(\"Array.prototype\")");
equals.insert("QScriptValue(0, -qInf()) <=> engine->evaluate(\"new Array()\")");
+ equals.insert("QScriptValue(0, -qInf()) <=> engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")");
+ equals.insert("QScriptValue(0, -qInf()) <=> engine->evaluate(\"null\")");
+ equals.insert("QScriptValue(0, -qInf()) <=> engine->evaluate(\"true\")");
+ equals.insert("QScriptValue(0, -qInf()) <=> engine->evaluate(\"false\")");
+ equals.insert("QScriptValue(0, -qInf()) <=> engine->evaluate(\"122\")");
+ equals.insert("QScriptValue(0, -qInf()) <=> engine->evaluate(\"124\")");
+ equals.insert("QScriptValue(0, -qInf()) <=> engine->evaluate(\"0\")");
+ equals.insert("QScriptValue(0, -qInf()) <=> engine->evaluate(\"0.0\")");
+ equals.insert("QScriptValue(0, -qInf()) <=> engine->evaluate(\"123.0\")");
+ equals.insert("QScriptValue(0, -qInf()) <=> engine->evaluate(\"6.37e-8\")");
+ equals.insert("QScriptValue(0, -qInf()) <=> engine->evaluate(\"-6.37e-8\")");
+ equals.insert("QScriptValue(0, -qInf()) <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("QScriptValue(0, -qInf()) <=> engine->evaluate(\"0x10000\")");
+ equals.insert("QScriptValue(0, -qInf()) <=> engine->evaluate(\"0x10001\")");
+ equals.insert("QScriptValue(0, -qInf()) <=> engine->evaluate(\"Infinity\")");
+ equals.insert("QScriptValue(0, -qInf()) <=> engine->evaluate(\"''\")");
+ equals.insert("QScriptValue(0, -qInf()) <=> engine->evaluate(\"'0'\")");
+ equals.insert("QScriptValue(0, -qInf()) <=> engine->evaluate(\"'123'\")");
+ equals.insert("QScriptValue(0, -qInf()) <=> engine->evaluate(\"'12.4'\")");
equals.insert("QScriptValue(0, -qInf()) <=> engine->nullValue()");
+ equals.insert("QScriptValue(0, -qInf()) <=> engine->newArray()");
+ equals.insert("QScriptValue(0, -qInf()) <=> engine->newVariant(QVariant(123))");
+ equals.insert("QScriptValue(0, -qInf()) <=> engine->newVariant(QVariant(false))");
+ equals.insert("QScriptValue(0, -qInf()) <=> engine->newQObject(0)");
equals.insert("QScriptValue(0, \"NaN\") <=> QScriptValue(\"ciao\")");
equals.insert("QScriptValue(0, \"NaN\") <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
equals.insert("QScriptValue(0, \"NaN\") <=> QScriptValue(0, \"ciao\")");
@@ -4084,6 +5742,14 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(0, \"NaN\") <=> engine->evaluate(\"(function() { return 'ciao'; })\")");
equals.insert("QScriptValue(0, \"NaN\") <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
equals.insert("QScriptValue(0, \"NaN\") <=> engine->evaluate(\"new Object()\")");
+ equals.insert("QScriptValue(0, \"NaN\") <=> engine->evaluate(\"Undefined\")");
+ equals.insert("QScriptValue(0, \"NaN\") <=> engine->evaluate(\"Null\")");
+ equals.insert("QScriptValue(0, \"NaN\") <=> engine->evaluate(\"True\")");
+ equals.insert("QScriptValue(0, \"NaN\") <=> engine->evaluate(\"False\")");
+ equals.insert("QScriptValue(0, \"NaN\") <=> engine->evaluate(\"'ciao'\")");
+ equals.insert("QScriptValue(0, \"NaN\") <=> engine->newObject()");
+ equals.insert("QScriptValue(0, \"NaN\") <=> engine->newQMetaObject(&QObject::staticMetaObject)");
+ equals.insert("QScriptValue(0, \"NaN\") <=> engine->newQObject(engine)");
equals.insert("QScriptValue(0, \"Infinity\") <=> QScriptValue(\"NaN\")");
equals.insert("QScriptValue(0, \"Infinity\") <=> QScriptValue(\"ciao\")");
equals.insert("QScriptValue(0, \"Infinity\") <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
@@ -4103,6 +5769,14 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(0, \"Infinity\") <=> engine->evaluate(\"(function() { return 'ciao'; })\")");
equals.insert("QScriptValue(0, \"Infinity\") <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
equals.insert("QScriptValue(0, \"Infinity\") <=> engine->evaluate(\"new Object()\")");
+ equals.insert("QScriptValue(0, \"Infinity\") <=> engine->evaluate(\"Undefined\")");
+ equals.insert("QScriptValue(0, \"Infinity\") <=> engine->evaluate(\"Null\")");
+ equals.insert("QScriptValue(0, \"Infinity\") <=> engine->evaluate(\"True\")");
+ equals.insert("QScriptValue(0, \"Infinity\") <=> engine->evaluate(\"False\")");
+ equals.insert("QScriptValue(0, \"Infinity\") <=> engine->evaluate(\"'ciao'\")");
+ equals.insert("QScriptValue(0, \"Infinity\") <=> engine->newObject()");
+ equals.insert("QScriptValue(0, \"Infinity\") <=> engine->newQMetaObject(&QObject::staticMetaObject)");
+ equals.insert("QScriptValue(0, \"Infinity\") <=> engine->newQObject(engine)");
equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(QScriptValue::NullValue)");
equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(true)");
equals.insert("QScriptValue(0, \"-Infinity\") <=> QScriptValue(false)");
@@ -4179,7 +5853,36 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(0, \"-Infinity\") <=> engine->evaluate(\"/foo/\")");
equals.insert("QScriptValue(0, \"-Infinity\") <=> engine->evaluate(\"new Object()\")");
equals.insert("QScriptValue(0, \"-Infinity\") <=> engine->evaluate(\"new Error()\")");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> engine->evaluate(\"Undefined\")");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> engine->evaluate(\"Null\")");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> engine->evaluate(\"True\")");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> engine->evaluate(\"False\")");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> engine->evaluate(\"null\")");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> engine->evaluate(\"true\")");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> engine->evaluate(\"false\")");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> engine->evaluate(\"122\")");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> engine->evaluate(\"124\")");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> engine->evaluate(\"0\")");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> engine->evaluate(\"0.0\")");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> engine->evaluate(\"123.0\")");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> engine->evaluate(\"6.37e-8\")");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> engine->evaluate(\"-6.37e-8\")");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> engine->evaluate(\"0x10000\")");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> engine->evaluate(\"0x10001\")");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> engine->evaluate(\"Infinity\")");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> engine->evaluate(\"'ciao'\")");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> engine->evaluate(\"'0'\")");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> engine->evaluate(\"'123'\")");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> engine->evaluate(\"'12.4'\")");
equals.insert("QScriptValue(0, \"-Infinity\") <=> engine->nullValue()");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> engine->newObject()");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> engine->newQMetaObject(&QObject::staticMetaObject)");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> engine->newVariant(QVariant(123))");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> engine->newVariant(QVariant(false))");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> engine->newQObject(0)");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> engine->newQObject(engine)");
equals.insert("QScriptValue(0, \"ciao\") <=> engine->evaluate(\"Function.prototype\")");
equals.insert("QScriptValue(0, \"ciao\") <=> engine->evaluate(\"Object\")");
equals.insert("QScriptValue(0, \"ciao\") <=> engine->evaluate(\"Array\")");
@@ -4260,6 +5963,29 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(0, QString(\"\")) <=> engine->evaluate(\"/foo/\")");
equals.insert("QScriptValue(0, QString(\"\")) <=> engine->evaluate(\"new Object()\")");
equals.insert("QScriptValue(0, QString(\"\")) <=> engine->evaluate(\"new Error()\")");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> engine->evaluate(\"Undefined\")");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> engine->evaluate(\"Null\")");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> engine->evaluate(\"True\")");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> engine->evaluate(\"False\")");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> engine->evaluate(\"true\")");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> engine->evaluate(\"122\")");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> engine->evaluate(\"124\")");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> engine->evaluate(\"123.0\")");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> engine->evaluate(\"6.37e-8\")");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> engine->evaluate(\"0x10000\")");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> engine->evaluate(\"0x10001\")");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> engine->evaluate(\"Infinity\")");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> engine->evaluate(\"'ciao'\")");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> engine->evaluate(\"'0'\")");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> engine->evaluate(\"'123'\")");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> engine->evaluate(\"'12.4'\")");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> engine->newObject()");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> engine->newArray(10)");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> engine->newQMetaObject(&QObject::staticMetaObject)");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> engine->newVariant(QVariant(123))");
+ equals.insert("QScriptValue(0, QString(\"\")) <=> engine->newQObject(engine)");
equals.insert("QScriptValue(0, QString()) <=> QScriptValue(true)");
equals.insert("QScriptValue(0, QString()) <=> QScriptValue(int(122))");
equals.insert("QScriptValue(0, QString()) <=> QScriptValue(uint(124))");
@@ -4324,6 +6050,29 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(0, QString()) <=> engine->evaluate(\"/foo/\")");
equals.insert("QScriptValue(0, QString()) <=> engine->evaluate(\"new Object()\")");
equals.insert("QScriptValue(0, QString()) <=> engine->evaluate(\"new Error()\")");
+ equals.insert("QScriptValue(0, QString()) <=> engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")");
+ equals.insert("QScriptValue(0, QString()) <=> engine->evaluate(\"Undefined\")");
+ equals.insert("QScriptValue(0, QString()) <=> engine->evaluate(\"Null\")");
+ equals.insert("QScriptValue(0, QString()) <=> engine->evaluate(\"True\")");
+ equals.insert("QScriptValue(0, QString()) <=> engine->evaluate(\"False\")");
+ equals.insert("QScriptValue(0, QString()) <=> engine->evaluate(\"true\")");
+ equals.insert("QScriptValue(0, QString()) <=> engine->evaluate(\"122\")");
+ equals.insert("QScriptValue(0, QString()) <=> engine->evaluate(\"124\")");
+ equals.insert("QScriptValue(0, QString()) <=> engine->evaluate(\"123.0\")");
+ equals.insert("QScriptValue(0, QString()) <=> engine->evaluate(\"6.37e-8\")");
+ equals.insert("QScriptValue(0, QString()) <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("QScriptValue(0, QString()) <=> engine->evaluate(\"0x10000\")");
+ equals.insert("QScriptValue(0, QString()) <=> engine->evaluate(\"0x10001\")");
+ equals.insert("QScriptValue(0, QString()) <=> engine->evaluate(\"Infinity\")");
+ equals.insert("QScriptValue(0, QString()) <=> engine->evaluate(\"'ciao'\")");
+ equals.insert("QScriptValue(0, QString()) <=> engine->evaluate(\"'0'\")");
+ equals.insert("QScriptValue(0, QString()) <=> engine->evaluate(\"'123'\")");
+ equals.insert("QScriptValue(0, QString()) <=> engine->evaluate(\"'12.4'\")");
+ equals.insert("QScriptValue(0, QString()) <=> engine->newObject()");
+ equals.insert("QScriptValue(0, QString()) <=> engine->newArray(10)");
+ equals.insert("QScriptValue(0, QString()) <=> engine->newQMetaObject(&QObject::staticMetaObject)");
+ equals.insert("QScriptValue(0, QString()) <=> engine->newVariant(QVariant(123))");
+ equals.insert("QScriptValue(0, QString()) <=> engine->newQObject(engine)");
equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(true)");
equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(int(122))");
equals.insert("QScriptValue(0, QString(\"0\")) <=> QScriptValue(uint(124))");
@@ -4381,6 +6130,27 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(0, QString(\"0\")) <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
equals.insert("QScriptValue(0, QString(\"0\")) <=> engine->evaluate(\"new Object()\")");
equals.insert("QScriptValue(0, QString(\"0\")) <=> engine->evaluate(\"new Error()\")");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> engine->evaluate(\"Undefined\")");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> engine->evaluate(\"Null\")");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> engine->evaluate(\"True\")");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> engine->evaluate(\"False\")");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> engine->evaluate(\"true\")");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> engine->evaluate(\"122\")");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> engine->evaluate(\"124\")");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> engine->evaluate(\"123.0\")");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> engine->evaluate(\"6.37e-8\")");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> engine->evaluate(\"0x10000\")");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> engine->evaluate(\"0x10001\")");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> engine->evaluate(\"Infinity\")");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> engine->evaluate(\"'ciao'\")");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> engine->evaluate(\"'123'\")");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> engine->evaluate(\"'12.4'\")");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> engine->newObject()");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> engine->newQMetaObject(&QObject::staticMetaObject)");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> engine->newVariant(QVariant(123))");
+ equals.insert("QScriptValue(0, QString(\"0\")) <=> engine->newQObject(engine)");
equals.insert("QScriptValue(0, QString(\"123\")) <=> QScriptValue(uint(124))");
equals.insert("QScriptValue(0, QString(\"123\")) <=> QScriptValue(0x43211234)");
equals.insert("QScriptValue(0, QString(\"123\")) <=> QScriptValue(0x10000)");
@@ -4420,6 +6190,19 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(0, QString(\"123\")) <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
equals.insert("QScriptValue(0, QString(\"123\")) <=> engine->evaluate(\"new Object()\")");
equals.insert("QScriptValue(0, QString(\"123\")) <=> engine->evaluate(\"new Error()\")");
+ equals.insert("QScriptValue(0, QString(\"123\")) <=> engine->evaluate(\"Undefined\")");
+ equals.insert("QScriptValue(0, QString(\"123\")) <=> engine->evaluate(\"Null\")");
+ equals.insert("QScriptValue(0, QString(\"123\")) <=> engine->evaluate(\"True\")");
+ equals.insert("QScriptValue(0, QString(\"123\")) <=> engine->evaluate(\"False\")");
+ equals.insert("QScriptValue(0, QString(\"123\")) <=> engine->evaluate(\"124\")");
+ equals.insert("QScriptValue(0, QString(\"123\")) <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("QScriptValue(0, QString(\"123\")) <=> engine->evaluate(\"0x10000\")");
+ equals.insert("QScriptValue(0, QString(\"123\")) <=> engine->evaluate(\"0x10001\")");
+ equals.insert("QScriptValue(0, QString(\"123\")) <=> engine->evaluate(\"Infinity\")");
+ equals.insert("QScriptValue(0, QString(\"123\")) <=> engine->evaluate(\"'ciao'\")");
+ equals.insert("QScriptValue(0, QString(\"123\")) <=> engine->newObject()");
+ equals.insert("QScriptValue(0, QString(\"123\")) <=> engine->newQMetaObject(&QObject::staticMetaObject)");
+ equals.insert("QScriptValue(0, QString(\"123\")) <=> engine->newQObject(engine)");
equals.insert("QScriptValue(0, QString(\"12.3\")) <=> QScriptValue(int(122))");
equals.insert("QScriptValue(0, QString(\"12.3\")) <=> QScriptValue(uint(124))");
equals.insert("QScriptValue(0, QString(\"12.3\")) <=> QScriptValue(123.0)");
@@ -4469,6 +6252,25 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(0, QString(\"12.3\")) <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
equals.insert("QScriptValue(0, QString(\"12.3\")) <=> engine->evaluate(\"new Object()\")");
equals.insert("QScriptValue(0, QString(\"12.3\")) <=> engine->evaluate(\"new Error()\")");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> engine->evaluate(\"Undefined\")");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> engine->evaluate(\"Null\")");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> engine->evaluate(\"True\")");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> engine->evaluate(\"False\")");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> engine->evaluate(\"122\")");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> engine->evaluate(\"124\")");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> engine->evaluate(\"123.0\")");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> engine->evaluate(\"0x10000\")");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> engine->evaluate(\"0x10001\")");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> engine->evaluate(\"Infinity\")");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> engine->evaluate(\"'ciao'\")");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> engine->evaluate(\"'123'\")");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> engine->evaluate(\"'12.4'\")");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> engine->newObject()");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> engine->newQMetaObject(&QObject::staticMetaObject)");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> engine->newVariant(QVariant(123))");
+ equals.insert("QScriptValue(0, QString(\"12.3\")) <=> engine->newQObject(engine)");
equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> QScriptValue(true)");
equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> QScriptValue(int(122))");
equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> QScriptValue(uint(124))");
@@ -4505,6 +6307,19 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> QScriptValue(engine, \"Infinity\")");
equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> QScriptValue(engine, QString(\"123\"))");
equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")");
+ equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> engine->evaluate(\"true\")");
+ equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> engine->evaluate(\"122\")");
+ equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> engine->evaluate(\"124\")");
+ equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> engine->evaluate(\"123.0\")");
+ equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> engine->evaluate(\"6.37e-8\")");
+ equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> engine->evaluate(\"0x10000\")");
+ equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> engine->evaluate(\"0x10001\")");
+ equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> engine->evaluate(\"Infinity\")");
+ equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> engine->evaluate(\"'123'\")");
+ equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> engine->evaluate(\"'12.4'\")");
+ equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> engine->newVariant(QVariant(123))");
equals.insert("QScriptValue(engine, true) <=> QScriptValue(int(122))");
equals.insert("QScriptValue(engine, true) <=> QScriptValue(uint(124))");
equals.insert("QScriptValue(engine, true) <=> QScriptValue(123.0)");
@@ -4535,6 +6350,17 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(engine, true) <=> QScriptValue(engine, \"Infinity\")");
equals.insert("QScriptValue(engine, true) <=> QScriptValue(engine, QString(\"123\"))");
equals.insert("QScriptValue(engine, true) <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("QScriptValue(engine, true) <=> engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")");
+ equals.insert("QScriptValue(engine, true) <=> engine->evaluate(\"122\")");
+ equals.insert("QScriptValue(engine, true) <=> engine->evaluate(\"124\")");
+ equals.insert("QScriptValue(engine, true) <=> engine->evaluate(\"123.0\")");
+ equals.insert("QScriptValue(engine, true) <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("QScriptValue(engine, true) <=> engine->evaluate(\"0x10000\")");
+ equals.insert("QScriptValue(engine, true) <=> engine->evaluate(\"0x10001\")");
+ equals.insert("QScriptValue(engine, true) <=> engine->evaluate(\"Infinity\")");
+ equals.insert("QScriptValue(engine, true) <=> engine->evaluate(\"'123'\")");
+ equals.insert("QScriptValue(engine, true) <=> engine->evaluate(\"'12.4'\")");
+ equals.insert("QScriptValue(engine, true) <=> engine->newVariant(QVariant(123))");
equals.insert("QScriptValue(engine, false) <=> QScriptValue(true)");
equals.insert("QScriptValue(engine, false) <=> QScriptValue(int(122))");
equals.insert("QScriptValue(engine, false) <=> QScriptValue(uint(124))");
@@ -4571,6 +6397,19 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(engine, false) <=> QScriptValue(engine, \"Infinity\")");
equals.insert("QScriptValue(engine, false) <=> QScriptValue(engine, QString(\"123\"))");
equals.insert("QScriptValue(engine, false) <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("QScriptValue(engine, false) <=> engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")");
+ equals.insert("QScriptValue(engine, false) <=> engine->evaluate(\"true\")");
+ equals.insert("QScriptValue(engine, false) <=> engine->evaluate(\"122\")");
+ equals.insert("QScriptValue(engine, false) <=> engine->evaluate(\"124\")");
+ equals.insert("QScriptValue(engine, false) <=> engine->evaluate(\"123.0\")");
+ equals.insert("QScriptValue(engine, false) <=> engine->evaluate(\"6.37e-8\")");
+ equals.insert("QScriptValue(engine, false) <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("QScriptValue(engine, false) <=> engine->evaluate(\"0x10000\")");
+ equals.insert("QScriptValue(engine, false) <=> engine->evaluate(\"0x10001\")");
+ equals.insert("QScriptValue(engine, false) <=> engine->evaluate(\"Infinity\")");
+ equals.insert("QScriptValue(engine, false) <=> engine->evaluate(\"'123'\")");
+ equals.insert("QScriptValue(engine, false) <=> engine->evaluate(\"'12.4'\")");
+ equals.insert("QScriptValue(engine, false) <=> engine->newVariant(QVariant(123))");
equals.insert("QScriptValue(engine, int(122)) <=> QScriptValue(uint(124))");
equals.insert("QScriptValue(engine, int(122)) <=> QScriptValue(123.0)");
equals.insert("QScriptValue(engine, int(122)) <=> QScriptValue(0x43211234)");
@@ -4595,6 +6434,14 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(engine, int(122)) <=> QScriptValue(engine, qInf())");
equals.insert("QScriptValue(engine, int(122)) <=> QScriptValue(engine, \"Infinity\")");
equals.insert("QScriptValue(engine, int(122)) <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("QScriptValue(engine, int(122)) <=> engine->evaluate(\"124\")");
+ equals.insert("QScriptValue(engine, int(122)) <=> engine->evaluate(\"123.0\")");
+ equals.insert("QScriptValue(engine, int(122)) <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("QScriptValue(engine, int(122)) <=> engine->evaluate(\"0x10000\")");
+ equals.insert("QScriptValue(engine, int(122)) <=> engine->evaluate(\"0x10001\")");
+ equals.insert("QScriptValue(engine, int(122)) <=> engine->evaluate(\"Infinity\")");
+ equals.insert("QScriptValue(engine, int(122)) <=> engine->evaluate(\"'123'\")");
+ equals.insert("QScriptValue(engine, int(122)) <=> engine->newVariant(QVariant(123))");
equals.insert("QScriptValue(engine, uint(124)) <=> QScriptValue(0x43211234)");
equals.insert("QScriptValue(engine, uint(124)) <=> QScriptValue(0x10000)");
equals.insert("QScriptValue(engine, uint(124)) <=> QScriptValue(0x10001)");
@@ -4610,6 +6457,10 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(engine, uint(124)) <=> QScriptValue(engine, 0x10001)");
equals.insert("QScriptValue(engine, uint(124)) <=> QScriptValue(engine, qInf())");
equals.insert("QScriptValue(engine, uint(124)) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(engine, uint(124)) <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("QScriptValue(engine, uint(124)) <=> engine->evaluate(\"0x10000\")");
+ equals.insert("QScriptValue(engine, uint(124)) <=> engine->evaluate(\"0x10001\")");
+ equals.insert("QScriptValue(engine, uint(124)) <=> engine->evaluate(\"Infinity\")");
equals.insert("QScriptValue(engine, 0) <=> QScriptValue(true)");
equals.insert("QScriptValue(engine, 0) <=> QScriptValue(int(122))");
equals.insert("QScriptValue(engine, 0) <=> QScriptValue(uint(124))");
@@ -4646,6 +6497,19 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(engine, 0) <=> QScriptValue(engine, \"Infinity\")");
equals.insert("QScriptValue(engine, 0) <=> QScriptValue(engine, QString(\"123\"))");
equals.insert("QScriptValue(engine, 0) <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("QScriptValue(engine, 0) <=> engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")");
+ equals.insert("QScriptValue(engine, 0) <=> engine->evaluate(\"true\")");
+ equals.insert("QScriptValue(engine, 0) <=> engine->evaluate(\"122\")");
+ equals.insert("QScriptValue(engine, 0) <=> engine->evaluate(\"124\")");
+ equals.insert("QScriptValue(engine, 0) <=> engine->evaluate(\"123.0\")");
+ equals.insert("QScriptValue(engine, 0) <=> engine->evaluate(\"6.37e-8\")");
+ equals.insert("QScriptValue(engine, 0) <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("QScriptValue(engine, 0) <=> engine->evaluate(\"0x10000\")");
+ equals.insert("QScriptValue(engine, 0) <=> engine->evaluate(\"0x10001\")");
+ equals.insert("QScriptValue(engine, 0) <=> engine->evaluate(\"Infinity\")");
+ equals.insert("QScriptValue(engine, 0) <=> engine->evaluate(\"'123'\")");
+ equals.insert("QScriptValue(engine, 0) <=> engine->evaluate(\"'12.4'\")");
+ equals.insert("QScriptValue(engine, 0) <=> engine->newVariant(QVariant(123))");
equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(true)");
equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(int(122))");
equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(uint(124))");
@@ -4682,6 +6546,19 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(engine, \"Infinity\")");
equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(engine, QString(\"123\"))");
equals.insert("QScriptValue(engine, 0.0) <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("QScriptValue(engine, 0.0) <=> engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")");
+ equals.insert("QScriptValue(engine, 0.0) <=> engine->evaluate(\"true\")");
+ equals.insert("QScriptValue(engine, 0.0) <=> engine->evaluate(\"122\")");
+ equals.insert("QScriptValue(engine, 0.0) <=> engine->evaluate(\"124\")");
+ equals.insert("QScriptValue(engine, 0.0) <=> engine->evaluate(\"123.0\")");
+ equals.insert("QScriptValue(engine, 0.0) <=> engine->evaluate(\"6.37e-8\")");
+ equals.insert("QScriptValue(engine, 0.0) <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("QScriptValue(engine, 0.0) <=> engine->evaluate(\"0x10000\")");
+ equals.insert("QScriptValue(engine, 0.0) <=> engine->evaluate(\"0x10001\")");
+ equals.insert("QScriptValue(engine, 0.0) <=> engine->evaluate(\"Infinity\")");
+ equals.insert("QScriptValue(engine, 0.0) <=> engine->evaluate(\"'123'\")");
+ equals.insert("QScriptValue(engine, 0.0) <=> engine->evaluate(\"'12.4'\")");
+ equals.insert("QScriptValue(engine, 0.0) <=> engine->newVariant(QVariant(123))");
equals.insert("QScriptValue(engine, 123.0) <=> QScriptValue(uint(124))");
equals.insert("QScriptValue(engine, 123.0) <=> QScriptValue(0x43211234)");
equals.insert("QScriptValue(engine, 123.0) <=> QScriptValue(0x10000)");
@@ -4700,6 +6577,11 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(engine, 123.0) <=> QScriptValue(engine, 0x10001)");
equals.insert("QScriptValue(engine, 123.0) <=> QScriptValue(engine, qInf())");
equals.insert("QScriptValue(engine, 123.0) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(engine, 123.0) <=> engine->evaluate(\"124\")");
+ equals.insert("QScriptValue(engine, 123.0) <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("QScriptValue(engine, 123.0) <=> engine->evaluate(\"0x10000\")");
+ equals.insert("QScriptValue(engine, 123.0) <=> engine->evaluate(\"0x10001\")");
+ equals.insert("QScriptValue(engine, 123.0) <=> engine->evaluate(\"Infinity\")");
equals.insert("QScriptValue(engine, 6.37e-8) <=> QScriptValue(true)");
equals.insert("QScriptValue(engine, 6.37e-8) <=> QScriptValue(int(122))");
equals.insert("QScriptValue(engine, 6.37e-8) <=> QScriptValue(uint(124))");
@@ -4733,6 +6615,18 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(engine, 6.37e-8) <=> QScriptValue(engine, \"Infinity\")");
equals.insert("QScriptValue(engine, 6.37e-8) <=> QScriptValue(engine, QString(\"123\"))");
equals.insert("QScriptValue(engine, 6.37e-8) <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("QScriptValue(engine, 6.37e-8) <=> engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")");
+ equals.insert("QScriptValue(engine, 6.37e-8) <=> engine->evaluate(\"true\")");
+ equals.insert("QScriptValue(engine, 6.37e-8) <=> engine->evaluate(\"122\")");
+ equals.insert("QScriptValue(engine, 6.37e-8) <=> engine->evaluate(\"124\")");
+ equals.insert("QScriptValue(engine, 6.37e-8) <=> engine->evaluate(\"123.0\")");
+ equals.insert("QScriptValue(engine, 6.37e-8) <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("QScriptValue(engine, 6.37e-8) <=> engine->evaluate(\"0x10000\")");
+ equals.insert("QScriptValue(engine, 6.37e-8) <=> engine->evaluate(\"0x10001\")");
+ equals.insert("QScriptValue(engine, 6.37e-8) <=> engine->evaluate(\"Infinity\")");
+ equals.insert("QScriptValue(engine, 6.37e-8) <=> engine->evaluate(\"'123'\")");
+ equals.insert("QScriptValue(engine, 6.37e-8) <=> engine->evaluate(\"'12.4'\")");
+ equals.insert("QScriptValue(engine, 6.37e-8) <=> engine->newVariant(QVariant(123))");
equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(QScriptValue::NullValue)");
equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(true)");
equals.insert("QScriptValue(engine, -6.37e-8) <=> QScriptValue(false)");
@@ -4793,13 +6687,36 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(engine, -6.37e-8) <=> engine->evaluate(\"[]\")");
equals.insert("QScriptValue(engine, -6.37e-8) <=> engine->evaluate(\"Array.prototype\")");
equals.insert("QScriptValue(engine, -6.37e-8) <=> engine->evaluate(\"new Array()\")");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> engine->evaluate(\"null\")");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> engine->evaluate(\"true\")");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> engine->evaluate(\"false\")");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> engine->evaluate(\"122\")");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> engine->evaluate(\"124\")");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> engine->evaluate(\"0\")");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> engine->evaluate(\"0.0\")");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> engine->evaluate(\"123.0\")");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> engine->evaluate(\"6.37e-8\")");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> engine->evaluate(\"0x10000\")");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> engine->evaluate(\"0x10001\")");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> engine->evaluate(\"Infinity\")");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> engine->evaluate(\"''\")");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> engine->evaluate(\"'0'\")");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> engine->evaluate(\"'123'\")");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> engine->evaluate(\"'12.4'\")");
equals.insert("QScriptValue(engine, -6.37e-8) <=> engine->nullValue()");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> engine->newArray()");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> engine->newVariant(QVariant(123))");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> engine->newVariant(QVariant(false))");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> engine->newQObject(0)");
equals.insert("QScriptValue(engine, 0x43211234) <=> QScriptValue(qInf())");
equals.insert("QScriptValue(engine, 0x43211234) <=> QScriptValue(\"Infinity\")");
equals.insert("QScriptValue(engine, 0x43211234) <=> QScriptValue(0, qInf())");
equals.insert("QScriptValue(engine, 0x43211234) <=> QScriptValue(0, \"Infinity\")");
equals.insert("QScriptValue(engine, 0x43211234) <=> QScriptValue(engine, qInf())");
equals.insert("QScriptValue(engine, 0x43211234) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(engine, 0x43211234) <=> engine->evaluate(\"Infinity\")");
equals.insert("QScriptValue(engine, 0x10000) <=> QScriptValue(0x43211234)");
equals.insert("QScriptValue(engine, 0x10000) <=> QScriptValue(0x10001)");
equals.insert("QScriptValue(engine, 0x10000) <=> QScriptValue(qInf())");
@@ -4812,6 +6729,9 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(engine, 0x10000) <=> QScriptValue(engine, 0x10001)");
equals.insert("QScriptValue(engine, 0x10000) <=> QScriptValue(engine, qInf())");
equals.insert("QScriptValue(engine, 0x10000) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(engine, 0x10000) <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("QScriptValue(engine, 0x10000) <=> engine->evaluate(\"0x10001\")");
+ equals.insert("QScriptValue(engine, 0x10000) <=> engine->evaluate(\"Infinity\")");
equals.insert("QScriptValue(engine, 0x10001) <=> QScriptValue(0x43211234)");
equals.insert("QScriptValue(engine, 0x10001) <=> QScriptValue(qInf())");
equals.insert("QScriptValue(engine, 0x10001) <=> QScriptValue(\"Infinity\")");
@@ -4821,6 +6741,8 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(engine, 0x10001) <=> QScriptValue(engine, 0x43211234)");
equals.insert("QScriptValue(engine, 0x10001) <=> QScriptValue(engine, qInf())");
equals.insert("QScriptValue(engine, 0x10001) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("QScriptValue(engine, 0x10001) <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("QScriptValue(engine, 0x10001) <=> engine->evaluate(\"Infinity\")");
equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(QScriptValue::NullValue)");
equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(true)");
equals.insert("QScriptValue(engine, -qInf()) <=> QScriptValue(false)");
@@ -4884,7 +6806,30 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(engine, -qInf()) <=> engine->evaluate(\"[]\")");
equals.insert("QScriptValue(engine, -qInf()) <=> engine->evaluate(\"Array.prototype\")");
equals.insert("QScriptValue(engine, -qInf()) <=> engine->evaluate(\"new Array()\")");
+ equals.insert("QScriptValue(engine, -qInf()) <=> engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")");
+ equals.insert("QScriptValue(engine, -qInf()) <=> engine->evaluate(\"null\")");
+ equals.insert("QScriptValue(engine, -qInf()) <=> engine->evaluate(\"true\")");
+ equals.insert("QScriptValue(engine, -qInf()) <=> engine->evaluate(\"false\")");
+ equals.insert("QScriptValue(engine, -qInf()) <=> engine->evaluate(\"122\")");
+ equals.insert("QScriptValue(engine, -qInf()) <=> engine->evaluate(\"124\")");
+ equals.insert("QScriptValue(engine, -qInf()) <=> engine->evaluate(\"0\")");
+ equals.insert("QScriptValue(engine, -qInf()) <=> engine->evaluate(\"0.0\")");
+ equals.insert("QScriptValue(engine, -qInf()) <=> engine->evaluate(\"123.0\")");
+ equals.insert("QScriptValue(engine, -qInf()) <=> engine->evaluate(\"6.37e-8\")");
+ equals.insert("QScriptValue(engine, -qInf()) <=> engine->evaluate(\"-6.37e-8\")");
+ equals.insert("QScriptValue(engine, -qInf()) <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("QScriptValue(engine, -qInf()) <=> engine->evaluate(\"0x10000\")");
+ equals.insert("QScriptValue(engine, -qInf()) <=> engine->evaluate(\"0x10001\")");
+ equals.insert("QScriptValue(engine, -qInf()) <=> engine->evaluate(\"Infinity\")");
+ equals.insert("QScriptValue(engine, -qInf()) <=> engine->evaluate(\"''\")");
+ equals.insert("QScriptValue(engine, -qInf()) <=> engine->evaluate(\"'0'\")");
+ equals.insert("QScriptValue(engine, -qInf()) <=> engine->evaluate(\"'123'\")");
+ equals.insert("QScriptValue(engine, -qInf()) <=> engine->evaluate(\"'12.4'\")");
equals.insert("QScriptValue(engine, -qInf()) <=> engine->nullValue()");
+ equals.insert("QScriptValue(engine, -qInf()) <=> engine->newArray()");
+ equals.insert("QScriptValue(engine, -qInf()) <=> engine->newVariant(QVariant(123))");
+ equals.insert("QScriptValue(engine, -qInf()) <=> engine->newVariant(QVariant(false))");
+ equals.insert("QScriptValue(engine, -qInf()) <=> engine->newQObject(0)");
equals.insert("QScriptValue(engine, \"NaN\") <=> QScriptValue(\"ciao\")");
equals.insert("QScriptValue(engine, \"NaN\") <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
equals.insert("QScriptValue(engine, \"NaN\") <=> QScriptValue(0, \"ciao\")");
@@ -4901,6 +6846,14 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(engine, \"NaN\") <=> engine->evaluate(\"(function() { return 'ciao'; })\")");
equals.insert("QScriptValue(engine, \"NaN\") <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
equals.insert("QScriptValue(engine, \"NaN\") <=> engine->evaluate(\"new Object()\")");
+ equals.insert("QScriptValue(engine, \"NaN\") <=> engine->evaluate(\"Undefined\")");
+ equals.insert("QScriptValue(engine, \"NaN\") <=> engine->evaluate(\"Null\")");
+ equals.insert("QScriptValue(engine, \"NaN\") <=> engine->evaluate(\"True\")");
+ equals.insert("QScriptValue(engine, \"NaN\") <=> engine->evaluate(\"False\")");
+ equals.insert("QScriptValue(engine, \"NaN\") <=> engine->evaluate(\"'ciao'\")");
+ equals.insert("QScriptValue(engine, \"NaN\") <=> engine->newObject()");
+ equals.insert("QScriptValue(engine, \"NaN\") <=> engine->newQMetaObject(&QObject::staticMetaObject)");
+ equals.insert("QScriptValue(engine, \"NaN\") <=> engine->newQObject(engine)");
equals.insert("QScriptValue(engine, \"Infinity\") <=> QScriptValue(\"NaN\")");
equals.insert("QScriptValue(engine, \"Infinity\") <=> QScriptValue(\"ciao\")");
equals.insert("QScriptValue(engine, \"Infinity\") <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
@@ -4920,6 +6873,14 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(engine, \"Infinity\") <=> engine->evaluate(\"(function() { return 'ciao'; })\")");
equals.insert("QScriptValue(engine, \"Infinity\") <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
equals.insert("QScriptValue(engine, \"Infinity\") <=> engine->evaluate(\"new Object()\")");
+ equals.insert("QScriptValue(engine, \"Infinity\") <=> engine->evaluate(\"Undefined\")");
+ equals.insert("QScriptValue(engine, \"Infinity\") <=> engine->evaluate(\"Null\")");
+ equals.insert("QScriptValue(engine, \"Infinity\") <=> engine->evaluate(\"True\")");
+ equals.insert("QScriptValue(engine, \"Infinity\") <=> engine->evaluate(\"False\")");
+ equals.insert("QScriptValue(engine, \"Infinity\") <=> engine->evaluate(\"'ciao'\")");
+ equals.insert("QScriptValue(engine, \"Infinity\") <=> engine->newObject()");
+ equals.insert("QScriptValue(engine, \"Infinity\") <=> engine->newQMetaObject(&QObject::staticMetaObject)");
+ equals.insert("QScriptValue(engine, \"Infinity\") <=> engine->newQObject(engine)");
equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(QScriptValue::NullValue)");
equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(true)");
equals.insert("QScriptValue(engine, \"-Infinity\") <=> QScriptValue(false)");
@@ -4996,7 +6957,36 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(engine, \"-Infinity\") <=> engine->evaluate(\"/foo/\")");
equals.insert("QScriptValue(engine, \"-Infinity\") <=> engine->evaluate(\"new Object()\")");
equals.insert("QScriptValue(engine, \"-Infinity\") <=> engine->evaluate(\"new Error()\")");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> engine->evaluate(\"Undefined\")");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> engine->evaluate(\"Null\")");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> engine->evaluate(\"True\")");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> engine->evaluate(\"False\")");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> engine->evaluate(\"null\")");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> engine->evaluate(\"true\")");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> engine->evaluate(\"false\")");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> engine->evaluate(\"122\")");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> engine->evaluate(\"124\")");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> engine->evaluate(\"0\")");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> engine->evaluate(\"0.0\")");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> engine->evaluate(\"123.0\")");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> engine->evaluate(\"6.37e-8\")");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> engine->evaluate(\"-6.37e-8\")");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> engine->evaluate(\"0x10000\")");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> engine->evaluate(\"0x10001\")");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> engine->evaluate(\"Infinity\")");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> engine->evaluate(\"'ciao'\")");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> engine->evaluate(\"'0'\")");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> engine->evaluate(\"'123'\")");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> engine->evaluate(\"'12.4'\")");
equals.insert("QScriptValue(engine, \"-Infinity\") <=> engine->nullValue()");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> engine->newObject()");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> engine->newQMetaObject(&QObject::staticMetaObject)");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> engine->newVariant(QVariant(123))");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> engine->newVariant(QVariant(false))");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> engine->newQObject(0)");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> engine->newQObject(engine)");
equals.insert("QScriptValue(engine, \"ciao\") <=> engine->evaluate(\"Function.prototype\")");
equals.insert("QScriptValue(engine, \"ciao\") <=> engine->evaluate(\"Object\")");
equals.insert("QScriptValue(engine, \"ciao\") <=> engine->evaluate(\"Array\")");
@@ -5077,6 +7067,29 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(engine, QString(\"\")) <=> engine->evaluate(\"/foo/\")");
equals.insert("QScriptValue(engine, QString(\"\")) <=> engine->evaluate(\"new Object()\")");
equals.insert("QScriptValue(engine, QString(\"\")) <=> engine->evaluate(\"new Error()\")");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> engine->evaluate(\"Undefined\")");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> engine->evaluate(\"Null\")");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> engine->evaluate(\"True\")");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> engine->evaluate(\"False\")");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> engine->evaluate(\"true\")");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> engine->evaluate(\"122\")");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> engine->evaluate(\"124\")");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> engine->evaluate(\"123.0\")");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> engine->evaluate(\"6.37e-8\")");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> engine->evaluate(\"0x10000\")");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> engine->evaluate(\"0x10001\")");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> engine->evaluate(\"Infinity\")");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> engine->evaluate(\"'ciao'\")");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> engine->evaluate(\"'0'\")");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> engine->evaluate(\"'123'\")");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> engine->evaluate(\"'12.4'\")");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> engine->newObject()");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> engine->newArray(10)");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> engine->newQMetaObject(&QObject::staticMetaObject)");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> engine->newVariant(QVariant(123))");
+ equals.insert("QScriptValue(engine, QString(\"\")) <=> engine->newQObject(engine)");
equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(true)");
equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(int(122))");
equals.insert("QScriptValue(engine, QString()) <=> QScriptValue(uint(124))");
@@ -5141,6 +7154,29 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(engine, QString()) <=> engine->evaluate(\"/foo/\")");
equals.insert("QScriptValue(engine, QString()) <=> engine->evaluate(\"new Object()\")");
equals.insert("QScriptValue(engine, QString()) <=> engine->evaluate(\"new Error()\")");
+ equals.insert("QScriptValue(engine, QString()) <=> engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")");
+ equals.insert("QScriptValue(engine, QString()) <=> engine->evaluate(\"Undefined\")");
+ equals.insert("QScriptValue(engine, QString()) <=> engine->evaluate(\"Null\")");
+ equals.insert("QScriptValue(engine, QString()) <=> engine->evaluate(\"True\")");
+ equals.insert("QScriptValue(engine, QString()) <=> engine->evaluate(\"False\")");
+ equals.insert("QScriptValue(engine, QString()) <=> engine->evaluate(\"true\")");
+ equals.insert("QScriptValue(engine, QString()) <=> engine->evaluate(\"122\")");
+ equals.insert("QScriptValue(engine, QString()) <=> engine->evaluate(\"124\")");
+ equals.insert("QScriptValue(engine, QString()) <=> engine->evaluate(\"123.0\")");
+ equals.insert("QScriptValue(engine, QString()) <=> engine->evaluate(\"6.37e-8\")");
+ equals.insert("QScriptValue(engine, QString()) <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("QScriptValue(engine, QString()) <=> engine->evaluate(\"0x10000\")");
+ equals.insert("QScriptValue(engine, QString()) <=> engine->evaluate(\"0x10001\")");
+ equals.insert("QScriptValue(engine, QString()) <=> engine->evaluate(\"Infinity\")");
+ equals.insert("QScriptValue(engine, QString()) <=> engine->evaluate(\"'ciao'\")");
+ equals.insert("QScriptValue(engine, QString()) <=> engine->evaluate(\"'0'\")");
+ equals.insert("QScriptValue(engine, QString()) <=> engine->evaluate(\"'123'\")");
+ equals.insert("QScriptValue(engine, QString()) <=> engine->evaluate(\"'12.4'\")");
+ equals.insert("QScriptValue(engine, QString()) <=> engine->newObject()");
+ equals.insert("QScriptValue(engine, QString()) <=> engine->newArray(10)");
+ equals.insert("QScriptValue(engine, QString()) <=> engine->newQMetaObject(&QObject::staticMetaObject)");
+ equals.insert("QScriptValue(engine, QString()) <=> engine->newVariant(QVariant(123))");
+ equals.insert("QScriptValue(engine, QString()) <=> engine->newQObject(engine)");
equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(true)");
equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(int(122))");
equals.insert("QScriptValue(engine, QString(\"0\")) <=> QScriptValue(uint(124))");
@@ -5198,6 +7234,27 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(engine, QString(\"0\")) <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
equals.insert("QScriptValue(engine, QString(\"0\")) <=> engine->evaluate(\"new Object()\")");
equals.insert("QScriptValue(engine, QString(\"0\")) <=> engine->evaluate(\"new Error()\")");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> engine->evaluate(\"Undefined\")");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> engine->evaluate(\"Null\")");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> engine->evaluate(\"True\")");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> engine->evaluate(\"False\")");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> engine->evaluate(\"true\")");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> engine->evaluate(\"122\")");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> engine->evaluate(\"124\")");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> engine->evaluate(\"123.0\")");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> engine->evaluate(\"6.37e-8\")");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> engine->evaluate(\"0x10000\")");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> engine->evaluate(\"0x10001\")");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> engine->evaluate(\"Infinity\")");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> engine->evaluate(\"'ciao'\")");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> engine->evaluate(\"'123'\")");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> engine->evaluate(\"'12.4'\")");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> engine->newObject()");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> engine->newQMetaObject(&QObject::staticMetaObject)");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> engine->newVariant(QVariant(123))");
+ equals.insert("QScriptValue(engine, QString(\"0\")) <=> engine->newQObject(engine)");
equals.insert("QScriptValue(engine, QString(\"123\")) <=> QScriptValue(uint(124))");
equals.insert("QScriptValue(engine, QString(\"123\")) <=> QScriptValue(0x43211234)");
equals.insert("QScriptValue(engine, QString(\"123\")) <=> QScriptValue(0x10000)");
@@ -5237,6 +7294,19 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(engine, QString(\"123\")) <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
equals.insert("QScriptValue(engine, QString(\"123\")) <=> engine->evaluate(\"new Object()\")");
equals.insert("QScriptValue(engine, QString(\"123\")) <=> engine->evaluate(\"new Error()\")");
+ equals.insert("QScriptValue(engine, QString(\"123\")) <=> engine->evaluate(\"Undefined\")");
+ equals.insert("QScriptValue(engine, QString(\"123\")) <=> engine->evaluate(\"Null\")");
+ equals.insert("QScriptValue(engine, QString(\"123\")) <=> engine->evaluate(\"True\")");
+ equals.insert("QScriptValue(engine, QString(\"123\")) <=> engine->evaluate(\"False\")");
+ equals.insert("QScriptValue(engine, QString(\"123\")) <=> engine->evaluate(\"124\")");
+ equals.insert("QScriptValue(engine, QString(\"123\")) <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("QScriptValue(engine, QString(\"123\")) <=> engine->evaluate(\"0x10000\")");
+ equals.insert("QScriptValue(engine, QString(\"123\")) <=> engine->evaluate(\"0x10001\")");
+ equals.insert("QScriptValue(engine, QString(\"123\")) <=> engine->evaluate(\"Infinity\")");
+ equals.insert("QScriptValue(engine, QString(\"123\")) <=> engine->evaluate(\"'ciao'\")");
+ equals.insert("QScriptValue(engine, QString(\"123\")) <=> engine->newObject()");
+ equals.insert("QScriptValue(engine, QString(\"123\")) <=> engine->newQMetaObject(&QObject::staticMetaObject)");
+ equals.insert("QScriptValue(engine, QString(\"123\")) <=> engine->newQObject(engine)");
equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> QScriptValue(int(122))");
equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> QScriptValue(uint(124))");
equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> QScriptValue(123.0)");
@@ -5287,6 +7357,25 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> engine->evaluate(\"new Object()\")");
equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> engine->evaluate(\"new Error()\")");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> engine->evaluate(\"Undefined\")");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> engine->evaluate(\"Null\")");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> engine->evaluate(\"True\")");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> engine->evaluate(\"False\")");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> engine->evaluate(\"122\")");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> engine->evaluate(\"124\")");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> engine->evaluate(\"123.0\")");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> engine->evaluate(\"0x10000\")");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> engine->evaluate(\"0x10001\")");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> engine->evaluate(\"Infinity\")");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> engine->evaluate(\"'ciao'\")");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> engine->evaluate(\"'123'\")");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> engine->evaluate(\"'12.4'\")");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> engine->newObject()");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> engine->newQMetaObject(&QObject::staticMetaObject)");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> engine->newVariant(QVariant(123))");
+ equals.insert("QScriptValue(engine, QString(\"1.23\")) <=> engine->newQObject(engine)");
equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(true)");
equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(int(122))");
equals.insert("engine->evaluate(\"[]\") <=> QScriptValue(uint(124))");
@@ -5351,6 +7440,29 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("engine->evaluate(\"[]\") <=> engine->evaluate(\"/foo/\")");
equals.insert("engine->evaluate(\"[]\") <=> engine->evaluate(\"new Object()\")");
equals.insert("engine->evaluate(\"[]\") <=> engine->evaluate(\"new Error()\")");
+ equals.insert("engine->evaluate(\"[]\") <=> engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")");
+ equals.insert("engine->evaluate(\"[]\") <=> engine->evaluate(\"Undefined\")");
+ equals.insert("engine->evaluate(\"[]\") <=> engine->evaluate(\"Null\")");
+ equals.insert("engine->evaluate(\"[]\") <=> engine->evaluate(\"True\")");
+ equals.insert("engine->evaluate(\"[]\") <=> engine->evaluate(\"False\")");
+ equals.insert("engine->evaluate(\"[]\") <=> engine->evaluate(\"true\")");
+ equals.insert("engine->evaluate(\"[]\") <=> engine->evaluate(\"122\")");
+ equals.insert("engine->evaluate(\"[]\") <=> engine->evaluate(\"124\")");
+ equals.insert("engine->evaluate(\"[]\") <=> engine->evaluate(\"123.0\")");
+ equals.insert("engine->evaluate(\"[]\") <=> engine->evaluate(\"6.37e-8\")");
+ equals.insert("engine->evaluate(\"[]\") <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("engine->evaluate(\"[]\") <=> engine->evaluate(\"0x10000\")");
+ equals.insert("engine->evaluate(\"[]\") <=> engine->evaluate(\"0x10001\")");
+ equals.insert("engine->evaluate(\"[]\") <=> engine->evaluate(\"Infinity\")");
+ equals.insert("engine->evaluate(\"[]\") <=> engine->evaluate(\"'ciao'\")");
+ equals.insert("engine->evaluate(\"[]\") <=> engine->evaluate(\"'0'\")");
+ equals.insert("engine->evaluate(\"[]\") <=> engine->evaluate(\"'123'\")");
+ equals.insert("engine->evaluate(\"[]\") <=> engine->evaluate(\"'12.4'\")");
+ equals.insert("engine->evaluate(\"[]\") <=> engine->newObject()");
+ equals.insert("engine->evaluate(\"[]\") <=> engine->newArray(10)");
+ equals.insert("engine->evaluate(\"[]\") <=> engine->newQMetaObject(&QObject::staticMetaObject)");
+ equals.insert("engine->evaluate(\"[]\") <=> engine->newVariant(QVariant(123))");
+ equals.insert("engine->evaluate(\"[]\") <=> engine->newQObject(engine)");
equals.insert("engine->evaluate(\"Object.prototype\") <=> QScriptValue(\"ciao\")");
equals.insert("engine->evaluate(\"Object.prototype\") <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
equals.insert("engine->evaluate(\"Object.prototype\") <=> QScriptValue(0, \"ciao\")");
@@ -5365,6 +7477,8 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("engine->evaluate(\"Object.prototype\") <=> engine->evaluate(\"(function() { return 1; })\")");
equals.insert("engine->evaluate(\"Object.prototype\") <=> engine->evaluate(\"(function() { return 'ciao'; })\")");
equals.insert("engine->evaluate(\"Object.prototype\") <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
+ equals.insert("engine->evaluate(\"Object.prototype\") <=> engine->evaluate(\"'ciao'\")");
+ equals.insert("engine->evaluate(\"Object.prototype\") <=> engine->newQMetaObject(&QObject::staticMetaObject)");
equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(true)");
equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(int(122))");
equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(uint(124))");
@@ -5429,6 +7543,29 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("engine->evaluate(\"Array.prototype\") <=> engine->evaluate(\"/foo/\")");
equals.insert("engine->evaluate(\"Array.prototype\") <=> engine->evaluate(\"new Object()\")");
equals.insert("engine->evaluate(\"Array.prototype\") <=> engine->evaluate(\"new Error()\")");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> engine->evaluate(\"Undefined\")");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> engine->evaluate(\"Null\")");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> engine->evaluate(\"True\")");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> engine->evaluate(\"False\")");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> engine->evaluate(\"true\")");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> engine->evaluate(\"122\")");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> engine->evaluate(\"124\")");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> engine->evaluate(\"123.0\")");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> engine->evaluate(\"6.37e-8\")");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> engine->evaluate(\"0x10000\")");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> engine->evaluate(\"0x10001\")");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> engine->evaluate(\"Infinity\")");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> engine->evaluate(\"'ciao'\")");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> engine->evaluate(\"'0'\")");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> engine->evaluate(\"'123'\")");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> engine->evaluate(\"'12.4'\")");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> engine->newObject()");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> engine->newArray(10)");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> engine->newQMetaObject(&QObject::staticMetaObject)");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> engine->newVariant(QVariant(123))");
+ equals.insert("engine->evaluate(\"Array.prototype\") <=> engine->newQObject(engine)");
equals.insert("engine->evaluate(\"Function.prototype\") <=> engine->evaluate(\"Object\")");
equals.insert("engine->evaluate(\"Function.prototype\") <=> engine->evaluate(\"Array\")");
equals.insert("engine->evaluate(\"Function.prototype\") <=> engine->evaluate(\"Number\")");
@@ -5458,6 +7595,14 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("engine->evaluate(\"Error.prototype\") <=> engine->evaluate(\"(function() { return 'ciao'; })\")");
equals.insert("engine->evaluate(\"Error.prototype\") <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
equals.insert("engine->evaluate(\"Error.prototype\") <=> engine->evaluate(\"new Object()\")");
+ equals.insert("engine->evaluate(\"Error.prototype\") <=> engine->evaluate(\"Undefined\")");
+ equals.insert("engine->evaluate(\"Error.prototype\") <=> engine->evaluate(\"Null\")");
+ equals.insert("engine->evaluate(\"Error.prototype\") <=> engine->evaluate(\"True\")");
+ equals.insert("engine->evaluate(\"Error.prototype\") <=> engine->evaluate(\"False\")");
+ equals.insert("engine->evaluate(\"Error.prototype\") <=> engine->evaluate(\"'ciao'\")");
+ equals.insert("engine->evaluate(\"Error.prototype\") <=> engine->newObject()");
+ equals.insert("engine->evaluate(\"Error.prototype\") <=> engine->newQMetaObject(&QObject::staticMetaObject)");
+ equals.insert("engine->evaluate(\"Error.prototype\") <=> engine->newQObject(engine)");
equals.insert("engine->evaluate(\"Array\") <=> engine->evaluate(\"Object\")");
equals.insert("engine->evaluate(\"Array\") <=> engine->evaluate(\"Number\")");
equals.insert("engine->evaluate(\"Array\") <=> engine->evaluate(\"Function\")");
@@ -5512,6 +7657,17 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("engine->evaluate(\"/foo/\") <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
equals.insert("engine->evaluate(\"/foo/\") <=> engine->evaluate(\"new Object()\")");
equals.insert("engine->evaluate(\"/foo/\") <=> engine->evaluate(\"new Error()\")");
+ equals.insert("engine->evaluate(\"/foo/\") <=> engine->evaluate(\"Undefined\")");
+ equals.insert("engine->evaluate(\"/foo/\") <=> engine->evaluate(\"Null\")");
+ equals.insert("engine->evaluate(\"/foo/\") <=> engine->evaluate(\"True\")");
+ equals.insert("engine->evaluate(\"/foo/\") <=> engine->evaluate(\"False\")");
+ equals.insert("engine->evaluate(\"/foo/\") <=> engine->evaluate(\"'ciao'\")");
+ equals.insert("engine->evaluate(\"/foo/\") <=> engine->evaluate(\"'0'\")");
+ equals.insert("engine->evaluate(\"/foo/\") <=> engine->evaluate(\"'123'\")");
+ equals.insert("engine->evaluate(\"/foo/\") <=> engine->evaluate(\"'12.4'\")");
+ equals.insert("engine->evaluate(\"/foo/\") <=> engine->newObject()");
+ equals.insert("engine->evaluate(\"/foo/\") <=> engine->newQMetaObject(&QObject::staticMetaObject)");
+ equals.insert("engine->evaluate(\"/foo/\") <=> engine->newQObject(engine)");
equals.insert("engine->evaluate(\"new Object()\") <=> QScriptValue(\"ciao\")");
equals.insert("engine->evaluate(\"new Object()\") <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
equals.insert("engine->evaluate(\"new Object()\") <=> QScriptValue(0, \"ciao\")");
@@ -5526,6 +7682,8 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("engine->evaluate(\"new Object()\") <=> engine->evaluate(\"(function() { return 1; })\")");
equals.insert("engine->evaluate(\"new Object()\") <=> engine->evaluate(\"(function() { return 'ciao'; })\")");
equals.insert("engine->evaluate(\"new Object()\") <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
+ equals.insert("engine->evaluate(\"new Object()\") <=> engine->evaluate(\"'ciao'\")");
+ equals.insert("engine->evaluate(\"new Object()\") <=> engine->newQMetaObject(&QObject::staticMetaObject)");
equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(true)");
equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(int(122))");
equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(uint(124))");
@@ -5590,6 +7748,29 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("engine->evaluate(\"new Array()\") <=> engine->evaluate(\"/foo/\")");
equals.insert("engine->evaluate(\"new Array()\") <=> engine->evaluate(\"new Object()\")");
equals.insert("engine->evaluate(\"new Array()\") <=> engine->evaluate(\"new Error()\")");
+ equals.insert("engine->evaluate(\"new Array()\") <=> engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")");
+ equals.insert("engine->evaluate(\"new Array()\") <=> engine->evaluate(\"Undefined\")");
+ equals.insert("engine->evaluate(\"new Array()\") <=> engine->evaluate(\"Null\")");
+ equals.insert("engine->evaluate(\"new Array()\") <=> engine->evaluate(\"True\")");
+ equals.insert("engine->evaluate(\"new Array()\") <=> engine->evaluate(\"False\")");
+ equals.insert("engine->evaluate(\"new Array()\") <=> engine->evaluate(\"true\")");
+ equals.insert("engine->evaluate(\"new Array()\") <=> engine->evaluate(\"122\")");
+ equals.insert("engine->evaluate(\"new Array()\") <=> engine->evaluate(\"124\")");
+ equals.insert("engine->evaluate(\"new Array()\") <=> engine->evaluate(\"123.0\")");
+ equals.insert("engine->evaluate(\"new Array()\") <=> engine->evaluate(\"6.37e-8\")");
+ equals.insert("engine->evaluate(\"new Array()\") <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("engine->evaluate(\"new Array()\") <=> engine->evaluate(\"0x10000\")");
+ equals.insert("engine->evaluate(\"new Array()\") <=> engine->evaluate(\"0x10001\")");
+ equals.insert("engine->evaluate(\"new Array()\") <=> engine->evaluate(\"Infinity\")");
+ equals.insert("engine->evaluate(\"new Array()\") <=> engine->evaluate(\"'ciao'\")");
+ equals.insert("engine->evaluate(\"new Array()\") <=> engine->evaluate(\"'0'\")");
+ equals.insert("engine->evaluate(\"new Array()\") <=> engine->evaluate(\"'123'\")");
+ equals.insert("engine->evaluate(\"new Array()\") <=> engine->evaluate(\"'12.4'\")");
+ equals.insert("engine->evaluate(\"new Array()\") <=> engine->newObject()");
+ equals.insert("engine->evaluate(\"new Array()\") <=> engine->newArray(10)");
+ equals.insert("engine->evaluate(\"new Array()\") <=> engine->newQMetaObject(&QObject::staticMetaObject)");
+ equals.insert("engine->evaluate(\"new Array()\") <=> engine->newVariant(QVariant(123))");
+ equals.insert("engine->evaluate(\"new Array()\") <=> engine->newQObject(engine)");
equals.insert("engine->evaluate(\"new Error()\") <=> QScriptValue(\"NaN\")");
equals.insert("engine->evaluate(\"new Error()\") <=> QScriptValue(\"Infinity\")");
equals.insert("engine->evaluate(\"new Error()\") <=> QScriptValue(\"ciao\")");
@@ -5612,6 +7793,982 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("engine->evaluate(\"new Error()\") <=> engine->evaluate(\"(function() { return 'ciao'; })\")");
equals.insert("engine->evaluate(\"new Error()\") <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
equals.insert("engine->evaluate(\"new Error()\") <=> engine->evaluate(\"new Object()\")");
+ equals.insert("engine->evaluate(\"new Error()\") <=> engine->evaluate(\"Undefined\")");
+ equals.insert("engine->evaluate(\"new Error()\") <=> engine->evaluate(\"Null\")");
+ equals.insert("engine->evaluate(\"new Error()\") <=> engine->evaluate(\"True\")");
+ equals.insert("engine->evaluate(\"new Error()\") <=> engine->evaluate(\"False\")");
+ equals.insert("engine->evaluate(\"new Error()\") <=> engine->evaluate(\"'ciao'\")");
+ equals.insert("engine->evaluate(\"new Error()\") <=> engine->newObject()");
+ equals.insert("engine->evaluate(\"new Error()\") <=> engine->newQMetaObject(&QObject::staticMetaObject)");
+ equals.insert("engine->evaluate(\"new Error()\") <=> engine->newQObject(engine)");
+ equals.insert("engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\") <=> QScriptValue(int(122))");
+ equals.insert("engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\") <=> QScriptValue(uint(124))");
+ equals.insert("engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\") <=> QScriptValue(123.0)");
+ equals.insert("engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\") <=> QScriptValue(0x43211234)");
+ equals.insert("engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\") <=> QScriptValue(0x10000)");
+ equals.insert("engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\") <=> QScriptValue(0x10001)");
+ equals.insert("engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\") <=> QScriptValue(qInf())");
+ equals.insert("engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\") <=> QScriptValue(\"Infinity\")");
+ equals.insert("engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\") <=> QScriptValue(QString(\"123\"))");
+ equals.insert("engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\") <=> QScriptValue(0, int(122))");
+ equals.insert("engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\") <=> QScriptValue(0, uint(124))");
+ equals.insert("engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\") <=> QScriptValue(0, 123.0)");
+ equals.insert("engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\") <=> QScriptValue(0, 0x43211234)");
+ equals.insert("engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\") <=> QScriptValue(0, 0x10000)");
+ equals.insert("engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\") <=> QScriptValue(0, 0x10001)");
+ equals.insert("engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\") <=> QScriptValue(0, qInf())");
+ equals.insert("engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\") <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\") <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\") <=> QScriptValue(engine, int(122))");
+ equals.insert("engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\") <=> QScriptValue(engine, uint(124))");
+ equals.insert("engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\") <=> QScriptValue(engine, 123.0)");
+ equals.insert("engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\") <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\") <=> QScriptValue(engine, 0x10000)");
+ equals.insert("engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\") <=> QScriptValue(engine, 0x10001)");
+ equals.insert("engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\") <=> QScriptValue(engine, qInf())");
+ equals.insert("engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\") <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\") <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\") <=> engine->evaluate(\"122\")");
+ equals.insert("engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\") <=> engine->evaluate(\"124\")");
+ equals.insert("engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\") <=> engine->evaluate(\"123.0\")");
+ equals.insert("engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\") <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\") <=> engine->evaluate(\"0x10000\")");
+ equals.insert("engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\") <=> engine->evaluate(\"0x10001\")");
+ equals.insert("engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\") <=> engine->evaluate(\"Infinity\")");
+ equals.insert("engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\") <=> engine->evaluate(\"'123'\")");
+ equals.insert("engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\") <=> engine->newVariant(QVariant(123))");
+ equals.insert("engine->evaluate(\"Undefined\") <=> QScriptValue(\"ciao\")");
+ equals.insert("engine->evaluate(\"Undefined\") <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->evaluate(\"Undefined\") <=> QScriptValue(0, \"ciao\")");
+ equals.insert("engine->evaluate(\"Undefined\") <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->evaluate(\"Undefined\") <=> QScriptValue(engine, \"ciao\")");
+ equals.insert("engine->evaluate(\"Undefined\") <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->evaluate(\"Undefined\") <=> engine->evaluate(\"Object.prototype\")");
+ equals.insert("engine->evaluate(\"Undefined\") <=> engine->evaluate(\"Function.prototype\")");
+ equals.insert("engine->evaluate(\"Undefined\") <=> engine->evaluate(\"Object\")");
+ equals.insert("engine->evaluate(\"Undefined\") <=> engine->evaluate(\"Array\")");
+ equals.insert("engine->evaluate(\"Undefined\") <=> engine->evaluate(\"Number\")");
+ equals.insert("engine->evaluate(\"Undefined\") <=> engine->evaluate(\"Function\")");
+ equals.insert("engine->evaluate(\"Undefined\") <=> engine->evaluate(\"(function() { return 1; })\")");
+ equals.insert("engine->evaluate(\"Undefined\") <=> engine->evaluate(\"(function() { return 'ciao'; })\")");
+ equals.insert("engine->evaluate(\"Undefined\") <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
+ equals.insert("engine->evaluate(\"Undefined\") <=> engine->evaluate(\"new Object()\")");
+ equals.insert("engine->evaluate(\"Undefined\") <=> engine->evaluate(\"'ciao'\")");
+ equals.insert("engine->evaluate(\"Undefined\") <=> engine->newObject()");
+ equals.insert("engine->evaluate(\"Undefined\") <=> engine->newQMetaObject(&QObject::staticMetaObject)");
+ equals.insert("engine->evaluate(\"Null\") <=> QScriptValue(\"ciao\")");
+ equals.insert("engine->evaluate(\"Null\") <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->evaluate(\"Null\") <=> QScriptValue(0, \"ciao\")");
+ equals.insert("engine->evaluate(\"Null\") <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->evaluate(\"Null\") <=> QScriptValue(engine, \"ciao\")");
+ equals.insert("engine->evaluate(\"Null\") <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->evaluate(\"Null\") <=> engine->evaluate(\"Object.prototype\")");
+ equals.insert("engine->evaluate(\"Null\") <=> engine->evaluate(\"Function.prototype\")");
+ equals.insert("engine->evaluate(\"Null\") <=> engine->evaluate(\"Object\")");
+ equals.insert("engine->evaluate(\"Null\") <=> engine->evaluate(\"Array\")");
+ equals.insert("engine->evaluate(\"Null\") <=> engine->evaluate(\"Number\")");
+ equals.insert("engine->evaluate(\"Null\") <=> engine->evaluate(\"Function\")");
+ equals.insert("engine->evaluate(\"Null\") <=> engine->evaluate(\"(function() { return 1; })\")");
+ equals.insert("engine->evaluate(\"Null\") <=> engine->evaluate(\"(function() { return 'ciao'; })\")");
+ equals.insert("engine->evaluate(\"Null\") <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
+ equals.insert("engine->evaluate(\"Null\") <=> engine->evaluate(\"new Object()\")");
+ equals.insert("engine->evaluate(\"Null\") <=> engine->evaluate(\"Undefined\")");
+ equals.insert("engine->evaluate(\"Null\") <=> engine->evaluate(\"True\")");
+ equals.insert("engine->evaluate(\"Null\") <=> engine->evaluate(\"'ciao'\")");
+ equals.insert("engine->evaluate(\"Null\") <=> engine->newObject()");
+ equals.insert("engine->evaluate(\"Null\") <=> engine->newQMetaObject(&QObject::staticMetaObject)");
+ equals.insert("engine->evaluate(\"True\") <=> QScriptValue(\"ciao\")");
+ equals.insert("engine->evaluate(\"True\") <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->evaluate(\"True\") <=> QScriptValue(0, \"ciao\")");
+ equals.insert("engine->evaluate(\"True\") <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->evaluate(\"True\") <=> QScriptValue(engine, \"ciao\")");
+ equals.insert("engine->evaluate(\"True\") <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->evaluate(\"True\") <=> engine->evaluate(\"Object.prototype\")");
+ equals.insert("engine->evaluate(\"True\") <=> engine->evaluate(\"Function.prototype\")");
+ equals.insert("engine->evaluate(\"True\") <=> engine->evaluate(\"Object\")");
+ equals.insert("engine->evaluate(\"True\") <=> engine->evaluate(\"Array\")");
+ equals.insert("engine->evaluate(\"True\") <=> engine->evaluate(\"Number\")");
+ equals.insert("engine->evaluate(\"True\") <=> engine->evaluate(\"Function\")");
+ equals.insert("engine->evaluate(\"True\") <=> engine->evaluate(\"(function() { return 1; })\")");
+ equals.insert("engine->evaluate(\"True\") <=> engine->evaluate(\"(function() { return 'ciao'; })\")");
+ equals.insert("engine->evaluate(\"True\") <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
+ equals.insert("engine->evaluate(\"True\") <=> engine->evaluate(\"new Object()\")");
+ equals.insert("engine->evaluate(\"True\") <=> engine->evaluate(\"Undefined\")");
+ equals.insert("engine->evaluate(\"True\") <=> engine->evaluate(\"'ciao'\")");
+ equals.insert("engine->evaluate(\"True\") <=> engine->newObject()");
+ equals.insert("engine->evaluate(\"True\") <=> engine->newQMetaObject(&QObject::staticMetaObject)");
+ equals.insert("engine->evaluate(\"False\") <=> QScriptValue(\"ciao\")");
+ equals.insert("engine->evaluate(\"False\") <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->evaluate(\"False\") <=> QScriptValue(0, \"ciao\")");
+ equals.insert("engine->evaluate(\"False\") <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->evaluate(\"False\") <=> QScriptValue(engine, \"ciao\")");
+ equals.insert("engine->evaluate(\"False\") <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->evaluate(\"False\") <=> engine->evaluate(\"Object.prototype\")");
+ equals.insert("engine->evaluate(\"False\") <=> engine->evaluate(\"Function.prototype\")");
+ equals.insert("engine->evaluate(\"False\") <=> engine->evaluate(\"Object\")");
+ equals.insert("engine->evaluate(\"False\") <=> engine->evaluate(\"Array\")");
+ equals.insert("engine->evaluate(\"False\") <=> engine->evaluate(\"Number\")");
+ equals.insert("engine->evaluate(\"False\") <=> engine->evaluate(\"Function\")");
+ equals.insert("engine->evaluate(\"False\") <=> engine->evaluate(\"(function() { return 1; })\")");
+ equals.insert("engine->evaluate(\"False\") <=> engine->evaluate(\"(function() { return 'ciao'; })\")");
+ equals.insert("engine->evaluate(\"False\") <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
+ equals.insert("engine->evaluate(\"False\") <=> engine->evaluate(\"new Object()\")");
+ equals.insert("engine->evaluate(\"False\") <=> engine->evaluate(\"Undefined\")");
+ equals.insert("engine->evaluate(\"False\") <=> engine->evaluate(\"Null\")");
+ equals.insert("engine->evaluate(\"False\") <=> engine->evaluate(\"True\")");
+ equals.insert("engine->evaluate(\"False\") <=> engine->evaluate(\"'ciao'\")");
+ equals.insert("engine->evaluate(\"False\") <=> engine->newObject()");
+ equals.insert("engine->evaluate(\"False\") <=> engine->newQMetaObject(&QObject::staticMetaObject)");
+ equals.insert("engine->evaluate(\"null\") <=> QScriptValue(true)");
+ equals.insert("engine->evaluate(\"null\") <=> QScriptValue(int(122))");
+ equals.insert("engine->evaluate(\"null\") <=> QScriptValue(uint(124))");
+ equals.insert("engine->evaluate(\"null\") <=> QScriptValue(123.0)");
+ equals.insert("engine->evaluate(\"null\") <=> QScriptValue(6.37e-8)");
+ equals.insert("engine->evaluate(\"null\") <=> QScriptValue(0x43211234)");
+ equals.insert("engine->evaluate(\"null\") <=> QScriptValue(0x10000)");
+ equals.insert("engine->evaluate(\"null\") <=> QScriptValue(0x10001)");
+ equals.insert("engine->evaluate(\"null\") <=> QScriptValue(qInf())");
+ equals.insert("engine->evaluate(\"null\") <=> QScriptValue(\"Infinity\")");
+ equals.insert("engine->evaluate(\"null\") <=> QScriptValue(QString(\"123\"))");
+ equals.insert("engine->evaluate(\"null\") <=> QScriptValue(QString(\"12.4\"))");
+ equals.insert("engine->evaluate(\"null\") <=> QScriptValue(0, true)");
+ equals.insert("engine->evaluate(\"null\") <=> QScriptValue(0, int(122))");
+ equals.insert("engine->evaluate(\"null\") <=> QScriptValue(0, uint(124))");
+ equals.insert("engine->evaluate(\"null\") <=> QScriptValue(0, 123.0)");
+ equals.insert("engine->evaluate(\"null\") <=> QScriptValue(0, 6.37e-8)");
+ equals.insert("engine->evaluate(\"null\") <=> QScriptValue(0, 0x43211234)");
+ equals.insert("engine->evaluate(\"null\") <=> QScriptValue(0, 0x10000)");
+ equals.insert("engine->evaluate(\"null\") <=> QScriptValue(0, 0x10001)");
+ equals.insert("engine->evaluate(\"null\") <=> QScriptValue(0, qInf())");
+ equals.insert("engine->evaluate(\"null\") <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("engine->evaluate(\"null\") <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("engine->evaluate(\"null\") <=> QScriptValue(0, QString(\"12.3\"))");
+ equals.insert("engine->evaluate(\"null\") <=> QScriptValue(engine, true)");
+ equals.insert("engine->evaluate(\"null\") <=> QScriptValue(engine, int(122))");
+ equals.insert("engine->evaluate(\"null\") <=> QScriptValue(engine, uint(124))");
+ equals.insert("engine->evaluate(\"null\") <=> QScriptValue(engine, 123.0)");
+ equals.insert("engine->evaluate(\"null\") <=> QScriptValue(engine, 6.37e-8)");
+ equals.insert("engine->evaluate(\"null\") <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("engine->evaluate(\"null\") <=> QScriptValue(engine, 0x10000)");
+ equals.insert("engine->evaluate(\"null\") <=> QScriptValue(engine, 0x10001)");
+ equals.insert("engine->evaluate(\"null\") <=> QScriptValue(engine, qInf())");
+ equals.insert("engine->evaluate(\"null\") <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("engine->evaluate(\"null\") <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("engine->evaluate(\"null\") <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("engine->evaluate(\"null\") <=> engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")");
+ equals.insert("engine->evaluate(\"null\") <=> engine->evaluate(\"true\")");
+ equals.insert("engine->evaluate(\"null\") <=> engine->evaluate(\"122\")");
+ equals.insert("engine->evaluate(\"null\") <=> engine->evaluate(\"124\")");
+ equals.insert("engine->evaluate(\"null\") <=> engine->evaluate(\"123.0\")");
+ equals.insert("engine->evaluate(\"null\") <=> engine->evaluate(\"6.37e-8\")");
+ equals.insert("engine->evaluate(\"null\") <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("engine->evaluate(\"null\") <=> engine->evaluate(\"0x10000\")");
+ equals.insert("engine->evaluate(\"null\") <=> engine->evaluate(\"0x10001\")");
+ equals.insert("engine->evaluate(\"null\") <=> engine->evaluate(\"Infinity\")");
+ equals.insert("engine->evaluate(\"null\") <=> engine->evaluate(\"'123'\")");
+ equals.insert("engine->evaluate(\"null\") <=> engine->evaluate(\"'12.4'\")");
+ equals.insert("engine->evaluate(\"null\") <=> engine->newVariant(QVariant(123))");
+ equals.insert("engine->evaluate(\"true\") <=> QScriptValue(int(122))");
+ equals.insert("engine->evaluate(\"true\") <=> QScriptValue(uint(124))");
+ equals.insert("engine->evaluate(\"true\") <=> QScriptValue(123.0)");
+ equals.insert("engine->evaluate(\"true\") <=> QScriptValue(0x43211234)");
+ equals.insert("engine->evaluate(\"true\") <=> QScriptValue(0x10000)");
+ equals.insert("engine->evaluate(\"true\") <=> QScriptValue(0x10001)");
+ equals.insert("engine->evaluate(\"true\") <=> QScriptValue(qInf())");
+ equals.insert("engine->evaluate(\"true\") <=> QScriptValue(\"Infinity\")");
+ equals.insert("engine->evaluate(\"true\") <=> QScriptValue(QString(\"123\"))");
+ equals.insert("engine->evaluate(\"true\") <=> QScriptValue(QString(\"12.4\"))");
+ equals.insert("engine->evaluate(\"true\") <=> QScriptValue(0, int(122))");
+ equals.insert("engine->evaluate(\"true\") <=> QScriptValue(0, uint(124))");
+ equals.insert("engine->evaluate(\"true\") <=> QScriptValue(0, 123.0)");
+ equals.insert("engine->evaluate(\"true\") <=> QScriptValue(0, 0x43211234)");
+ equals.insert("engine->evaluate(\"true\") <=> QScriptValue(0, 0x10000)");
+ equals.insert("engine->evaluate(\"true\") <=> QScriptValue(0, 0x10001)");
+ equals.insert("engine->evaluate(\"true\") <=> QScriptValue(0, qInf())");
+ equals.insert("engine->evaluate(\"true\") <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("engine->evaluate(\"true\") <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("engine->evaluate(\"true\") <=> QScriptValue(0, QString(\"12.3\"))");
+ equals.insert("engine->evaluate(\"true\") <=> QScriptValue(engine, int(122))");
+ equals.insert("engine->evaluate(\"true\") <=> QScriptValue(engine, uint(124))");
+ equals.insert("engine->evaluate(\"true\") <=> QScriptValue(engine, 123.0)");
+ equals.insert("engine->evaluate(\"true\") <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("engine->evaluate(\"true\") <=> QScriptValue(engine, 0x10000)");
+ equals.insert("engine->evaluate(\"true\") <=> QScriptValue(engine, 0x10001)");
+ equals.insert("engine->evaluate(\"true\") <=> QScriptValue(engine, qInf())");
+ equals.insert("engine->evaluate(\"true\") <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("engine->evaluate(\"true\") <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("engine->evaluate(\"true\") <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("engine->evaluate(\"true\") <=> engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")");
+ equals.insert("engine->evaluate(\"true\") <=> engine->evaluate(\"122\")");
+ equals.insert("engine->evaluate(\"true\") <=> engine->evaluate(\"124\")");
+ equals.insert("engine->evaluate(\"true\") <=> engine->evaluate(\"123.0\")");
+ equals.insert("engine->evaluate(\"true\") <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("engine->evaluate(\"true\") <=> engine->evaluate(\"0x10000\")");
+ equals.insert("engine->evaluate(\"true\") <=> engine->evaluate(\"0x10001\")");
+ equals.insert("engine->evaluate(\"true\") <=> engine->evaluate(\"Infinity\")");
+ equals.insert("engine->evaluate(\"true\") <=> engine->evaluate(\"'123'\")");
+ equals.insert("engine->evaluate(\"true\") <=> engine->evaluate(\"'12.4'\")");
+ equals.insert("engine->evaluate(\"true\") <=> engine->newVariant(QVariant(123))");
+ equals.insert("engine->evaluate(\"false\") <=> QScriptValue(true)");
+ equals.insert("engine->evaluate(\"false\") <=> QScriptValue(int(122))");
+ equals.insert("engine->evaluate(\"false\") <=> QScriptValue(uint(124))");
+ equals.insert("engine->evaluate(\"false\") <=> QScriptValue(123.0)");
+ equals.insert("engine->evaluate(\"false\") <=> QScriptValue(6.37e-8)");
+ equals.insert("engine->evaluate(\"false\") <=> QScriptValue(0x43211234)");
+ equals.insert("engine->evaluate(\"false\") <=> QScriptValue(0x10000)");
+ equals.insert("engine->evaluate(\"false\") <=> QScriptValue(0x10001)");
+ equals.insert("engine->evaluate(\"false\") <=> QScriptValue(qInf())");
+ equals.insert("engine->evaluate(\"false\") <=> QScriptValue(\"Infinity\")");
+ equals.insert("engine->evaluate(\"false\") <=> QScriptValue(QString(\"123\"))");
+ equals.insert("engine->evaluate(\"false\") <=> QScriptValue(QString(\"12.4\"))");
+ equals.insert("engine->evaluate(\"false\") <=> QScriptValue(0, true)");
+ equals.insert("engine->evaluate(\"false\") <=> QScriptValue(0, int(122))");
+ equals.insert("engine->evaluate(\"false\") <=> QScriptValue(0, uint(124))");
+ equals.insert("engine->evaluate(\"false\") <=> QScriptValue(0, 123.0)");
+ equals.insert("engine->evaluate(\"false\") <=> QScriptValue(0, 6.37e-8)");
+ equals.insert("engine->evaluate(\"false\") <=> QScriptValue(0, 0x43211234)");
+ equals.insert("engine->evaluate(\"false\") <=> QScriptValue(0, 0x10000)");
+ equals.insert("engine->evaluate(\"false\") <=> QScriptValue(0, 0x10001)");
+ equals.insert("engine->evaluate(\"false\") <=> QScriptValue(0, qInf())");
+ equals.insert("engine->evaluate(\"false\") <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("engine->evaluate(\"false\") <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("engine->evaluate(\"false\") <=> QScriptValue(0, QString(\"12.3\"))");
+ equals.insert("engine->evaluate(\"false\") <=> QScriptValue(engine, true)");
+ equals.insert("engine->evaluate(\"false\") <=> QScriptValue(engine, int(122))");
+ equals.insert("engine->evaluate(\"false\") <=> QScriptValue(engine, uint(124))");
+ equals.insert("engine->evaluate(\"false\") <=> QScriptValue(engine, 123.0)");
+ equals.insert("engine->evaluate(\"false\") <=> QScriptValue(engine, 6.37e-8)");
+ equals.insert("engine->evaluate(\"false\") <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("engine->evaluate(\"false\") <=> QScriptValue(engine, 0x10000)");
+ equals.insert("engine->evaluate(\"false\") <=> QScriptValue(engine, 0x10001)");
+ equals.insert("engine->evaluate(\"false\") <=> QScriptValue(engine, qInf())");
+ equals.insert("engine->evaluate(\"false\") <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("engine->evaluate(\"false\") <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("engine->evaluate(\"false\") <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("engine->evaluate(\"false\") <=> engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")");
+ equals.insert("engine->evaluate(\"false\") <=> engine->evaluate(\"true\")");
+ equals.insert("engine->evaluate(\"false\") <=> engine->evaluate(\"122\")");
+ equals.insert("engine->evaluate(\"false\") <=> engine->evaluate(\"124\")");
+ equals.insert("engine->evaluate(\"false\") <=> engine->evaluate(\"123.0\")");
+ equals.insert("engine->evaluate(\"false\") <=> engine->evaluate(\"6.37e-8\")");
+ equals.insert("engine->evaluate(\"false\") <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("engine->evaluate(\"false\") <=> engine->evaluate(\"0x10000\")");
+ equals.insert("engine->evaluate(\"false\") <=> engine->evaluate(\"0x10001\")");
+ equals.insert("engine->evaluate(\"false\") <=> engine->evaluate(\"Infinity\")");
+ equals.insert("engine->evaluate(\"false\") <=> engine->evaluate(\"'123'\")");
+ equals.insert("engine->evaluate(\"false\") <=> engine->evaluate(\"'12.4'\")");
+ equals.insert("engine->evaluate(\"false\") <=> engine->newVariant(QVariant(123))");
+ equals.insert("engine->evaluate(\"122\") <=> QScriptValue(uint(124))");
+ equals.insert("engine->evaluate(\"122\") <=> QScriptValue(123.0)");
+ equals.insert("engine->evaluate(\"122\") <=> QScriptValue(0x43211234)");
+ equals.insert("engine->evaluate(\"122\") <=> QScriptValue(0x10000)");
+ equals.insert("engine->evaluate(\"122\") <=> QScriptValue(0x10001)");
+ equals.insert("engine->evaluate(\"122\") <=> QScriptValue(qInf())");
+ equals.insert("engine->evaluate(\"122\") <=> QScriptValue(\"Infinity\")");
+ equals.insert("engine->evaluate(\"122\") <=> QScriptValue(QString(\"123\"))");
+ equals.insert("engine->evaluate(\"122\") <=> QScriptValue(0, uint(124))");
+ equals.insert("engine->evaluate(\"122\") <=> QScriptValue(0, 123.0)");
+ equals.insert("engine->evaluate(\"122\") <=> QScriptValue(0, 0x43211234)");
+ equals.insert("engine->evaluate(\"122\") <=> QScriptValue(0, 0x10000)");
+ equals.insert("engine->evaluate(\"122\") <=> QScriptValue(0, 0x10001)");
+ equals.insert("engine->evaluate(\"122\") <=> QScriptValue(0, qInf())");
+ equals.insert("engine->evaluate(\"122\") <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("engine->evaluate(\"122\") <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("engine->evaluate(\"122\") <=> QScriptValue(engine, uint(124))");
+ equals.insert("engine->evaluate(\"122\") <=> QScriptValue(engine, 123.0)");
+ equals.insert("engine->evaluate(\"122\") <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("engine->evaluate(\"122\") <=> QScriptValue(engine, 0x10000)");
+ equals.insert("engine->evaluate(\"122\") <=> QScriptValue(engine, 0x10001)");
+ equals.insert("engine->evaluate(\"122\") <=> QScriptValue(engine, qInf())");
+ equals.insert("engine->evaluate(\"122\") <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("engine->evaluate(\"122\") <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("engine->evaluate(\"122\") <=> engine->evaluate(\"124\")");
+ equals.insert("engine->evaluate(\"122\") <=> engine->evaluate(\"123.0\")");
+ equals.insert("engine->evaluate(\"122\") <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("engine->evaluate(\"122\") <=> engine->evaluate(\"0x10000\")");
+ equals.insert("engine->evaluate(\"122\") <=> engine->evaluate(\"0x10001\")");
+ equals.insert("engine->evaluate(\"122\") <=> engine->evaluate(\"Infinity\")");
+ equals.insert("engine->evaluate(\"122\") <=> engine->evaluate(\"'123'\")");
+ equals.insert("engine->evaluate(\"122\") <=> engine->newVariant(QVariant(123))");
+ equals.insert("engine->evaluate(\"124\") <=> QScriptValue(0x43211234)");
+ equals.insert("engine->evaluate(\"124\") <=> QScriptValue(0x10000)");
+ equals.insert("engine->evaluate(\"124\") <=> QScriptValue(0x10001)");
+ equals.insert("engine->evaluate(\"124\") <=> QScriptValue(qInf())");
+ equals.insert("engine->evaluate(\"124\") <=> QScriptValue(\"Infinity\")");
+ equals.insert("engine->evaluate(\"124\") <=> QScriptValue(0, 0x43211234)");
+ equals.insert("engine->evaluate(\"124\") <=> QScriptValue(0, 0x10000)");
+ equals.insert("engine->evaluate(\"124\") <=> QScriptValue(0, 0x10001)");
+ equals.insert("engine->evaluate(\"124\") <=> QScriptValue(0, qInf())");
+ equals.insert("engine->evaluate(\"124\") <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("engine->evaluate(\"124\") <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("engine->evaluate(\"124\") <=> QScriptValue(engine, 0x10000)");
+ equals.insert("engine->evaluate(\"124\") <=> QScriptValue(engine, 0x10001)");
+ equals.insert("engine->evaluate(\"124\") <=> QScriptValue(engine, qInf())");
+ equals.insert("engine->evaluate(\"124\") <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("engine->evaluate(\"124\") <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("engine->evaluate(\"124\") <=> engine->evaluate(\"0x10000\")");
+ equals.insert("engine->evaluate(\"124\") <=> engine->evaluate(\"0x10001\")");
+ equals.insert("engine->evaluate(\"124\") <=> engine->evaluate(\"Infinity\")");
+ equals.insert("engine->evaluate(\"0\") <=> QScriptValue(true)");
+ equals.insert("engine->evaluate(\"0\") <=> QScriptValue(int(122))");
+ equals.insert("engine->evaluate(\"0\") <=> QScriptValue(uint(124))");
+ equals.insert("engine->evaluate(\"0\") <=> QScriptValue(123.0)");
+ equals.insert("engine->evaluate(\"0\") <=> QScriptValue(6.37e-8)");
+ equals.insert("engine->evaluate(\"0\") <=> QScriptValue(0x43211234)");
+ equals.insert("engine->evaluate(\"0\") <=> QScriptValue(0x10000)");
+ equals.insert("engine->evaluate(\"0\") <=> QScriptValue(0x10001)");
+ equals.insert("engine->evaluate(\"0\") <=> QScriptValue(qInf())");
+ equals.insert("engine->evaluate(\"0\") <=> QScriptValue(\"Infinity\")");
+ equals.insert("engine->evaluate(\"0\") <=> QScriptValue(QString(\"123\"))");
+ equals.insert("engine->evaluate(\"0\") <=> QScriptValue(QString(\"12.4\"))");
+ equals.insert("engine->evaluate(\"0\") <=> QScriptValue(0, true)");
+ equals.insert("engine->evaluate(\"0\") <=> QScriptValue(0, int(122))");
+ equals.insert("engine->evaluate(\"0\") <=> QScriptValue(0, uint(124))");
+ equals.insert("engine->evaluate(\"0\") <=> QScriptValue(0, 123.0)");
+ equals.insert("engine->evaluate(\"0\") <=> QScriptValue(0, 6.37e-8)");
+ equals.insert("engine->evaluate(\"0\") <=> QScriptValue(0, 0x43211234)");
+ equals.insert("engine->evaluate(\"0\") <=> QScriptValue(0, 0x10000)");
+ equals.insert("engine->evaluate(\"0\") <=> QScriptValue(0, 0x10001)");
+ equals.insert("engine->evaluate(\"0\") <=> QScriptValue(0, qInf())");
+ equals.insert("engine->evaluate(\"0\") <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("engine->evaluate(\"0\") <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("engine->evaluate(\"0\") <=> QScriptValue(0, QString(\"12.3\"))");
+ equals.insert("engine->evaluate(\"0\") <=> QScriptValue(engine, true)");
+ equals.insert("engine->evaluate(\"0\") <=> QScriptValue(engine, int(122))");
+ equals.insert("engine->evaluate(\"0\") <=> QScriptValue(engine, uint(124))");
+ equals.insert("engine->evaluate(\"0\") <=> QScriptValue(engine, 123.0)");
+ equals.insert("engine->evaluate(\"0\") <=> QScriptValue(engine, 6.37e-8)");
+ equals.insert("engine->evaluate(\"0\") <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("engine->evaluate(\"0\") <=> QScriptValue(engine, 0x10000)");
+ equals.insert("engine->evaluate(\"0\") <=> QScriptValue(engine, 0x10001)");
+ equals.insert("engine->evaluate(\"0\") <=> QScriptValue(engine, qInf())");
+ equals.insert("engine->evaluate(\"0\") <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("engine->evaluate(\"0\") <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("engine->evaluate(\"0\") <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("engine->evaluate(\"0\") <=> engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")");
+ equals.insert("engine->evaluate(\"0\") <=> engine->evaluate(\"true\")");
+ equals.insert("engine->evaluate(\"0\") <=> engine->evaluate(\"122\")");
+ equals.insert("engine->evaluate(\"0\") <=> engine->evaluate(\"124\")");
+ equals.insert("engine->evaluate(\"0\") <=> engine->evaluate(\"123.0\")");
+ equals.insert("engine->evaluate(\"0\") <=> engine->evaluate(\"6.37e-8\")");
+ equals.insert("engine->evaluate(\"0\") <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("engine->evaluate(\"0\") <=> engine->evaluate(\"0x10000\")");
+ equals.insert("engine->evaluate(\"0\") <=> engine->evaluate(\"0x10001\")");
+ equals.insert("engine->evaluate(\"0\") <=> engine->evaluate(\"Infinity\")");
+ equals.insert("engine->evaluate(\"0\") <=> engine->evaluate(\"'123'\")");
+ equals.insert("engine->evaluate(\"0\") <=> engine->evaluate(\"'12.4'\")");
+ equals.insert("engine->evaluate(\"0\") <=> engine->newVariant(QVariant(123))");
+ equals.insert("engine->evaluate(\"0.0\") <=> QScriptValue(true)");
+ equals.insert("engine->evaluate(\"0.0\") <=> QScriptValue(int(122))");
+ equals.insert("engine->evaluate(\"0.0\") <=> QScriptValue(uint(124))");
+ equals.insert("engine->evaluate(\"0.0\") <=> QScriptValue(123.0)");
+ equals.insert("engine->evaluate(\"0.0\") <=> QScriptValue(6.37e-8)");
+ equals.insert("engine->evaluate(\"0.0\") <=> QScriptValue(0x43211234)");
+ equals.insert("engine->evaluate(\"0.0\") <=> QScriptValue(0x10000)");
+ equals.insert("engine->evaluate(\"0.0\") <=> QScriptValue(0x10001)");
+ equals.insert("engine->evaluate(\"0.0\") <=> QScriptValue(qInf())");
+ equals.insert("engine->evaluate(\"0.0\") <=> QScriptValue(\"Infinity\")");
+ equals.insert("engine->evaluate(\"0.0\") <=> QScriptValue(QString(\"123\"))");
+ equals.insert("engine->evaluate(\"0.0\") <=> QScriptValue(QString(\"12.4\"))");
+ equals.insert("engine->evaluate(\"0.0\") <=> QScriptValue(0, true)");
+ equals.insert("engine->evaluate(\"0.0\") <=> QScriptValue(0, int(122))");
+ equals.insert("engine->evaluate(\"0.0\") <=> QScriptValue(0, uint(124))");
+ equals.insert("engine->evaluate(\"0.0\") <=> QScriptValue(0, 123.0)");
+ equals.insert("engine->evaluate(\"0.0\") <=> QScriptValue(0, 6.37e-8)");
+ equals.insert("engine->evaluate(\"0.0\") <=> QScriptValue(0, 0x43211234)");
+ equals.insert("engine->evaluate(\"0.0\") <=> QScriptValue(0, 0x10000)");
+ equals.insert("engine->evaluate(\"0.0\") <=> QScriptValue(0, 0x10001)");
+ equals.insert("engine->evaluate(\"0.0\") <=> QScriptValue(0, qInf())");
+ equals.insert("engine->evaluate(\"0.0\") <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("engine->evaluate(\"0.0\") <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("engine->evaluate(\"0.0\") <=> QScriptValue(0, QString(\"12.3\"))");
+ equals.insert("engine->evaluate(\"0.0\") <=> QScriptValue(engine, true)");
+ equals.insert("engine->evaluate(\"0.0\") <=> QScriptValue(engine, int(122))");
+ equals.insert("engine->evaluate(\"0.0\") <=> QScriptValue(engine, uint(124))");
+ equals.insert("engine->evaluate(\"0.0\") <=> QScriptValue(engine, 123.0)");
+ equals.insert("engine->evaluate(\"0.0\") <=> QScriptValue(engine, 6.37e-8)");
+ equals.insert("engine->evaluate(\"0.0\") <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("engine->evaluate(\"0.0\") <=> QScriptValue(engine, 0x10000)");
+ equals.insert("engine->evaluate(\"0.0\") <=> QScriptValue(engine, 0x10001)");
+ equals.insert("engine->evaluate(\"0.0\") <=> QScriptValue(engine, qInf())");
+ equals.insert("engine->evaluate(\"0.0\") <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("engine->evaluate(\"0.0\") <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("engine->evaluate(\"0.0\") <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("engine->evaluate(\"0.0\") <=> engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")");
+ equals.insert("engine->evaluate(\"0.0\") <=> engine->evaluate(\"true\")");
+ equals.insert("engine->evaluate(\"0.0\") <=> engine->evaluate(\"122\")");
+ equals.insert("engine->evaluate(\"0.0\") <=> engine->evaluate(\"124\")");
+ equals.insert("engine->evaluate(\"0.0\") <=> engine->evaluate(\"123.0\")");
+ equals.insert("engine->evaluate(\"0.0\") <=> engine->evaluate(\"6.37e-8\")");
+ equals.insert("engine->evaluate(\"0.0\") <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("engine->evaluate(\"0.0\") <=> engine->evaluate(\"0x10000\")");
+ equals.insert("engine->evaluate(\"0.0\") <=> engine->evaluate(\"0x10001\")");
+ equals.insert("engine->evaluate(\"0.0\") <=> engine->evaluate(\"Infinity\")");
+ equals.insert("engine->evaluate(\"0.0\") <=> engine->evaluate(\"'123'\")");
+ equals.insert("engine->evaluate(\"0.0\") <=> engine->evaluate(\"'12.4'\")");
+ equals.insert("engine->evaluate(\"0.0\") <=> engine->newVariant(QVariant(123))");
+ equals.insert("engine->evaluate(\"123.0\") <=> QScriptValue(uint(124))");
+ equals.insert("engine->evaluate(\"123.0\") <=> QScriptValue(0x43211234)");
+ equals.insert("engine->evaluate(\"123.0\") <=> QScriptValue(0x10000)");
+ equals.insert("engine->evaluate(\"123.0\") <=> QScriptValue(0x10001)");
+ equals.insert("engine->evaluate(\"123.0\") <=> QScriptValue(qInf())");
+ equals.insert("engine->evaluate(\"123.0\") <=> QScriptValue(\"Infinity\")");
+ equals.insert("engine->evaluate(\"123.0\") <=> QScriptValue(0, uint(124))");
+ equals.insert("engine->evaluate(\"123.0\") <=> QScriptValue(0, 0x43211234)");
+ equals.insert("engine->evaluate(\"123.0\") <=> QScriptValue(0, 0x10000)");
+ equals.insert("engine->evaluate(\"123.0\") <=> QScriptValue(0, 0x10001)");
+ equals.insert("engine->evaluate(\"123.0\") <=> QScriptValue(0, qInf())");
+ equals.insert("engine->evaluate(\"123.0\") <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("engine->evaluate(\"123.0\") <=> QScriptValue(engine, uint(124))");
+ equals.insert("engine->evaluate(\"123.0\") <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("engine->evaluate(\"123.0\") <=> QScriptValue(engine, 0x10000)");
+ equals.insert("engine->evaluate(\"123.0\") <=> QScriptValue(engine, 0x10001)");
+ equals.insert("engine->evaluate(\"123.0\") <=> QScriptValue(engine, qInf())");
+ equals.insert("engine->evaluate(\"123.0\") <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("engine->evaluate(\"123.0\") <=> engine->evaluate(\"124\")");
+ equals.insert("engine->evaluate(\"123.0\") <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("engine->evaluate(\"123.0\") <=> engine->evaluate(\"0x10000\")");
+ equals.insert("engine->evaluate(\"123.0\") <=> engine->evaluate(\"0x10001\")");
+ equals.insert("engine->evaluate(\"123.0\") <=> engine->evaluate(\"Infinity\")");
+ equals.insert("engine->evaluate(\"6.37e-8\") <=> QScriptValue(true)");
+ equals.insert("engine->evaluate(\"6.37e-8\") <=> QScriptValue(int(122))");
+ equals.insert("engine->evaluate(\"6.37e-8\") <=> QScriptValue(uint(124))");
+ equals.insert("engine->evaluate(\"6.37e-8\") <=> QScriptValue(123.0)");
+ equals.insert("engine->evaluate(\"6.37e-8\") <=> QScriptValue(0x43211234)");
+ equals.insert("engine->evaluate(\"6.37e-8\") <=> QScriptValue(0x10000)");
+ equals.insert("engine->evaluate(\"6.37e-8\") <=> QScriptValue(0x10001)");
+ equals.insert("engine->evaluate(\"6.37e-8\") <=> QScriptValue(qInf())");
+ equals.insert("engine->evaluate(\"6.37e-8\") <=> QScriptValue(\"Infinity\")");
+ equals.insert("engine->evaluate(\"6.37e-8\") <=> QScriptValue(QString(\"123\"))");
+ equals.insert("engine->evaluate(\"6.37e-8\") <=> QScriptValue(QString(\"12.4\"))");
+ equals.insert("engine->evaluate(\"6.37e-8\") <=> QScriptValue(0, true)");
+ equals.insert("engine->evaluate(\"6.37e-8\") <=> QScriptValue(0, int(122))");
+ equals.insert("engine->evaluate(\"6.37e-8\") <=> QScriptValue(0, uint(124))");
+ equals.insert("engine->evaluate(\"6.37e-8\") <=> QScriptValue(0, 123.0)");
+ equals.insert("engine->evaluate(\"6.37e-8\") <=> QScriptValue(0, 0x43211234)");
+ equals.insert("engine->evaluate(\"6.37e-8\") <=> QScriptValue(0, 0x10000)");
+ equals.insert("engine->evaluate(\"6.37e-8\") <=> QScriptValue(0, 0x10001)");
+ equals.insert("engine->evaluate(\"6.37e-8\") <=> QScriptValue(0, qInf())");
+ equals.insert("engine->evaluate(\"6.37e-8\") <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("engine->evaluate(\"6.37e-8\") <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("engine->evaluate(\"6.37e-8\") <=> QScriptValue(0, QString(\"12.3\"))");
+ equals.insert("engine->evaluate(\"6.37e-8\") <=> QScriptValue(engine, true)");
+ equals.insert("engine->evaluate(\"6.37e-8\") <=> QScriptValue(engine, int(122))");
+ equals.insert("engine->evaluate(\"6.37e-8\") <=> QScriptValue(engine, uint(124))");
+ equals.insert("engine->evaluate(\"6.37e-8\") <=> QScriptValue(engine, 123.0)");
+ equals.insert("engine->evaluate(\"6.37e-8\") <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("engine->evaluate(\"6.37e-8\") <=> QScriptValue(engine, 0x10000)");
+ equals.insert("engine->evaluate(\"6.37e-8\") <=> QScriptValue(engine, 0x10001)");
+ equals.insert("engine->evaluate(\"6.37e-8\") <=> QScriptValue(engine, qInf())");
+ equals.insert("engine->evaluate(\"6.37e-8\") <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("engine->evaluate(\"6.37e-8\") <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("engine->evaluate(\"6.37e-8\") <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("engine->evaluate(\"6.37e-8\") <=> engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")");
+ equals.insert("engine->evaluate(\"6.37e-8\") <=> engine->evaluate(\"true\")");
+ equals.insert("engine->evaluate(\"6.37e-8\") <=> engine->evaluate(\"122\")");
+ equals.insert("engine->evaluate(\"6.37e-8\") <=> engine->evaluate(\"124\")");
+ equals.insert("engine->evaluate(\"6.37e-8\") <=> engine->evaluate(\"123.0\")");
+ equals.insert("engine->evaluate(\"6.37e-8\") <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("engine->evaluate(\"6.37e-8\") <=> engine->evaluate(\"0x10000\")");
+ equals.insert("engine->evaluate(\"6.37e-8\") <=> engine->evaluate(\"0x10001\")");
+ equals.insert("engine->evaluate(\"6.37e-8\") <=> engine->evaluate(\"Infinity\")");
+ equals.insert("engine->evaluate(\"6.37e-8\") <=> engine->evaluate(\"'123'\")");
+ equals.insert("engine->evaluate(\"6.37e-8\") <=> engine->evaluate(\"'12.4'\")");
+ equals.insert("engine->evaluate(\"6.37e-8\") <=> engine->newVariant(QVariant(123))");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> QScriptValue(QScriptValue::NullValue)");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> QScriptValue(true)");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> QScriptValue(false)");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> QScriptValue(int(122))");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> QScriptValue(uint(124))");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> QScriptValue(0)");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> QScriptValue(0.0)");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> QScriptValue(123.0)");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> QScriptValue(6.37e-8)");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> QScriptValue(0x43211234)");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> QScriptValue(0x10000)");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> QScriptValue(0x10001)");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> QScriptValue(qInf())");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> QScriptValue(\"Infinity\")");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> QScriptValue(QString(\"\"))");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> QScriptValue(QString())");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> QScriptValue(QString(\"0\"))");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> QScriptValue(QString(\"123\"))");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> QScriptValue(QString(\"12.4\"))");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> QScriptValue(0, QScriptValue::NullValue)");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> QScriptValue(0, true)");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> QScriptValue(0, false)");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> QScriptValue(0, int(122))");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> QScriptValue(0, uint(124))");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> QScriptValue(0, 0)");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> QScriptValue(0, 0.0)");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> QScriptValue(0, 123.0)");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> QScriptValue(0, 6.37e-8)");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> QScriptValue(0, 0x43211234)");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> QScriptValue(0, 0x10000)");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> QScriptValue(0, 0x10001)");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> QScriptValue(0, qInf())");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> QScriptValue(0, QString(\"\"))");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> QScriptValue(0, QString())");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> QScriptValue(0, QString(\"0\"))");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> QScriptValue(0, QString(\"12.3\"))");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> QScriptValue(engine, QScriptValue::NullValue)");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> QScriptValue(engine, true)");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> QScriptValue(engine, false)");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> QScriptValue(engine, int(122))");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> QScriptValue(engine, uint(124))");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> QScriptValue(engine, 0)");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> QScriptValue(engine, 0.0)");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> QScriptValue(engine, 123.0)");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> QScriptValue(engine, 6.37e-8)");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> QScriptValue(engine, 0x10000)");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> QScriptValue(engine, 0x10001)");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> QScriptValue(engine, qInf())");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> QScriptValue(engine, QString(\"\"))");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> QScriptValue(engine, QString())");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> QScriptValue(engine, QString(\"0\"))");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> engine->evaluate(\"[]\")");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> engine->evaluate(\"Array.prototype\")");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> engine->evaluate(\"new Array()\")");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> engine->evaluate(\"null\")");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> engine->evaluate(\"true\")");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> engine->evaluate(\"false\")");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> engine->evaluate(\"122\")");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> engine->evaluate(\"124\")");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> engine->evaluate(\"0\")");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> engine->evaluate(\"0.0\")");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> engine->evaluate(\"123.0\")");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> engine->evaluate(\"6.37e-8\")");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> engine->evaluate(\"0x10000\")");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> engine->evaluate(\"0x10001\")");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> engine->evaluate(\"Infinity\")");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> engine->evaluate(\"''\")");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> engine->evaluate(\"'0'\")");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> engine->evaluate(\"'123'\")");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> engine->evaluate(\"'12.4'\")");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> engine->nullValue()");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> engine->newArray()");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> engine->newVariant(QVariant(123))");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> engine->newVariant(QVariant(false))");
+ equals.insert("engine->evaluate(\"-6.37e-8\") <=> engine->newQObject(0)");
+ equals.insert("engine->evaluate(\"0x43211234\") <=> QScriptValue(qInf())");
+ equals.insert("engine->evaluate(\"0x43211234\") <=> QScriptValue(\"Infinity\")");
+ equals.insert("engine->evaluate(\"0x43211234\") <=> QScriptValue(0, qInf())");
+ equals.insert("engine->evaluate(\"0x43211234\") <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("engine->evaluate(\"0x43211234\") <=> QScriptValue(engine, qInf())");
+ equals.insert("engine->evaluate(\"0x43211234\") <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("engine->evaluate(\"0x43211234\") <=> engine->evaluate(\"Infinity\")");
+ equals.insert("engine->evaluate(\"0x10000\") <=> QScriptValue(0x43211234)");
+ equals.insert("engine->evaluate(\"0x10000\") <=> QScriptValue(0x10001)");
+ equals.insert("engine->evaluate(\"0x10000\") <=> QScriptValue(qInf())");
+ equals.insert("engine->evaluate(\"0x10000\") <=> QScriptValue(\"Infinity\")");
+ equals.insert("engine->evaluate(\"0x10000\") <=> QScriptValue(0, 0x43211234)");
+ equals.insert("engine->evaluate(\"0x10000\") <=> QScriptValue(0, 0x10001)");
+ equals.insert("engine->evaluate(\"0x10000\") <=> QScriptValue(0, qInf())");
+ equals.insert("engine->evaluate(\"0x10000\") <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("engine->evaluate(\"0x10000\") <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("engine->evaluate(\"0x10000\") <=> QScriptValue(engine, 0x10001)");
+ equals.insert("engine->evaluate(\"0x10000\") <=> QScriptValue(engine, qInf())");
+ equals.insert("engine->evaluate(\"0x10000\") <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("engine->evaluate(\"0x10000\") <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("engine->evaluate(\"0x10000\") <=> engine->evaluate(\"0x10001\")");
+ equals.insert("engine->evaluate(\"0x10000\") <=> engine->evaluate(\"Infinity\")");
+ equals.insert("engine->evaluate(\"0x10001\") <=> QScriptValue(0x43211234)");
+ equals.insert("engine->evaluate(\"0x10001\") <=> QScriptValue(qInf())");
+ equals.insert("engine->evaluate(\"0x10001\") <=> QScriptValue(\"Infinity\")");
+ equals.insert("engine->evaluate(\"0x10001\") <=> QScriptValue(0, 0x43211234)");
+ equals.insert("engine->evaluate(\"0x10001\") <=> QScriptValue(0, qInf())");
+ equals.insert("engine->evaluate(\"0x10001\") <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("engine->evaluate(\"0x10001\") <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("engine->evaluate(\"0x10001\") <=> QScriptValue(engine, qInf())");
+ equals.insert("engine->evaluate(\"0x10001\") <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("engine->evaluate(\"0x10001\") <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("engine->evaluate(\"0x10001\") <=> engine->evaluate(\"Infinity\")");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(QScriptValue::NullValue)");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(true)");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(false)");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(int(122))");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(uint(124))");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(0)");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(0.0)");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(123.0)");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(6.37e-8)");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(-6.37e-8)");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(0x43211234)");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(0x10000)");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(0x10001)");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(qInf())");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(\"Infinity\")");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(QString(\"\"))");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(QString())");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(QString(\"0\"))");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(QString(\"123\"))");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(QString(\"12.4\"))");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(0, QScriptValue::NullValue)");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(0, true)");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(0, false)");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(0, int(122))");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(0, uint(124))");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(0, 0)");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(0, 0.0)");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(0, 123.0)");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(0, 6.37e-8)");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(0, -6.37e-8)");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(0, 0x43211234)");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(0, 0x10000)");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(0, 0x10001)");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(0, qInf())");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(0, QString(\"\"))");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(0, QString())");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(0, QString(\"0\"))");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(0, QString(\"12.3\"))");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(engine, QScriptValue::NullValue)");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(engine, true)");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(engine, false)");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(engine, int(122))");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(engine, uint(124))");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(engine, 0)");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(engine, 0.0)");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(engine, 123.0)");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(engine, 6.37e-8)");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(engine, -6.37e-8)");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(engine, 0x10000)");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(engine, 0x10001)");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(engine, qInf())");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(engine, QString(\"\"))");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(engine, QString())");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(engine, QString(\"0\"))");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> engine->evaluate(\"[]\")");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> engine->evaluate(\"Array.prototype\")");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> engine->evaluate(\"new Array()\")");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> engine->evaluate(\"null\")");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> engine->evaluate(\"true\")");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> engine->evaluate(\"false\")");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> engine->evaluate(\"122\")");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> engine->evaluate(\"124\")");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> engine->evaluate(\"0\")");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> engine->evaluate(\"0.0\")");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> engine->evaluate(\"123.0\")");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> engine->evaluate(\"6.37e-8\")");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> engine->evaluate(\"-6.37e-8\")");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> engine->evaluate(\"0x10000\")");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> engine->evaluate(\"0x10001\")");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> engine->evaluate(\"Infinity\")");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> engine->evaluate(\"''\")");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> engine->evaluate(\"'0'\")");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> engine->evaluate(\"'123'\")");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> engine->evaluate(\"'12.4'\")");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> engine->nullValue()");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> engine->newArray()");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> engine->newVariant(QVariant(123))");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> engine->newVariant(QVariant(false))");
+ equals.insert("engine->evaluate(\"-Infinity\") <=> engine->newQObject(0)");
+ equals.insert("engine->evaluate(\"'ciao'\") <=> engine->evaluate(\"Function.prototype\")");
+ equals.insert("engine->evaluate(\"'ciao'\") <=> engine->evaluate(\"Object\")");
+ equals.insert("engine->evaluate(\"'ciao'\") <=> engine->evaluate(\"Array\")");
+ equals.insert("engine->evaluate(\"'ciao'\") <=> engine->evaluate(\"Number\")");
+ equals.insert("engine->evaluate(\"'ciao'\") <=> engine->evaluate(\"Function\")");
+ equals.insert("engine->evaluate(\"'ciao'\") <=> engine->evaluate(\"(function() { return 1; })\")");
+ equals.insert("engine->evaluate(\"'ciao'\") <=> engine->evaluate(\"(function() { return 'ciao'; })\")");
+ equals.insert("engine->evaluate(\"'ciao'\") <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(true)");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(int(122))");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(uint(124))");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(123.0)");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(6.37e-8)");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(0x43211234)");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(0x10000)");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(0x10001)");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(qInf())");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(\"NaN\")");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(\"Infinity\")");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(\"-Infinity\")");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(\"ciao\")");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(QString(\"0\"))");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(QString(\"123\"))");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(QString(\"12.4\"))");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(0, true)");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(0, int(122))");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(0, uint(124))");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(0, 123.0)");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(0, 6.37e-8)");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(0, 0x43211234)");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(0, 0x10000)");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(0, 0x10001)");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(0, qInf())");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(0, \"NaN\")");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(0, \"-Infinity\")");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(0, \"ciao\")");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(0, QString(\"0\"))");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(0, QString(\"12.3\"))");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(engine, true)");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(engine, int(122))");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(engine, uint(124))");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(engine, 123.0)");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(engine, 6.37e-8)");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(engine, 0x10000)");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(engine, 0x10001)");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(engine, qInf())");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(engine, \"NaN\")");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(engine, \"-Infinity\")");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(engine, \"ciao\")");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(engine, QString(\"0\"))");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("engine->evaluate(\"''\") <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("engine->evaluate(\"''\") <=> engine->evaluate(\"Object.prototype\")");
+ equals.insert("engine->evaluate(\"''\") <=> engine->evaluate(\"Function.prototype\")");
+ equals.insert("engine->evaluate(\"''\") <=> engine->evaluate(\"Error.prototype\")");
+ equals.insert("engine->evaluate(\"''\") <=> engine->evaluate(\"Object\")");
+ equals.insert("engine->evaluate(\"''\") <=> engine->evaluate(\"Array\")");
+ equals.insert("engine->evaluate(\"''\") <=> engine->evaluate(\"Number\")");
+ equals.insert("engine->evaluate(\"''\") <=> engine->evaluate(\"Function\")");
+ equals.insert("engine->evaluate(\"''\") <=> engine->evaluate(\"(function() { return 1; })\")");
+ equals.insert("engine->evaluate(\"''\") <=> engine->evaluate(\"(function() { return 'ciao'; })\")");
+ equals.insert("engine->evaluate(\"''\") <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
+ equals.insert("engine->evaluate(\"''\") <=> engine->evaluate(\"/foo/\")");
+ equals.insert("engine->evaluate(\"''\") <=> engine->evaluate(\"new Object()\")");
+ equals.insert("engine->evaluate(\"''\") <=> engine->evaluate(\"new Error()\")");
+ equals.insert("engine->evaluate(\"''\") <=> engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")");
+ equals.insert("engine->evaluate(\"''\") <=> engine->evaluate(\"Undefined\")");
+ equals.insert("engine->evaluate(\"''\") <=> engine->evaluate(\"Null\")");
+ equals.insert("engine->evaluate(\"''\") <=> engine->evaluate(\"True\")");
+ equals.insert("engine->evaluate(\"''\") <=> engine->evaluate(\"False\")");
+ equals.insert("engine->evaluate(\"''\") <=> engine->evaluate(\"true\")");
+ equals.insert("engine->evaluate(\"''\") <=> engine->evaluate(\"122\")");
+ equals.insert("engine->evaluate(\"''\") <=> engine->evaluate(\"124\")");
+ equals.insert("engine->evaluate(\"''\") <=> engine->evaluate(\"123.0\")");
+ equals.insert("engine->evaluate(\"''\") <=> engine->evaluate(\"6.37e-8\")");
+ equals.insert("engine->evaluate(\"''\") <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("engine->evaluate(\"''\") <=> engine->evaluate(\"0x10000\")");
+ equals.insert("engine->evaluate(\"''\") <=> engine->evaluate(\"0x10001\")");
+ equals.insert("engine->evaluate(\"''\") <=> engine->evaluate(\"Infinity\")");
+ equals.insert("engine->evaluate(\"''\") <=> engine->evaluate(\"'ciao'\")");
+ equals.insert("engine->evaluate(\"''\") <=> engine->evaluate(\"'0'\")");
+ equals.insert("engine->evaluate(\"''\") <=> engine->evaluate(\"'123'\")");
+ equals.insert("engine->evaluate(\"''\") <=> engine->evaluate(\"'12.4'\")");
+ equals.insert("engine->evaluate(\"''\") <=> engine->newObject()");
+ equals.insert("engine->evaluate(\"''\") <=> engine->newArray(10)");
+ equals.insert("engine->evaluate(\"''\") <=> engine->newQMetaObject(&QObject::staticMetaObject)");
+ equals.insert("engine->evaluate(\"''\") <=> engine->newVariant(QVariant(123))");
+ equals.insert("engine->evaluate(\"''\") <=> engine->newQObject(engine)");
+ equals.insert("engine->evaluate(\"'0'\") <=> QScriptValue(true)");
+ equals.insert("engine->evaluate(\"'0'\") <=> QScriptValue(int(122))");
+ equals.insert("engine->evaluate(\"'0'\") <=> QScriptValue(uint(124))");
+ equals.insert("engine->evaluate(\"'0'\") <=> QScriptValue(123.0)");
+ equals.insert("engine->evaluate(\"'0'\") <=> QScriptValue(6.37e-8)");
+ equals.insert("engine->evaluate(\"'0'\") <=> QScriptValue(0x43211234)");
+ equals.insert("engine->evaluate(\"'0'\") <=> QScriptValue(0x10000)");
+ equals.insert("engine->evaluate(\"'0'\") <=> QScriptValue(0x10001)");
+ equals.insert("engine->evaluate(\"'0'\") <=> QScriptValue(qInf())");
+ equals.insert("engine->evaluate(\"'0'\") <=> QScriptValue(\"NaN\")");
+ equals.insert("engine->evaluate(\"'0'\") <=> QScriptValue(\"Infinity\")");
+ equals.insert("engine->evaluate(\"'0'\") <=> QScriptValue(\"ciao\")");
+ equals.insert("engine->evaluate(\"'0'\") <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->evaluate(\"'0'\") <=> QScriptValue(QString(\"123\"))");
+ equals.insert("engine->evaluate(\"'0'\") <=> QScriptValue(QString(\"12.4\"))");
+ equals.insert("engine->evaluate(\"'0'\") <=> QScriptValue(0, true)");
+ equals.insert("engine->evaluate(\"'0'\") <=> QScriptValue(0, int(122))");
+ equals.insert("engine->evaluate(\"'0'\") <=> QScriptValue(0, uint(124))");
+ equals.insert("engine->evaluate(\"'0'\") <=> QScriptValue(0, 123.0)");
+ equals.insert("engine->evaluate(\"'0'\") <=> QScriptValue(0, 6.37e-8)");
+ equals.insert("engine->evaluate(\"'0'\") <=> QScriptValue(0, 0x43211234)");
+ equals.insert("engine->evaluate(\"'0'\") <=> QScriptValue(0, 0x10000)");
+ equals.insert("engine->evaluate(\"'0'\") <=> QScriptValue(0, 0x10001)");
+ equals.insert("engine->evaluate(\"'0'\") <=> QScriptValue(0, qInf())");
+ equals.insert("engine->evaluate(\"'0'\") <=> QScriptValue(0, \"NaN\")");
+ equals.insert("engine->evaluate(\"'0'\") <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("engine->evaluate(\"'0'\") <=> QScriptValue(0, \"ciao\")");
+ equals.insert("engine->evaluate(\"'0'\") <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->evaluate(\"'0'\") <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("engine->evaluate(\"'0'\") <=> QScriptValue(0, QString(\"12.3\"))");
+ equals.insert("engine->evaluate(\"'0'\") <=> QScriptValue(engine, true)");
+ equals.insert("engine->evaluate(\"'0'\") <=> QScriptValue(engine, int(122))");
+ equals.insert("engine->evaluate(\"'0'\") <=> QScriptValue(engine, uint(124))");
+ equals.insert("engine->evaluate(\"'0'\") <=> QScriptValue(engine, 123.0)");
+ equals.insert("engine->evaluate(\"'0'\") <=> QScriptValue(engine, 6.37e-8)");
+ equals.insert("engine->evaluate(\"'0'\") <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("engine->evaluate(\"'0'\") <=> QScriptValue(engine, 0x10000)");
+ equals.insert("engine->evaluate(\"'0'\") <=> QScriptValue(engine, 0x10001)");
+ equals.insert("engine->evaluate(\"'0'\") <=> QScriptValue(engine, qInf())");
+ equals.insert("engine->evaluate(\"'0'\") <=> QScriptValue(engine, \"NaN\")");
+ equals.insert("engine->evaluate(\"'0'\") <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("engine->evaluate(\"'0'\") <=> QScriptValue(engine, \"ciao\")");
+ equals.insert("engine->evaluate(\"'0'\") <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->evaluate(\"'0'\") <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("engine->evaluate(\"'0'\") <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("engine->evaluate(\"'0'\") <=> engine->evaluate(\"Object.prototype\")");
+ equals.insert("engine->evaluate(\"'0'\") <=> engine->evaluate(\"Function.prototype\")");
+ equals.insert("engine->evaluate(\"'0'\") <=> engine->evaluate(\"Error.prototype\")");
+ equals.insert("engine->evaluate(\"'0'\") <=> engine->evaluate(\"Object\")");
+ equals.insert("engine->evaluate(\"'0'\") <=> engine->evaluate(\"Array\")");
+ equals.insert("engine->evaluate(\"'0'\") <=> engine->evaluate(\"Number\")");
+ equals.insert("engine->evaluate(\"'0'\") <=> engine->evaluate(\"Function\")");
+ equals.insert("engine->evaluate(\"'0'\") <=> engine->evaluate(\"(function() { return 1; })\")");
+ equals.insert("engine->evaluate(\"'0'\") <=> engine->evaluate(\"(function() { return 'ciao'; })\")");
+ equals.insert("engine->evaluate(\"'0'\") <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
+ equals.insert("engine->evaluate(\"'0'\") <=> engine->evaluate(\"new Object()\")");
+ equals.insert("engine->evaluate(\"'0'\") <=> engine->evaluate(\"new Error()\")");
+ equals.insert("engine->evaluate(\"'0'\") <=> engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")");
+ equals.insert("engine->evaluate(\"'0'\") <=> engine->evaluate(\"Undefined\")");
+ equals.insert("engine->evaluate(\"'0'\") <=> engine->evaluate(\"Null\")");
+ equals.insert("engine->evaluate(\"'0'\") <=> engine->evaluate(\"True\")");
+ equals.insert("engine->evaluate(\"'0'\") <=> engine->evaluate(\"False\")");
+ equals.insert("engine->evaluate(\"'0'\") <=> engine->evaluate(\"true\")");
+ equals.insert("engine->evaluate(\"'0'\") <=> engine->evaluate(\"122\")");
+ equals.insert("engine->evaluate(\"'0'\") <=> engine->evaluate(\"124\")");
+ equals.insert("engine->evaluate(\"'0'\") <=> engine->evaluate(\"123.0\")");
+ equals.insert("engine->evaluate(\"'0'\") <=> engine->evaluate(\"6.37e-8\")");
+ equals.insert("engine->evaluate(\"'0'\") <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("engine->evaluate(\"'0'\") <=> engine->evaluate(\"0x10000\")");
+ equals.insert("engine->evaluate(\"'0'\") <=> engine->evaluate(\"0x10001\")");
+ equals.insert("engine->evaluate(\"'0'\") <=> engine->evaluate(\"Infinity\")");
+ equals.insert("engine->evaluate(\"'0'\") <=> engine->evaluate(\"'ciao'\")");
+ equals.insert("engine->evaluate(\"'0'\") <=> engine->evaluate(\"'123'\")");
+ equals.insert("engine->evaluate(\"'0'\") <=> engine->evaluate(\"'12.4'\")");
+ equals.insert("engine->evaluate(\"'0'\") <=> engine->newObject()");
+ equals.insert("engine->evaluate(\"'0'\") <=> engine->newQMetaObject(&QObject::staticMetaObject)");
+ equals.insert("engine->evaluate(\"'0'\") <=> engine->newVariant(QVariant(123))");
+ equals.insert("engine->evaluate(\"'0'\") <=> engine->newQObject(engine)");
+ equals.insert("engine->evaluate(\"'123'\") <=> QScriptValue(uint(124))");
+ equals.insert("engine->evaluate(\"'123'\") <=> QScriptValue(0x43211234)");
+ equals.insert("engine->evaluate(\"'123'\") <=> QScriptValue(0x10000)");
+ equals.insert("engine->evaluate(\"'123'\") <=> QScriptValue(0x10001)");
+ equals.insert("engine->evaluate(\"'123'\") <=> QScriptValue(qInf())");
+ equals.insert("engine->evaluate(\"'123'\") <=> QScriptValue(\"NaN\")");
+ equals.insert("engine->evaluate(\"'123'\") <=> QScriptValue(\"Infinity\")");
+ equals.insert("engine->evaluate(\"'123'\") <=> QScriptValue(\"ciao\")");
+ equals.insert("engine->evaluate(\"'123'\") <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->evaluate(\"'123'\") <=> QScriptValue(0, uint(124))");
+ equals.insert("engine->evaluate(\"'123'\") <=> QScriptValue(0, 0x43211234)");
+ equals.insert("engine->evaluate(\"'123'\") <=> QScriptValue(0, 0x10000)");
+ equals.insert("engine->evaluate(\"'123'\") <=> QScriptValue(0, 0x10001)");
+ equals.insert("engine->evaluate(\"'123'\") <=> QScriptValue(0, qInf())");
+ equals.insert("engine->evaluate(\"'123'\") <=> QScriptValue(0, \"NaN\")");
+ equals.insert("engine->evaluate(\"'123'\") <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("engine->evaluate(\"'123'\") <=> QScriptValue(0, \"ciao\")");
+ equals.insert("engine->evaluate(\"'123'\") <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->evaluate(\"'123'\") <=> QScriptValue(engine, uint(124))");
+ equals.insert("engine->evaluate(\"'123'\") <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("engine->evaluate(\"'123'\") <=> QScriptValue(engine, 0x10000)");
+ equals.insert("engine->evaluate(\"'123'\") <=> QScriptValue(engine, 0x10001)");
+ equals.insert("engine->evaluate(\"'123'\") <=> QScriptValue(engine, qInf())");
+ equals.insert("engine->evaluate(\"'123'\") <=> QScriptValue(engine, \"NaN\")");
+ equals.insert("engine->evaluate(\"'123'\") <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("engine->evaluate(\"'123'\") <=> QScriptValue(engine, \"ciao\")");
+ equals.insert("engine->evaluate(\"'123'\") <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->evaluate(\"'123'\") <=> engine->evaluate(\"Object.prototype\")");
+ equals.insert("engine->evaluate(\"'123'\") <=> engine->evaluate(\"Function.prototype\")");
+ equals.insert("engine->evaluate(\"'123'\") <=> engine->evaluate(\"Error.prototype\")");
+ equals.insert("engine->evaluate(\"'123'\") <=> engine->evaluate(\"Object\")");
+ equals.insert("engine->evaluate(\"'123'\") <=> engine->evaluate(\"Array\")");
+ equals.insert("engine->evaluate(\"'123'\") <=> engine->evaluate(\"Number\")");
+ equals.insert("engine->evaluate(\"'123'\") <=> engine->evaluate(\"Function\")");
+ equals.insert("engine->evaluate(\"'123'\") <=> engine->evaluate(\"(function() { return 1; })\")");
+ equals.insert("engine->evaluate(\"'123'\") <=> engine->evaluate(\"(function() { return 'ciao'; })\")");
+ equals.insert("engine->evaluate(\"'123'\") <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
+ equals.insert("engine->evaluate(\"'123'\") <=> engine->evaluate(\"new Object()\")");
+ equals.insert("engine->evaluate(\"'123'\") <=> engine->evaluate(\"new Error()\")");
+ equals.insert("engine->evaluate(\"'123'\") <=> engine->evaluate(\"Undefined\")");
+ equals.insert("engine->evaluate(\"'123'\") <=> engine->evaluate(\"Null\")");
+ equals.insert("engine->evaluate(\"'123'\") <=> engine->evaluate(\"True\")");
+ equals.insert("engine->evaluate(\"'123'\") <=> engine->evaluate(\"False\")");
+ equals.insert("engine->evaluate(\"'123'\") <=> engine->evaluate(\"124\")");
+ equals.insert("engine->evaluate(\"'123'\") <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("engine->evaluate(\"'123'\") <=> engine->evaluate(\"0x10000\")");
+ equals.insert("engine->evaluate(\"'123'\") <=> engine->evaluate(\"0x10001\")");
+ equals.insert("engine->evaluate(\"'123'\") <=> engine->evaluate(\"Infinity\")");
+ equals.insert("engine->evaluate(\"'123'\") <=> engine->evaluate(\"'ciao'\")");
+ equals.insert("engine->evaluate(\"'123'\") <=> engine->newObject()");
+ equals.insert("engine->evaluate(\"'123'\") <=> engine->newQMetaObject(&QObject::staticMetaObject)");
+ equals.insert("engine->evaluate(\"'123'\") <=> engine->newQObject(engine)");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> QScriptValue(int(122))");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> QScriptValue(uint(124))");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> QScriptValue(123.0)");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> QScriptValue(0x43211234)");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> QScriptValue(0x10000)");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> QScriptValue(0x10001)");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> QScriptValue(qInf())");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> QScriptValue(\"NaN\")");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> QScriptValue(\"Infinity\")");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> QScriptValue(\"ciao\")");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> QScriptValue(QString(\"123\"))");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> QScriptValue(0, int(122))");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> QScriptValue(0, uint(124))");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> QScriptValue(0, 123.0)");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> QScriptValue(0, 0x43211234)");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> QScriptValue(0, 0x10000)");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> QScriptValue(0, 0x10001)");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> QScriptValue(0, qInf())");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> QScriptValue(0, \"NaN\")");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> QScriptValue(0, \"ciao\")");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> QScriptValue(engine, int(122))");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> QScriptValue(engine, uint(124))");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> QScriptValue(engine, 123.0)");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> QScriptValue(engine, 0x10000)");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> QScriptValue(engine, 0x10001)");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> QScriptValue(engine, qInf())");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> QScriptValue(engine, \"NaN\")");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> QScriptValue(engine, \"ciao\")");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> engine->evaluate(\"Object.prototype\")");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> engine->evaluate(\"Function.prototype\")");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> engine->evaluate(\"Error.prototype\")");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> engine->evaluate(\"Object\")");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> engine->evaluate(\"Array\")");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> engine->evaluate(\"Number\")");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> engine->evaluate(\"Function\")");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> engine->evaluate(\"(function() { return 1; })\")");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> engine->evaluate(\"(function() { return 'ciao'; })\")");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> engine->evaluate(\"new Object()\")");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> engine->evaluate(\"new Error()\")");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> engine->evaluate(\"Undefined\")");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> engine->evaluate(\"Null\")");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> engine->evaluate(\"True\")");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> engine->evaluate(\"False\")");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> engine->evaluate(\"122\")");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> engine->evaluate(\"124\")");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> engine->evaluate(\"123.0\")");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> engine->evaluate(\"0x10000\")");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> engine->evaluate(\"0x10001\")");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> engine->evaluate(\"Infinity\")");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> engine->evaluate(\"'ciao'\")");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> engine->evaluate(\"'123'\")");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> engine->newObject()");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> engine->newQMetaObject(&QObject::staticMetaObject)");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> engine->newVariant(QVariant(123))");
+ equals.insert("engine->evaluate(\"'12.4'\") <=> engine->newQObject(engine)");
equals.insert("engine->nullValue() <=> QScriptValue(true)");
equals.insert("engine->nullValue() <=> QScriptValue(int(122))");
equals.insert("engine->nullValue() <=> QScriptValue(uint(124))");
@@ -5648,6 +8805,329 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("engine->nullValue() <=> QScriptValue(engine, \"Infinity\")");
equals.insert("engine->nullValue() <=> QScriptValue(engine, QString(\"123\"))");
equals.insert("engine->nullValue() <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("engine->nullValue() <=> engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")");
+ equals.insert("engine->nullValue() <=> engine->evaluate(\"true\")");
+ equals.insert("engine->nullValue() <=> engine->evaluate(\"122\")");
+ equals.insert("engine->nullValue() <=> engine->evaluate(\"124\")");
+ equals.insert("engine->nullValue() <=> engine->evaluate(\"123.0\")");
+ equals.insert("engine->nullValue() <=> engine->evaluate(\"6.37e-8\")");
+ equals.insert("engine->nullValue() <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("engine->nullValue() <=> engine->evaluate(\"0x10000\")");
+ equals.insert("engine->nullValue() <=> engine->evaluate(\"0x10001\")");
+ equals.insert("engine->nullValue() <=> engine->evaluate(\"Infinity\")");
+ equals.insert("engine->nullValue() <=> engine->evaluate(\"'123'\")");
+ equals.insert("engine->nullValue() <=> engine->evaluate(\"'12.4'\")");
+ equals.insert("engine->nullValue() <=> engine->newVariant(QVariant(123))");
+ equals.insert("engine->newObject() <=> QScriptValue(\"ciao\")");
+ equals.insert("engine->newObject() <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->newObject() <=> QScriptValue(0, \"ciao\")");
+ equals.insert("engine->newObject() <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->newObject() <=> QScriptValue(engine, \"ciao\")");
+ equals.insert("engine->newObject() <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->newObject() <=> engine->evaluate(\"Function.prototype\")");
+ equals.insert("engine->newObject() <=> engine->evaluate(\"Object\")");
+ equals.insert("engine->newObject() <=> engine->evaluate(\"Array\")");
+ equals.insert("engine->newObject() <=> engine->evaluate(\"Number\")");
+ equals.insert("engine->newObject() <=> engine->evaluate(\"Function\")");
+ equals.insert("engine->newObject() <=> engine->evaluate(\"(function() { return 1; })\")");
+ equals.insert("engine->newObject() <=> engine->evaluate(\"(function() { return 'ciao'; })\")");
+ equals.insert("engine->newObject() <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
+ equals.insert("engine->newObject() <=> engine->evaluate(\"'ciao'\")");
+ equals.insert("engine->newObject() <=> engine->newQMetaObject(&QObject::staticMetaObject)");
+ equals.insert("engine->newArray() <=> QScriptValue(true)");
+ equals.insert("engine->newArray() <=> QScriptValue(int(122))");
+ equals.insert("engine->newArray() <=> QScriptValue(uint(124))");
+ equals.insert("engine->newArray() <=> QScriptValue(123.0)");
+ equals.insert("engine->newArray() <=> QScriptValue(6.37e-8)");
+ equals.insert("engine->newArray() <=> QScriptValue(0x43211234)");
+ equals.insert("engine->newArray() <=> QScriptValue(0x10000)");
+ equals.insert("engine->newArray() <=> QScriptValue(0x10001)");
+ equals.insert("engine->newArray() <=> QScriptValue(qInf())");
+ equals.insert("engine->newArray() <=> QScriptValue(\"NaN\")");
+ equals.insert("engine->newArray() <=> QScriptValue(\"Infinity\")");
+ equals.insert("engine->newArray() <=> QScriptValue(\"-Infinity\")");
+ equals.insert("engine->newArray() <=> QScriptValue(\"ciao\")");
+ equals.insert("engine->newArray() <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->newArray() <=> QScriptValue(QString(\"0\"))");
+ equals.insert("engine->newArray() <=> QScriptValue(QString(\"123\"))");
+ equals.insert("engine->newArray() <=> QScriptValue(QString(\"12.4\"))");
+ equals.insert("engine->newArray() <=> QScriptValue(0, true)");
+ equals.insert("engine->newArray() <=> QScriptValue(0, int(122))");
+ equals.insert("engine->newArray() <=> QScriptValue(0, uint(124))");
+ equals.insert("engine->newArray() <=> QScriptValue(0, 123.0)");
+ equals.insert("engine->newArray() <=> QScriptValue(0, 6.37e-8)");
+ equals.insert("engine->newArray() <=> QScriptValue(0, 0x43211234)");
+ equals.insert("engine->newArray() <=> QScriptValue(0, 0x10000)");
+ equals.insert("engine->newArray() <=> QScriptValue(0, 0x10001)");
+ equals.insert("engine->newArray() <=> QScriptValue(0, qInf())");
+ equals.insert("engine->newArray() <=> QScriptValue(0, \"NaN\")");
+ equals.insert("engine->newArray() <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("engine->newArray() <=> QScriptValue(0, \"-Infinity\")");
+ equals.insert("engine->newArray() <=> QScriptValue(0, \"ciao\")");
+ equals.insert("engine->newArray() <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->newArray() <=> QScriptValue(0, QString(\"0\"))");
+ equals.insert("engine->newArray() <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("engine->newArray() <=> QScriptValue(0, QString(\"12.3\"))");
+ equals.insert("engine->newArray() <=> QScriptValue(engine, true)");
+ equals.insert("engine->newArray() <=> QScriptValue(engine, int(122))");
+ equals.insert("engine->newArray() <=> QScriptValue(engine, uint(124))");
+ equals.insert("engine->newArray() <=> QScriptValue(engine, 123.0)");
+ equals.insert("engine->newArray() <=> QScriptValue(engine, 6.37e-8)");
+ equals.insert("engine->newArray() <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("engine->newArray() <=> QScriptValue(engine, 0x10000)");
+ equals.insert("engine->newArray() <=> QScriptValue(engine, 0x10001)");
+ equals.insert("engine->newArray() <=> QScriptValue(engine, qInf())");
+ equals.insert("engine->newArray() <=> QScriptValue(engine, \"NaN\")");
+ equals.insert("engine->newArray() <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("engine->newArray() <=> QScriptValue(engine, \"-Infinity\")");
+ equals.insert("engine->newArray() <=> QScriptValue(engine, \"ciao\")");
+ equals.insert("engine->newArray() <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->newArray() <=> QScriptValue(engine, QString(\"0\"))");
+ equals.insert("engine->newArray() <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("engine->newArray() <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("engine->newArray() <=> engine->evaluate(\"Object.prototype\")");
+ equals.insert("engine->newArray() <=> engine->evaluate(\"Function.prototype\")");
+ equals.insert("engine->newArray() <=> engine->evaluate(\"Error.prototype\")");
+ equals.insert("engine->newArray() <=> engine->evaluate(\"Object\")");
+ equals.insert("engine->newArray() <=> engine->evaluate(\"Array\")");
+ equals.insert("engine->newArray() <=> engine->evaluate(\"Number\")");
+ equals.insert("engine->newArray() <=> engine->evaluate(\"Function\")");
+ equals.insert("engine->newArray() <=> engine->evaluate(\"(function() { return 1; })\")");
+ equals.insert("engine->newArray() <=> engine->evaluate(\"(function() { return 'ciao'; })\")");
+ equals.insert("engine->newArray() <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
+ equals.insert("engine->newArray() <=> engine->evaluate(\"/foo/\")");
+ equals.insert("engine->newArray() <=> engine->evaluate(\"new Object()\")");
+ equals.insert("engine->newArray() <=> engine->evaluate(\"new Error()\")");
+ equals.insert("engine->newArray() <=> engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")");
+ equals.insert("engine->newArray() <=> engine->evaluate(\"Undefined\")");
+ equals.insert("engine->newArray() <=> engine->evaluate(\"Null\")");
+ equals.insert("engine->newArray() <=> engine->evaluate(\"True\")");
+ equals.insert("engine->newArray() <=> engine->evaluate(\"False\")");
+ equals.insert("engine->newArray() <=> engine->evaluate(\"true\")");
+ equals.insert("engine->newArray() <=> engine->evaluate(\"122\")");
+ equals.insert("engine->newArray() <=> engine->evaluate(\"124\")");
+ equals.insert("engine->newArray() <=> engine->evaluate(\"123.0\")");
+ equals.insert("engine->newArray() <=> engine->evaluate(\"6.37e-8\")");
+ equals.insert("engine->newArray() <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("engine->newArray() <=> engine->evaluate(\"0x10000\")");
+ equals.insert("engine->newArray() <=> engine->evaluate(\"0x10001\")");
+ equals.insert("engine->newArray() <=> engine->evaluate(\"Infinity\")");
+ equals.insert("engine->newArray() <=> engine->evaluate(\"'ciao'\")");
+ equals.insert("engine->newArray() <=> engine->evaluate(\"'0'\")");
+ equals.insert("engine->newArray() <=> engine->evaluate(\"'123'\")");
+ equals.insert("engine->newArray() <=> engine->evaluate(\"'12.4'\")");
+ equals.insert("engine->newArray() <=> engine->newObject()");
+ equals.insert("engine->newArray() <=> engine->newArray(10)");
+ equals.insert("engine->newArray() <=> engine->newQMetaObject(&QObject::staticMetaObject)");
+ equals.insert("engine->newArray() <=> engine->newVariant(QVariant(123))");
+ equals.insert("engine->newArray() <=> engine->newQObject(engine)");
+ equals.insert("engine->newArray(10) <=> QScriptValue(\"NaN\")");
+ equals.insert("engine->newArray(10) <=> QScriptValue(\"Infinity\")");
+ equals.insert("engine->newArray(10) <=> QScriptValue(\"-Infinity\")");
+ equals.insert("engine->newArray(10) <=> QScriptValue(\"ciao\")");
+ equals.insert("engine->newArray(10) <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->newArray(10) <=> QScriptValue(QString(\"0\"))");
+ equals.insert("engine->newArray(10) <=> QScriptValue(QString(\"123\"))");
+ equals.insert("engine->newArray(10) <=> QScriptValue(QString(\"12.4\"))");
+ equals.insert("engine->newArray(10) <=> QScriptValue(0, \"NaN\")");
+ equals.insert("engine->newArray(10) <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("engine->newArray(10) <=> QScriptValue(0, \"-Infinity\")");
+ equals.insert("engine->newArray(10) <=> QScriptValue(0, \"ciao\")");
+ equals.insert("engine->newArray(10) <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->newArray(10) <=> QScriptValue(0, QString(\"0\"))");
+ equals.insert("engine->newArray(10) <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("engine->newArray(10) <=> QScriptValue(0, QString(\"12.3\"))");
+ equals.insert("engine->newArray(10) <=> QScriptValue(engine, \"NaN\")");
+ equals.insert("engine->newArray(10) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("engine->newArray(10) <=> QScriptValue(engine, \"-Infinity\")");
+ equals.insert("engine->newArray(10) <=> QScriptValue(engine, \"ciao\")");
+ equals.insert("engine->newArray(10) <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->newArray(10) <=> QScriptValue(engine, QString(\"0\"))");
+ equals.insert("engine->newArray(10) <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("engine->newArray(10) <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("engine->newArray(10) <=> engine->evaluate(\"Object.prototype\")");
+ equals.insert("engine->newArray(10) <=> engine->evaluate(\"Function.prototype\")");
+ equals.insert("engine->newArray(10) <=> engine->evaluate(\"Error.prototype\")");
+ equals.insert("engine->newArray(10) <=> engine->evaluate(\"Object\")");
+ equals.insert("engine->newArray(10) <=> engine->evaluate(\"Array\")");
+ equals.insert("engine->newArray(10) <=> engine->evaluate(\"Number\")");
+ equals.insert("engine->newArray(10) <=> engine->evaluate(\"Function\")");
+ equals.insert("engine->newArray(10) <=> engine->evaluate(\"(function() { return 1; })\")");
+ equals.insert("engine->newArray(10) <=> engine->evaluate(\"(function() { return 'ciao'; })\")");
+ equals.insert("engine->newArray(10) <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
+ equals.insert("engine->newArray(10) <=> engine->evaluate(\"/foo/\")");
+ equals.insert("engine->newArray(10) <=> engine->evaluate(\"new Object()\")");
+ equals.insert("engine->newArray(10) <=> engine->evaluate(\"new Error()\")");
+ equals.insert("engine->newArray(10) <=> engine->evaluate(\"Undefined\")");
+ equals.insert("engine->newArray(10) <=> engine->evaluate(\"Null\")");
+ equals.insert("engine->newArray(10) <=> engine->evaluate(\"True\")");
+ equals.insert("engine->newArray(10) <=> engine->evaluate(\"False\")");
+ equals.insert("engine->newArray(10) <=> engine->evaluate(\"'ciao'\")");
+ equals.insert("engine->newArray(10) <=> engine->evaluate(\"'0'\")");
+ equals.insert("engine->newArray(10) <=> engine->evaluate(\"'123'\")");
+ equals.insert("engine->newArray(10) <=> engine->evaluate(\"'12.4'\")");
+ equals.insert("engine->newArray(10) <=> engine->newObject()");
+ equals.insert("engine->newArray(10) <=> engine->newQMetaObject(&QObject::staticMetaObject)");
+ equals.insert("engine->newArray(10) <=> engine->newQObject(engine)");
+ equals.insert("engine->newQMetaObject(&QObject::staticMetaObject) <=> QScriptValue(\"ciao\")");
+ equals.insert("engine->newQMetaObject(&QObject::staticMetaObject) <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->newQMetaObject(&QObject::staticMetaObject) <=> QScriptValue(0, \"ciao\")");
+ equals.insert("engine->newQMetaObject(&QObject::staticMetaObject) <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->newQMetaObject(&QObject::staticMetaObject) <=> QScriptValue(engine, \"ciao\")");
+ equals.insert("engine->newQMetaObject(&QObject::staticMetaObject) <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->newQMetaObject(&QObject::staticMetaObject) <=> engine->evaluate(\"Function.prototype\")");
+ equals.insert("engine->newQMetaObject(&QObject::staticMetaObject) <=> engine->evaluate(\"Object\")");
+ equals.insert("engine->newQMetaObject(&QObject::staticMetaObject) <=> engine->evaluate(\"Array\")");
+ equals.insert("engine->newQMetaObject(&QObject::staticMetaObject) <=> engine->evaluate(\"Number\")");
+ equals.insert("engine->newQMetaObject(&QObject::staticMetaObject) <=> engine->evaluate(\"Function\")");
+ equals.insert("engine->newQMetaObject(&QObject::staticMetaObject) <=> engine->evaluate(\"(function() { return 1; })\")");
+ equals.insert("engine->newQMetaObject(&QObject::staticMetaObject) <=> engine->evaluate(\"(function() { return 'ciao'; })\")");
+ equals.insert("engine->newQMetaObject(&QObject::staticMetaObject) <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
+ equals.insert("engine->newQMetaObject(&QObject::staticMetaObject) <=> engine->evaluate(\"'ciao'\")");
+ equals.insert("engine->newVariant(QVariant(123)) <=> QScriptValue(uint(124))");
+ equals.insert("engine->newVariant(QVariant(123)) <=> QScriptValue(0x43211234)");
+ equals.insert("engine->newVariant(QVariant(123)) <=> QScriptValue(0x10000)");
+ equals.insert("engine->newVariant(QVariant(123)) <=> QScriptValue(0x10001)");
+ equals.insert("engine->newVariant(QVariant(123)) <=> QScriptValue(qInf())");
+ equals.insert("engine->newVariant(QVariant(123)) <=> QScriptValue(\"Infinity\")");
+ equals.insert("engine->newVariant(QVariant(123)) <=> QScriptValue(0, uint(124))");
+ equals.insert("engine->newVariant(QVariant(123)) <=> QScriptValue(0, 0x43211234)");
+ equals.insert("engine->newVariant(QVariant(123)) <=> QScriptValue(0, 0x10000)");
+ equals.insert("engine->newVariant(QVariant(123)) <=> QScriptValue(0, 0x10001)");
+ equals.insert("engine->newVariant(QVariant(123)) <=> QScriptValue(0, qInf())");
+ equals.insert("engine->newVariant(QVariant(123)) <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("engine->newVariant(QVariant(123)) <=> QScriptValue(engine, uint(124))");
+ equals.insert("engine->newVariant(QVariant(123)) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("engine->newVariant(QVariant(123)) <=> QScriptValue(engine, 0x10000)");
+ equals.insert("engine->newVariant(QVariant(123)) <=> QScriptValue(engine, 0x10001)");
+ equals.insert("engine->newVariant(QVariant(123)) <=> QScriptValue(engine, qInf())");
+ equals.insert("engine->newVariant(QVariant(123)) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("engine->newVariant(QVariant(123)) <=> engine->evaluate(\"124\")");
+ equals.insert("engine->newVariant(QVariant(123)) <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("engine->newVariant(QVariant(123)) <=> engine->evaluate(\"0x10000\")");
+ equals.insert("engine->newVariant(QVariant(123)) <=> engine->evaluate(\"0x10001\")");
+ equals.insert("engine->newVariant(QVariant(123)) <=> engine->evaluate(\"Infinity\")");
+ equals.insert("engine->newVariant(QVariant(false)) <=> QScriptValue(true)");
+ equals.insert("engine->newVariant(QVariant(false)) <=> QScriptValue(int(122))");
+ equals.insert("engine->newVariant(QVariant(false)) <=> QScriptValue(uint(124))");
+ equals.insert("engine->newVariant(QVariant(false)) <=> QScriptValue(123.0)");
+ equals.insert("engine->newVariant(QVariant(false)) <=> QScriptValue(6.37e-8)");
+ equals.insert("engine->newVariant(QVariant(false)) <=> QScriptValue(0x43211234)");
+ equals.insert("engine->newVariant(QVariant(false)) <=> QScriptValue(0x10000)");
+ equals.insert("engine->newVariant(QVariant(false)) <=> QScriptValue(0x10001)");
+ equals.insert("engine->newVariant(QVariant(false)) <=> QScriptValue(qInf())");
+ equals.insert("engine->newVariant(QVariant(false)) <=> QScriptValue(\"Infinity\")");
+ equals.insert("engine->newVariant(QVariant(false)) <=> QScriptValue(QString(\"123\"))");
+ equals.insert("engine->newVariant(QVariant(false)) <=> QScriptValue(QString(\"12.4\"))");
+ equals.insert("engine->newVariant(QVariant(false)) <=> QScriptValue(0, true)");
+ equals.insert("engine->newVariant(QVariant(false)) <=> QScriptValue(0, int(122))");
+ equals.insert("engine->newVariant(QVariant(false)) <=> QScriptValue(0, uint(124))");
+ equals.insert("engine->newVariant(QVariant(false)) <=> QScriptValue(0, 123.0)");
+ equals.insert("engine->newVariant(QVariant(false)) <=> QScriptValue(0, 6.37e-8)");
+ equals.insert("engine->newVariant(QVariant(false)) <=> QScriptValue(0, 0x43211234)");
+ equals.insert("engine->newVariant(QVariant(false)) <=> QScriptValue(0, 0x10000)");
+ equals.insert("engine->newVariant(QVariant(false)) <=> QScriptValue(0, 0x10001)");
+ equals.insert("engine->newVariant(QVariant(false)) <=> QScriptValue(0, qInf())");
+ equals.insert("engine->newVariant(QVariant(false)) <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("engine->newVariant(QVariant(false)) <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("engine->newVariant(QVariant(false)) <=> QScriptValue(0, QString(\"12.3\"))");
+ equals.insert("engine->newVariant(QVariant(false)) <=> QScriptValue(engine, true)");
+ equals.insert("engine->newVariant(QVariant(false)) <=> QScriptValue(engine, int(122))");
+ equals.insert("engine->newVariant(QVariant(false)) <=> QScriptValue(engine, uint(124))");
+ equals.insert("engine->newVariant(QVariant(false)) <=> QScriptValue(engine, 123.0)");
+ equals.insert("engine->newVariant(QVariant(false)) <=> QScriptValue(engine, 6.37e-8)");
+ equals.insert("engine->newVariant(QVariant(false)) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("engine->newVariant(QVariant(false)) <=> QScriptValue(engine, 0x10000)");
+ equals.insert("engine->newVariant(QVariant(false)) <=> QScriptValue(engine, 0x10001)");
+ equals.insert("engine->newVariant(QVariant(false)) <=> QScriptValue(engine, qInf())");
+ equals.insert("engine->newVariant(QVariant(false)) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("engine->newVariant(QVariant(false)) <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("engine->newVariant(QVariant(false)) <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("engine->newVariant(QVariant(false)) <=> engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")");
+ equals.insert("engine->newVariant(QVariant(false)) <=> engine->evaluate(\"true\")");
+ equals.insert("engine->newVariant(QVariant(false)) <=> engine->evaluate(\"122\")");
+ equals.insert("engine->newVariant(QVariant(false)) <=> engine->evaluate(\"124\")");
+ equals.insert("engine->newVariant(QVariant(false)) <=> engine->evaluate(\"123.0\")");
+ equals.insert("engine->newVariant(QVariant(false)) <=> engine->evaluate(\"6.37e-8\")");
+ equals.insert("engine->newVariant(QVariant(false)) <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("engine->newVariant(QVariant(false)) <=> engine->evaluate(\"0x10000\")");
+ equals.insert("engine->newVariant(QVariant(false)) <=> engine->evaluate(\"0x10001\")");
+ equals.insert("engine->newVariant(QVariant(false)) <=> engine->evaluate(\"Infinity\")");
+ equals.insert("engine->newVariant(QVariant(false)) <=> engine->evaluate(\"'123'\")");
+ equals.insert("engine->newVariant(QVariant(false)) <=> engine->evaluate(\"'12.4'\")");
+ equals.insert("engine->newVariant(QVariant(false)) <=> engine->newVariant(QVariant(123))");
+ equals.insert("engine->newQObject(0) <=> QScriptValue(true)");
+ equals.insert("engine->newQObject(0) <=> QScriptValue(int(122))");
+ equals.insert("engine->newQObject(0) <=> QScriptValue(uint(124))");
+ equals.insert("engine->newQObject(0) <=> QScriptValue(123.0)");
+ equals.insert("engine->newQObject(0) <=> QScriptValue(6.37e-8)");
+ equals.insert("engine->newQObject(0) <=> QScriptValue(0x43211234)");
+ equals.insert("engine->newQObject(0) <=> QScriptValue(0x10000)");
+ equals.insert("engine->newQObject(0) <=> QScriptValue(0x10001)");
+ equals.insert("engine->newQObject(0) <=> QScriptValue(qInf())");
+ equals.insert("engine->newQObject(0) <=> QScriptValue(\"Infinity\")");
+ equals.insert("engine->newQObject(0) <=> QScriptValue(QString(\"123\"))");
+ equals.insert("engine->newQObject(0) <=> QScriptValue(QString(\"12.4\"))");
+ equals.insert("engine->newQObject(0) <=> QScriptValue(0, true)");
+ equals.insert("engine->newQObject(0) <=> QScriptValue(0, int(122))");
+ equals.insert("engine->newQObject(0) <=> QScriptValue(0, uint(124))");
+ equals.insert("engine->newQObject(0) <=> QScriptValue(0, 123.0)");
+ equals.insert("engine->newQObject(0) <=> QScriptValue(0, 6.37e-8)");
+ equals.insert("engine->newQObject(0) <=> QScriptValue(0, 0x43211234)");
+ equals.insert("engine->newQObject(0) <=> QScriptValue(0, 0x10000)");
+ equals.insert("engine->newQObject(0) <=> QScriptValue(0, 0x10001)");
+ equals.insert("engine->newQObject(0) <=> QScriptValue(0, qInf())");
+ equals.insert("engine->newQObject(0) <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("engine->newQObject(0) <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("engine->newQObject(0) <=> QScriptValue(0, QString(\"12.3\"))");
+ equals.insert("engine->newQObject(0) <=> QScriptValue(engine, true)");
+ equals.insert("engine->newQObject(0) <=> QScriptValue(engine, int(122))");
+ equals.insert("engine->newQObject(0) <=> QScriptValue(engine, uint(124))");
+ equals.insert("engine->newQObject(0) <=> QScriptValue(engine, 123.0)");
+ equals.insert("engine->newQObject(0) <=> QScriptValue(engine, 6.37e-8)");
+ equals.insert("engine->newQObject(0) <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("engine->newQObject(0) <=> QScriptValue(engine, 0x10000)");
+ equals.insert("engine->newQObject(0) <=> QScriptValue(engine, 0x10001)");
+ equals.insert("engine->newQObject(0) <=> QScriptValue(engine, qInf())");
+ equals.insert("engine->newQObject(0) <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("engine->newQObject(0) <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("engine->newQObject(0) <=> QScriptValue(engine, QString(\"1.23\"))");
+ equals.insert("engine->newQObject(0) <=> engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")");
+ equals.insert("engine->newQObject(0) <=> engine->evaluate(\"true\")");
+ equals.insert("engine->newQObject(0) <=> engine->evaluate(\"122\")");
+ equals.insert("engine->newQObject(0) <=> engine->evaluate(\"124\")");
+ equals.insert("engine->newQObject(0) <=> engine->evaluate(\"123.0\")");
+ equals.insert("engine->newQObject(0) <=> engine->evaluate(\"6.37e-8\")");
+ equals.insert("engine->newQObject(0) <=> engine->evaluate(\"0x43211234\")");
+ equals.insert("engine->newQObject(0) <=> engine->evaluate(\"0x10000\")");
+ equals.insert("engine->newQObject(0) <=> engine->evaluate(\"0x10001\")");
+ equals.insert("engine->newQObject(0) <=> engine->evaluate(\"Infinity\")");
+ equals.insert("engine->newQObject(0) <=> engine->evaluate(\"'123'\")");
+ equals.insert("engine->newQObject(0) <=> engine->evaluate(\"'12.4'\")");
+ equals.insert("engine->newQObject(0) <=> engine->newVariant(QVariant(123))");
+ equals.insert("engine->newQObject(engine) <=> QScriptValue(\"ciao\")");
+ equals.insert("engine->newQObject(engine) <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->newQObject(engine) <=> QScriptValue(0, \"ciao\")");
+ equals.insert("engine->newQObject(engine) <=> QScriptValue(0, QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->newQObject(engine) <=> QScriptValue(engine, \"ciao\")");
+ equals.insert("engine->newQObject(engine) <=> QScriptValue(engine, QString::fromLatin1(\"ciao\"))");
+ equals.insert("engine->newQObject(engine) <=> engine->evaluate(\"Object.prototype\")");
+ equals.insert("engine->newQObject(engine) <=> engine->evaluate(\"Function.prototype\")");
+ equals.insert("engine->newQObject(engine) <=> engine->evaluate(\"Object\")");
+ equals.insert("engine->newQObject(engine) <=> engine->evaluate(\"Array\")");
+ equals.insert("engine->newQObject(engine) <=> engine->evaluate(\"Number\")");
+ equals.insert("engine->newQObject(engine) <=> engine->evaluate(\"Function\")");
+ equals.insert("engine->newQObject(engine) <=> engine->evaluate(\"(function() { return 1; })\")");
+ equals.insert("engine->newQObject(engine) <=> engine->evaluate(\"(function() { return 'ciao'; })\")");
+ equals.insert("engine->newQObject(engine) <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
+ equals.insert("engine->newQObject(engine) <=> engine->evaluate(\"new Object()\")");
+ equals.insert("engine->newQObject(engine) <=> engine->evaluate(\"Undefined\")");
+ equals.insert("engine->newQObject(engine) <=> engine->evaluate(\"Null\")");
+ equals.insert("engine->newQObject(engine) <=> engine->evaluate(\"True\")");
+ equals.insert("engine->newQObject(engine) <=> engine->evaluate(\"False\")");
+ equals.insert("engine->newQObject(engine) <=> engine->evaluate(\"'ciao'\")");
+ equals.insert("engine->newQObject(engine) <=> engine->newObject()");
+ equals.insert("engine->newQObject(engine) <=> engine->newQMetaObject(&QObject::staticMetaObject)");
}
QHash<QString, QScriptValue>::const_iterator it;
for (it = m_values.constBegin(); it != m_values.constEnd(); ++it) {
@@ -5702,6 +9182,21 @@ void tst_QScriptValue::instanceOf_makeData(const char *expr)
equals.insert("engine->evaluate(\"new Array()\") <=> engine->evaluate(\"Object\")");
equals.insert("engine->evaluate(\"new Array()\") <=> engine->evaluate(\"Array\")");
equals.insert("engine->evaluate(\"new Error()\") <=> engine->evaluate(\"Object\")");
+ equals.insert("engine->evaluate(\"Undefined\") <=> engine->evaluate(\"Object\")");
+ equals.insert("engine->evaluate(\"Null\") <=> engine->evaluate(\"Object\")");
+ equals.insert("engine->evaluate(\"True\") <=> engine->evaluate(\"Object\")");
+ equals.insert("engine->evaluate(\"False\") <=> engine->evaluate(\"Object\")");
+ equals.insert("engine->newObject() <=> engine->evaluate(\"Object\")");
+ equals.insert("engine->newArray() <=> engine->evaluate(\"Object\")");
+ equals.insert("engine->newArray() <=> engine->evaluate(\"Array\")");
+ equals.insert("engine->newArray(10) <=> engine->evaluate(\"Object\")");
+ equals.insert("engine->newArray(10) <=> engine->evaluate(\"Array\")");
+ equals.insert("engine->newDate(QDateTime()) <=> engine->evaluate(\"Object\")");
+ equals.insert("engine->newQMetaObject(&QObject::staticMetaObject) <=> engine->evaluate(\"Object\")");
+ equals.insert("engine->newVariant(QVariant()) <=> engine->evaluate(\"Object\")");
+ equals.insert("engine->newVariant(QVariant(123)) <=> engine->evaluate(\"Object\")");
+ equals.insert("engine->newVariant(QVariant(false)) <=> engine->evaluate(\"Object\")");
+ equals.insert("engine->newQObject(engine) <=> engine->evaluate(\"Object\")");
}
QHash<QString, QScriptValue>::const_iterator it;
for (it = m_values.constBegin(); it != m_values.constEnd(); ++it) {
@@ -5833,8 +9328,45 @@ void tst_QScriptValue::qscriptvalue_castQString_makeData(const char* expr)
value.insert("engine->evaluate(\"new Object()\")", "[object Object]");
value.insert("engine->evaluate(\"new Array()\")", "");
value.insert("engine->evaluate(\"new Error()\")", "Error: Unknown error");
+ value.insert("engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")", "22");
+ value.insert("engine->evaluate(\"Undefined\")", "ReferenceError: Can't find variable: Undefined");
+ value.insert("engine->evaluate(\"Null\")", "ReferenceError: Can't find variable: Null");
+ value.insert("engine->evaluate(\"True\")", "ReferenceError: Can't find variable: True");
+ value.insert("engine->evaluate(\"False\")", "ReferenceError: Can't find variable: False");
+ value.insert("engine->evaluate(\"undefined\")", "");
+ value.insert("engine->evaluate(\"null\")", "");
+ value.insert("engine->evaluate(\"true\")", "true");
+ value.insert("engine->evaluate(\"false\")", "false");
+ value.insert("engine->evaluate(\"122\")", "122");
+ value.insert("engine->evaluate(\"124\")", "124");
+ value.insert("engine->evaluate(\"0\")", "0");
+ value.insert("engine->evaluate(\"0.0\")", "0");
+ value.insert("engine->evaluate(\"123.0\")", "123");
+ value.insert("engine->evaluate(\"6.37e-8\")", "6.37e-8");
+ value.insert("engine->evaluate(\"-6.37e-8\")", "-6.37e-8");
+ value.insert("engine->evaluate(\"0x43211234\")", "1126240820");
+ value.insert("engine->evaluate(\"0x10000\")", "65536");
+ value.insert("engine->evaluate(\"0x10001\")", "65537");
+ value.insert("engine->evaluate(\"NaN\")", "NaN");
+ value.insert("engine->evaluate(\"Infinity\")", "Infinity");
+ value.insert("engine->evaluate(\"-Infinity\")", "-Infinity");
+ value.insert("engine->evaluate(\"'ciao'\")", "ciao");
+ value.insert("engine->evaluate(\"''\")", "");
+ value.insert("engine->evaluate(\"'0'\")", "0");
+ value.insert("engine->evaluate(\"'123'\")", "123");
+ value.insert("engine->evaluate(\"'12.4'\")", "12.4");
value.insert("engine->nullValue()", "");
value.insert("engine->undefinedValue()", "");
+ value.insert("engine->newObject()", "[object Object]");
+ value.insert("engine->newArray()", "");
+ value.insert("engine->newArray(10)", ",,,,,,,,,");
+ value.insert("engine->newDate(QDateTime())", "Invalid Date");
+ value.insert("engine->newQMetaObject(&QObject::staticMetaObject)", "[object QMetaObject]");
+ value.insert("engine->newVariant(QVariant())", "undefined");
+ value.insert("engine->newVariant(QVariant(123))", "123");
+ value.insert("engine->newVariant(QVariant(false))", "false");
+ value.insert("engine->newQObject(0)", "");
+ value.insert("engine->newQObject(engine)", "QScriptEngine(name = \"\")");
}
newRow(expr) << value.value(expr);
}
@@ -5843,6 +9375,7 @@ void tst_QScriptValue::qscriptvalue_castQString_test(const char*, const QScriptV
{
QFETCH(QString, expected);
QCOMPARE(qscriptvalue_cast<QString>(value), expected);
+ QCOMPARE(qscriptvalue_cast<QString>(value), expected);
}
DEFINE_TEST_FUNCTION(qscriptvalue_castQString)
@@ -5961,8 +9494,45 @@ void tst_QScriptValue::qscriptvalue_castqsreal_makeData(const char* expr)
value.insert("engine->evaluate(\"new Object()\")", qQNaN());
value.insert("engine->evaluate(\"new Array()\")", 0);
value.insert("engine->evaluate(\"new Error()\")", qQNaN());
+ value.insert("engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")", 22);
+ value.insert("engine->evaluate(\"Undefined\")", qQNaN());
+ value.insert("engine->evaluate(\"Null\")", qQNaN());
+ value.insert("engine->evaluate(\"True\")", qQNaN());
+ value.insert("engine->evaluate(\"False\")", qQNaN());
+ value.insert("engine->evaluate(\"undefined\")", qQNaN());
+ value.insert("engine->evaluate(\"null\")", 0);
+ value.insert("engine->evaluate(\"true\")", 1);
+ value.insert("engine->evaluate(\"false\")", 0);
+ value.insert("engine->evaluate(\"122\")", 122);
+ value.insert("engine->evaluate(\"124\")", 124);
+ value.insert("engine->evaluate(\"0\")", 0);
+ value.insert("engine->evaluate(\"0.0\")", 0);
+ value.insert("engine->evaluate(\"123.0\")", 123);
+ value.insert("engine->evaluate(\"6.37e-8\")", 6.369999999999999e-08);
+ value.insert("engine->evaluate(\"-6.37e-8\")", -6.369999999999999e-08);
+ value.insert("engine->evaluate(\"0x43211234\")", 1126240820);
+ value.insert("engine->evaluate(\"0x10000\")", 65536);
+ value.insert("engine->evaluate(\"0x10001\")", 65537);
+ value.insert("engine->evaluate(\"NaN\")", qQNaN());
+ value.insert("engine->evaluate(\"Infinity\")", qInf());
+ value.insert("engine->evaluate(\"-Infinity\")", qInf());
+ value.insert("engine->evaluate(\"'ciao'\")", qQNaN());
+ value.insert("engine->evaluate(\"''\")", 0);
+ value.insert("engine->evaluate(\"'0'\")", 0);
+ value.insert("engine->evaluate(\"'123'\")", 123);
+ value.insert("engine->evaluate(\"'12.4'\")", 12.4);
value.insert("engine->nullValue()", 0);
value.insert("engine->undefinedValue()", qQNaN());
+ value.insert("engine->newObject()", qQNaN());
+ value.insert("engine->newArray()", 0);
+ value.insert("engine->newArray(10)", qQNaN());
+ value.insert("engine->newDate(QDateTime())", qQNaN());
+ value.insert("engine->newQMetaObject(&QObject::staticMetaObject)", qQNaN());
+ value.insert("engine->newVariant(QVariant())", qQNaN());
+ value.insert("engine->newVariant(QVariant(123))", 123);
+ value.insert("engine->newVariant(QVariant(false))", 0);
+ value.insert("engine->newQObject(0)", 0);
+ value.insert("engine->newQObject(engine)", qQNaN());
}
newRow(expr) << value.value(expr);
}
@@ -5972,13 +9542,16 @@ void tst_QScriptValue::qscriptvalue_castqsreal_test(const char*, const QScriptVa
QFETCH(qsreal, expected);
if (qIsNaN(expected)) {
QVERIFY(qIsNaN(qscriptvalue_cast<qsreal>(value)));
+ QVERIFY(qIsNaN(qscriptvalue_cast<qsreal>(value)));
return;
}
if (qIsInf(expected)) {
QVERIFY(qIsInf(qscriptvalue_cast<qsreal>(value)));
+ QVERIFY(qIsInf(qscriptvalue_cast<qsreal>(value)));
return;
}
QCOMPARE(qscriptvalue_cast<qsreal>(value), expected);
+ QCOMPARE(qscriptvalue_cast<qsreal>(value), expected);
}
DEFINE_TEST_FUNCTION(qscriptvalue_castqsreal)
@@ -6097,8 +9670,45 @@ void tst_QScriptValue::qscriptvalue_castbool_makeData(const char* expr)
value.insert("engine->evaluate(\"new Object()\")", true);
value.insert("engine->evaluate(\"new Array()\")", true);
value.insert("engine->evaluate(\"new Error()\")", true);
+ value.insert("engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")", true);
+ value.insert("engine->evaluate(\"Undefined\")", true);
+ value.insert("engine->evaluate(\"Null\")", true);
+ value.insert("engine->evaluate(\"True\")", true);
+ value.insert("engine->evaluate(\"False\")", true);
+ value.insert("engine->evaluate(\"undefined\")", false);
+ value.insert("engine->evaluate(\"null\")", false);
+ value.insert("engine->evaluate(\"true\")", true);
+ value.insert("engine->evaluate(\"false\")", false);
+ value.insert("engine->evaluate(\"122\")", true);
+ value.insert("engine->evaluate(\"124\")", true);
+ value.insert("engine->evaluate(\"0\")", false);
+ value.insert("engine->evaluate(\"0.0\")", false);
+ value.insert("engine->evaluate(\"123.0\")", true);
+ value.insert("engine->evaluate(\"6.37e-8\")", true);
+ value.insert("engine->evaluate(\"-6.37e-8\")", true);
+ value.insert("engine->evaluate(\"0x43211234\")", true);
+ value.insert("engine->evaluate(\"0x10000\")", true);
+ value.insert("engine->evaluate(\"0x10001\")", true);
+ value.insert("engine->evaluate(\"NaN\")", false);
+ value.insert("engine->evaluate(\"Infinity\")", true);
+ value.insert("engine->evaluate(\"-Infinity\")", true);
+ value.insert("engine->evaluate(\"'ciao'\")", true);
+ value.insert("engine->evaluate(\"''\")", false);
+ value.insert("engine->evaluate(\"'0'\")", true);
+ value.insert("engine->evaluate(\"'123'\")", true);
+ value.insert("engine->evaluate(\"'12.4'\")", true);
value.insert("engine->nullValue()", false);
value.insert("engine->undefinedValue()", false);
+ value.insert("engine->newObject()", true);
+ value.insert("engine->newArray()", true);
+ value.insert("engine->newArray(10)", true);
+ value.insert("engine->newDate(QDateTime())", true);
+ value.insert("engine->newQMetaObject(&QObject::staticMetaObject)", true);
+ value.insert("engine->newVariant(QVariant())", true);
+ value.insert("engine->newVariant(QVariant(123))", true);
+ value.insert("engine->newVariant(QVariant(false))", true);
+ value.insert("engine->newQObject(0)", false);
+ value.insert("engine->newQObject(engine)", true);
}
newRow(expr) << value.value(expr);
}
@@ -6107,6 +9717,7 @@ void tst_QScriptValue::qscriptvalue_castbool_test(const char*, const QScriptValu
{
QFETCH(bool, expected);
QCOMPARE(qscriptvalue_cast<bool>(value), expected);
+ QCOMPARE(qscriptvalue_cast<bool>(value), expected);
}
DEFINE_TEST_FUNCTION(qscriptvalue_castbool)
@@ -6225,8 +9836,45 @@ void tst_QScriptValue::qscriptvalue_castqint32_makeData(const char* expr)
value.insert("engine->evaluate(\"new Object()\")", 0);
value.insert("engine->evaluate(\"new Array()\")", 0);
value.insert("engine->evaluate(\"new Error()\")", 0);
+ value.insert("engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")", 22);
+ value.insert("engine->evaluate(\"Undefined\")", 0);
+ value.insert("engine->evaluate(\"Null\")", 0);
+ value.insert("engine->evaluate(\"True\")", 0);
+ value.insert("engine->evaluate(\"False\")", 0);
+ value.insert("engine->evaluate(\"undefined\")", 0);
+ value.insert("engine->evaluate(\"null\")", 0);
+ value.insert("engine->evaluate(\"true\")", 1);
+ value.insert("engine->evaluate(\"false\")", 0);
+ value.insert("engine->evaluate(\"122\")", 122);
+ value.insert("engine->evaluate(\"124\")", 124);
+ value.insert("engine->evaluate(\"0\")", 0);
+ value.insert("engine->evaluate(\"0.0\")", 0);
+ value.insert("engine->evaluate(\"123.0\")", 123);
+ value.insert("engine->evaluate(\"6.37e-8\")", 0);
+ value.insert("engine->evaluate(\"-6.37e-8\")", 0);
+ value.insert("engine->evaluate(\"0x43211234\")", 1126240820);
+ value.insert("engine->evaluate(\"0x10000\")", 65536);
+ value.insert("engine->evaluate(\"0x10001\")", 65537);
+ value.insert("engine->evaluate(\"NaN\")", 0);
+ value.insert("engine->evaluate(\"Infinity\")", 0);
+ value.insert("engine->evaluate(\"-Infinity\")", 0);
+ value.insert("engine->evaluate(\"'ciao'\")", 0);
+ value.insert("engine->evaluate(\"''\")", 0);
+ value.insert("engine->evaluate(\"'0'\")", 0);
+ value.insert("engine->evaluate(\"'123'\")", 123);
+ value.insert("engine->evaluate(\"'12.4'\")", 12);
value.insert("engine->nullValue()", 0);
value.insert("engine->undefinedValue()", 0);
+ value.insert("engine->newObject()", 0);
+ value.insert("engine->newArray()", 0);
+ value.insert("engine->newArray(10)", 0);
+ value.insert("engine->newDate(QDateTime())", 0);
+ value.insert("engine->newQMetaObject(&QObject::staticMetaObject)", 0);
+ value.insert("engine->newVariant(QVariant())", 0);
+ value.insert("engine->newVariant(QVariant(123))", 123);
+ value.insert("engine->newVariant(QVariant(false))", 0);
+ value.insert("engine->newQObject(0)", 0);
+ value.insert("engine->newQObject(engine)", 0);
}
newRow(expr) << value.value(expr);
}
@@ -6235,6 +9883,7 @@ void tst_QScriptValue::qscriptvalue_castqint32_test(const char*, const QScriptVa
{
QFETCH(qint32, expected);
QCOMPARE(qscriptvalue_cast<qint32>(value), expected);
+ QCOMPARE(qscriptvalue_cast<qint32>(value), expected);
}
DEFINE_TEST_FUNCTION(qscriptvalue_castqint32)
@@ -6353,8 +10002,45 @@ void tst_QScriptValue::qscriptvalue_castquint32_makeData(const char* expr)
value.insert("engine->evaluate(\"new Object()\")", 0);
value.insert("engine->evaluate(\"new Array()\")", 0);
value.insert("engine->evaluate(\"new Error()\")", 0);
+ value.insert("engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")", 22);
+ value.insert("engine->evaluate(\"Undefined\")", 0);
+ value.insert("engine->evaluate(\"Null\")", 0);
+ value.insert("engine->evaluate(\"True\")", 0);
+ value.insert("engine->evaluate(\"False\")", 0);
+ value.insert("engine->evaluate(\"undefined\")", 0);
+ value.insert("engine->evaluate(\"null\")", 0);
+ value.insert("engine->evaluate(\"true\")", 1);
+ value.insert("engine->evaluate(\"false\")", 0);
+ value.insert("engine->evaluate(\"122\")", 122);
+ value.insert("engine->evaluate(\"124\")", 124);
+ value.insert("engine->evaluate(\"0\")", 0);
+ value.insert("engine->evaluate(\"0.0\")", 0);
+ value.insert("engine->evaluate(\"123.0\")", 123);
+ value.insert("engine->evaluate(\"6.37e-8\")", 0);
+ value.insert("engine->evaluate(\"-6.37e-8\")", 0);
+ value.insert("engine->evaluate(\"0x43211234\")", 1126240820);
+ value.insert("engine->evaluate(\"0x10000\")", 65536);
+ value.insert("engine->evaluate(\"0x10001\")", 65537);
+ value.insert("engine->evaluate(\"NaN\")", 0);
+ value.insert("engine->evaluate(\"Infinity\")", 0);
+ value.insert("engine->evaluate(\"-Infinity\")", 0);
+ value.insert("engine->evaluate(\"'ciao'\")", 0);
+ value.insert("engine->evaluate(\"''\")", 0);
+ value.insert("engine->evaluate(\"'0'\")", 0);
+ value.insert("engine->evaluate(\"'123'\")", 123);
+ value.insert("engine->evaluate(\"'12.4'\")", 12);
value.insert("engine->nullValue()", 0);
value.insert("engine->undefinedValue()", 0);
+ value.insert("engine->newObject()", 0);
+ value.insert("engine->newArray()", 0);
+ value.insert("engine->newArray(10)", 0);
+ value.insert("engine->newDate(QDateTime())", 0);
+ value.insert("engine->newQMetaObject(&QObject::staticMetaObject)", 0);
+ value.insert("engine->newVariant(QVariant())", 0);
+ value.insert("engine->newVariant(QVariant(123))", 123);
+ value.insert("engine->newVariant(QVariant(false))", 0);
+ value.insert("engine->newQObject(0)", 0);
+ value.insert("engine->newQObject(engine)", 0);
}
newRow(expr) << value.value(expr);
}
@@ -6363,6 +10049,7 @@ void tst_QScriptValue::qscriptvalue_castquint32_test(const char*, const QScriptV
{
QFETCH(quint32, expected);
QCOMPARE(qscriptvalue_cast<quint32>(value), expected);
+ QCOMPARE(qscriptvalue_cast<quint32>(value), expected);
}
DEFINE_TEST_FUNCTION(qscriptvalue_castquint32)
@@ -6481,8 +10168,45 @@ void tst_QScriptValue::qscriptvalue_castquint16_makeData(const char* expr)
value.insert("engine->evaluate(\"new Object()\")", 0);
value.insert("engine->evaluate(\"new Array()\")", 0);
value.insert("engine->evaluate(\"new Error()\")", 0);
+ value.insert("engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")", 22);
+ value.insert("engine->evaluate(\"Undefined\")", 0);
+ value.insert("engine->evaluate(\"Null\")", 0);
+ value.insert("engine->evaluate(\"True\")", 0);
+ value.insert("engine->evaluate(\"False\")", 0);
+ value.insert("engine->evaluate(\"undefined\")", 0);
+ value.insert("engine->evaluate(\"null\")", 0);
+ value.insert("engine->evaluate(\"true\")", 1);
+ value.insert("engine->evaluate(\"false\")", 0);
+ value.insert("engine->evaluate(\"122\")", 122);
+ value.insert("engine->evaluate(\"124\")", 124);
+ value.insert("engine->evaluate(\"0\")", 0);
+ value.insert("engine->evaluate(\"0.0\")", 0);
+ value.insert("engine->evaluate(\"123.0\")", 123);
+ value.insert("engine->evaluate(\"6.37e-8\")", 0);
+ value.insert("engine->evaluate(\"-6.37e-8\")", 0);
+ value.insert("engine->evaluate(\"0x43211234\")", 4660);
+ value.insert("engine->evaluate(\"0x10000\")", 0);
+ value.insert("engine->evaluate(\"0x10001\")", 1);
+ value.insert("engine->evaluate(\"NaN\")", 0);
+ value.insert("engine->evaluate(\"Infinity\")", 0);
+ value.insert("engine->evaluate(\"-Infinity\")", 0);
+ value.insert("engine->evaluate(\"'ciao'\")", 0);
+ value.insert("engine->evaluate(\"''\")", 0);
+ value.insert("engine->evaluate(\"'0'\")", 0);
+ value.insert("engine->evaluate(\"'123'\")", 123);
+ value.insert("engine->evaluate(\"'12.4'\")", 12);
value.insert("engine->nullValue()", 0);
value.insert("engine->undefinedValue()", 0);
+ value.insert("engine->newObject()", 0);
+ value.insert("engine->newArray()", 0);
+ value.insert("engine->newArray(10)", 0);
+ value.insert("engine->newDate(QDateTime())", 0);
+ value.insert("engine->newQMetaObject(&QObject::staticMetaObject)", 0);
+ value.insert("engine->newVariant(QVariant())", 0);
+ value.insert("engine->newVariant(QVariant(123))", 123);
+ value.insert("engine->newVariant(QVariant(false))", 0);
+ value.insert("engine->newQObject(0)", 0);
+ value.insert("engine->newQObject(engine)", 0);
}
newRow(expr) << value.value(expr);
}
@@ -6491,6 +10215,7 @@ void tst_QScriptValue::qscriptvalue_castquint16_test(const char*, const QScriptV
{
QFETCH(quint16, expected);
QCOMPARE(qscriptvalue_cast<quint16>(value), expected);
+ QCOMPARE(qscriptvalue_cast<quint16>(value), expected);
}
DEFINE_TEST_FUNCTION(qscriptvalue_castquint16)
diff --git a/tests/auto/qstring/tst_qstring.cpp b/tests/auto/qstring/tst_qstring.cpp
index 9c9524a..dc37c42 100644
--- a/tests/auto/qstring/tst_qstring.cpp
+++ b/tests/auto/qstring/tst_qstring.cpp
@@ -165,6 +165,10 @@ private slots:
void fromLocal8Bit();
void local8Bit_data();
void local8Bit();
+ void fromLatin1Roundtrip_data();
+ void fromLatin1Roundtrip();
+ void toLatin1Roundtrip_data();
+ void toLatin1Roundtrip();
void fromLatin1();
void fromAscii();
void arg();
@@ -3224,6 +3228,109 @@ void tst_QString::local8Bit()
QCOMPARE(local8Bit.toLocal8Bit(), QByteArray(result));
}
+void tst_QString::fromLatin1Roundtrip_data()
+{
+ QTest::addColumn<QByteArray>("latin1");
+ QTest::addColumn<QString>("unicode");
+
+ QTest::newRow("null") << QByteArray() << QString();
+ QTest::newRow("empty") << QByteArray("") << "";
+
+ static const ushort unicode1[] = { 'H', 'e', 'l', 'l', 'o', 1, '\r', '\n', 0x7f };
+ QTest::newRow("ascii-only") << QByteArray("Hello") << QString::fromUtf16(unicode1, 5);
+ QTest::newRow("ascii+control") << QByteArray("Hello\1\r\n\x7f") << QString::fromUtf16(unicode1, 9);
+
+ static const ushort unicode3[] = { 'a', 0, 'z' };
+ QTest::newRow("ascii+nul") << QByteArray("a\0z", 3) << QString::fromUtf16(unicode3, 3);
+
+ static const ushort unicode4[] = { 0x80, 0xc0, 0xff };
+ QTest::newRow("non-ascii") << QByteArray("\x80\xc0\xff") << QString::fromUtf16(unicode4, 3);
+}
+
+void tst_QString::fromLatin1Roundtrip()
+{
+ QFETCH(QByteArray, latin1);
+ QFETCH(QString, unicode);
+
+ // QtTest safety check:
+ Q_ASSERT(latin1.isNull() == unicode.isNull());
+ Q_ASSERT(latin1.isEmpty() == unicode.isEmpty());
+ Q_ASSERT(latin1.length() == unicode.length());
+
+ if (!latin1.isEmpty())
+ while (latin1.length() < 128) {
+ latin1 += latin1;
+ unicode += unicode;
+ }
+
+ // fromLatin1
+ QCOMPARE(QString::fromLatin1(latin1, latin1.length()).length(), unicode.length());
+ QCOMPARE(QString::fromLatin1(latin1, latin1.length()), unicode);
+
+ // and back:
+ QCOMPARE(unicode.toLatin1().length(), latin1.length());
+ QCOMPARE(unicode.toLatin1(), latin1);
+}
+
+void tst_QString::toLatin1Roundtrip_data()
+{
+ QTest::addColumn<QByteArray>("latin1");
+ QTest::addColumn<QString>("unicodesrc");
+ QTest::addColumn<QString>("unicodedst");
+
+ QTest::newRow("null") << QByteArray() << QString() << QString();
+ QTest::newRow("empty") << QByteArray("") << "" << "";
+
+ static const ushort unicode1[] = { 'H', 'e', 'l', 'l', 'o', 1, '\r', '\n', 0x7f };
+ QTest::newRow("ascii-only") << QByteArray("Hello") << QString::fromUtf16(unicode1, 5) << QString::fromUtf16(unicode1, 5);
+ QTest::newRow("ascii+control") << QByteArray("Hello\1\r\n\x7f") << QString::fromUtf16(unicode1, 9) << QString::fromUtf16(unicode1, 9);
+
+ static const ushort unicode3[] = { 'a', 0, 'z' };
+ QTest::newRow("ascii+nul") << QByteArray("a\0z", 3) << QString::fromUtf16(unicode3, 3) << QString::fromUtf16(unicode3, 3);
+
+ static const ushort unicode4[] = { 0x80, 0xc0, 0xff };
+ QTest::newRow("non-ascii") << QByteArray("\x80\xc0\xff") << QString::fromUtf16(unicode4, 3) << QString::fromUtf16(unicode4, 3);
+
+ static const ushort unicodeq[] = { '?', '?', '?', '?', '?' };
+ const QString questionmarks = QString::fromUtf16(unicodeq, 5);
+
+ static const ushort unicode5[] = { 0x100, 0x101, 0x17f, 0x7f00, 0x7f7f };
+ QTest::newRow("non-latin1a") << QByteArray("?????") << QString::fromUtf16(unicode5, 5) << questionmarks;
+
+ static const ushort unicode6[] = { 0x180, 0x1ff, 0x8001, 0x8080, 0xfffc };
+ QTest::newRow("non-latin1b") << QByteArray("?????") << QString::fromUtf16(unicode6, 5) << questionmarks;
+}
+
+void tst_QString::toLatin1Roundtrip()
+{
+ QFETCH(QByteArray, latin1);
+ QFETCH(QString, unicodesrc);
+ QFETCH(QString, unicodedst);
+
+ // QtTest safety check:
+ Q_ASSERT(latin1.isNull() == unicodesrc.isNull());
+ Q_ASSERT(latin1.isEmpty() == unicodesrc.isEmpty());
+ Q_ASSERT(latin1.length() == unicodesrc.length());
+ Q_ASSERT(latin1.isNull() == unicodedst.isNull());
+ Q_ASSERT(latin1.isEmpty() == unicodedst.isEmpty());
+ Q_ASSERT(latin1.length() == unicodedst.length());
+
+ if (!latin1.isEmpty())
+ while (latin1.length() < 128) {
+ latin1 += latin1;
+ unicodesrc += unicodesrc;
+ unicodedst += unicodedst;
+ }
+
+ // toLatin1
+ QCOMPARE(unicodesrc.toLatin1().length(), latin1.length());
+ QCOMPARE(unicodesrc.toLatin1(), latin1);
+
+ // and back:
+ QCOMPARE(QString::fromLatin1(latin1, latin1.length()).length(), unicodedst.length());
+ QCOMPARE(QString::fromLatin1(latin1, latin1.length()), unicodedst);
+}
+
void tst_QString::fromLatin1()
{
QString a;
diff --git a/tools/configure/configure.pro b/tools/configure/configure.pro
index 91de7c2..d926a76 100644
--- a/tools/configure/configure.pro
+++ b/tools/configure/configure.pro
@@ -119,3 +119,4 @@ DEFINES += COMMERCIAL_VERSION
INCLUDEPATH += $$QT_SOURCE_TREE/src/corelib/arch/generic \
$$QT_SOURCE_TREE/include/QtCore \
+ $$QT_SOURCE_TREE/tools/shared
diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp
index 8c2a015..172dcd4 100644
--- a/tools/configure/configureapp.cpp
+++ b/tools/configure/configureapp.cpp
@@ -248,6 +248,7 @@ Configure::Configure( int& argc, char** argv )
dictionary[ "PHONON_BACKEND" ] = "yes";
dictionary[ "MULTIMEDIA" ] = "yes";
dictionary[ "AUDIO_BACKEND" ] = "auto";
+ dictionary[ "MEDIASERVICE"] = "auto";
dictionary[ "DIRECTSHOW" ] = "no";
dictionary[ "WEBKIT" ] = "auto";
dictionary[ "DECLARATIVE" ] = "auto";
@@ -907,6 +908,10 @@ void Configure::parseCmdLine()
dictionary[ "AUDIO_BACKEND" ] = "yes";
} else if( configCmdLine.at(i) == "-no-audio-backend" ) {
dictionary[ "AUDIO_BACKEND" ] = "no";
+ } else if( configCmdLine.at(i) == "-mediaservice") {
+ dictionary[ "MEDIASERVICE" ] = "yes";
+ } else if (configCmdLine.at(i) == "-no-mediaservice") {
+ dictionary[ "MEDIASERVICE" ] = "no";
} else if( configCmdLine.at(i) == "-no-phonon" ) {
dictionary[ "PHONON" ] = "no";
} else if( configCmdLine.at(i) == "-phonon" ) {
@@ -1763,6 +1768,8 @@ bool Configure::displayHelp()
desc("MULTIMEDIA", "yes","-multimedia", "Compile in multimedia module");
desc("AUDIO_BACKEND", "no","-no-audio-backend", "Do not compile in the platform audio backend into QtMultimedia");
desc("AUDIO_BACKEND", "yes","-audio-backend", "Compile in the platform audio backend into QtMultimedia");
+ desc("MEDIASERVICE", "no","-no-mediaservice", "Do not compile in the platform-specific QtMultimedia media service.");
+ desc("MEDIASERVICE", "yes","-mediaservice", "Compile in the platform-specific QtMultimedia media service.");
desc("WEBKIT", "no", "-no-webkit", "Do not compile in the WebKit module");
desc("WEBKIT", "yes", "-webkit", "Compile in the WebKit module (WebKit is built if a decent C++ compiler is used.)");
desc("SCRIPT", "no", "-no-script", "Do not build the QtScript module.");
@@ -2044,7 +2051,7 @@ bool Configure::checkAvailability(const QString &part)
&& dictionary.value("QMAKESPEC") != "win32-msvc.net" // Leave for now, since we can't be sure if they are using 2002 or 2003 with this spec
&& dictionary.value("QMAKESPEC") != "win32-msvc2002"
&& dictionary.value("EXCEPTIONS") == "yes";
- } else if (part == "PHONON") {
+ } else if (part == "PHONON" || part == "MEDIASERVICE") {
available = findFile("vmr9.h") && findFile("dshow.h") && findFile("dmo.h") && findFile("dmodshow.h")
&& (findFile("strmiids.lib") || findFile("libstrmiids.a"))
&& (findFile("dmoguids.lib") || findFile("libdmoguids.a"))
@@ -2204,6 +2211,8 @@ void Configure::autoDetection()
dictionary["DECLARATIVE"] = checkAvailability("DECLARATIVE") ? "yes" : "no";
if (dictionary["AUDIO_BACKEND"] == "auto")
dictionary["AUDIO_BACKEND"] = checkAvailability("AUDIO_BACKEND") ? "yes" : "no";
+ if (dictionary["MEDIASERVICE"] == "auto")
+ dictionary["MEDIASERVICE"] = checkAvailability("MEDIASERVICE") ? "yes" : "no";
// Qt/WinCE remote test application
if (dictionary["CETEST"] == "auto")
@@ -2594,6 +2603,8 @@ void Configure::generateOutputVars()
qtConfig += "multimedia";
if (dictionary["AUDIO_BACKEND"] == "yes")
qtConfig += "audio-backend";
+ if (dictionary["MEDIASERVICE"] == "yes")
+ qtConfig += "mediaservice";
}
if (dictionary["WEBKIT"] == "yes")
diff --git a/tools/qdoc3/cppcodeparser.cpp b/tools/qdoc3/cppcodeparser.cpp
index d9e9c3b..021d64a 100644
--- a/tools/qdoc3/cppcodeparser.cpp
+++ b/tools/qdoc3/cppcodeparser.cpp
@@ -1034,7 +1034,7 @@ void CppCodeParser::processOtherMetaCommand(const Doc& doc,
else if (command == COMMAND_QMLINHERITS) {
setLink(node, Node::InheritsLink, arg);
if (node->subType() == Node::QmlClass) {
- QmlClassNode::addInheritedBy(arg,node);
+ QmlClassNode::addInheritedBy(arg,node->name());
}
}
else if (command == COMMAND_QMLDEFAULT) {
diff --git a/tools/qdoc3/generator.cpp b/tools/qdoc3/generator.cpp
index a7ab453..6a8899a 100644
--- a/tools/qdoc3/generator.cpp
+++ b/tools/qdoc3/generator.cpp
@@ -1186,32 +1186,6 @@ void Generator::appendSortedNames(Text& text,
}
}
-void Generator::appendSortedNames(Text& text,
- const Node* base,
- const NodeList& subs,
- CodeMarker *marker)
-{
- NodeList::ConstIterator r;
- QMap<QString,Text> classMap;
- int index = 0;
-
- r = subs.begin();
- while (r != subs.end()) {
- Text className;
- appendFullName(className, (*r), base, marker);
- classMap[className.toString().toLower()] = className;
- ++r;
- }
-
- QStringList classNames = classMap.keys();
- classNames.sort();
-
- foreach (const QString &className, classNames) {
- text << classMap[className];
- text << separator(index++, classNames.count());
- }
-}
-
int Generator::skipAtoms(const Atom *atom, Atom::Type type) const
{
int skipAhead = 0;
diff --git a/tools/qdoc3/generator.h b/tools/qdoc3/generator.h
index 50ffb0a..44f56e2 100644
--- a/tools/qdoc3/generator.h
+++ b/tools/qdoc3/generator.h
@@ -169,13 +169,6 @@ class Generator
const QList<RelatedClass> &classes,
CodeMarker *marker);
- protected:
- void appendSortedNames(Text& text,
- const Node* base,
- const NodeList& subs,
- CodeMarker *marker);
-
- private:
QString amp;
QString lt;
QString gt;
diff --git a/tools/qdoc3/htmlgenerator.cpp b/tools/qdoc3/htmlgenerator.cpp
index 0477ebb..e767460 100644
--- a/tools/qdoc3/htmlgenerator.cpp
+++ b/tools/qdoc3/htmlgenerator.cpp
@@ -73,7 +73,6 @@ QString HtmlGenerator::sinceTitles[] =
" New Typedefs",
" New Properties",
" New Variables",
- " New QML Elements",
" New Qml Properties",
" New Qml Signals",
" New Qml Methods",
@@ -688,8 +687,6 @@ int HtmlGenerator::generateAtom(const Atom *atom,
nsmap = newSinceMaps.find(atom->string());
NewClassMaps::const_iterator ncmap;
ncmap = newClassMaps.find(atom->string());
- NewClassMaps::const_iterator nqcmap;
- nqcmap = newQmlClassMaps.find(atom->string());
if ((nsmap != newSinceMaps.constEnd()) && !nsmap.value().isEmpty()) {
QList<Section> sections;
QList<Section>::ConstIterator s;
@@ -700,10 +697,6 @@ int HtmlGenerator::generateAtom(const Atom *atom,
while (n != nsmap.value().constEnd()) {
const Node* node = n.value();
switch (node->type()) {
- case Node::Fake:
- if (node->subType() == Node::QmlClass)
- sections[QmlClass].appendMember((Node*)node);
- break;
case Node::Namespace:
sections[Namespace].appendMember((Node*)node);
break;
@@ -789,8 +782,6 @@ int HtmlGenerator::generateAtom(const Atom *atom,
out() << "<h3>" << protectEnc((*s).name) << "</h3>\n";
if (idx == Class)
generateCompactList(0, marker, ncmap.value(), QString("Q"));
- else if (idx == QmlClass)
- generateCompactList(0, marker, nqcmap.value(), QString("Q"));
else if (idx == MemberFunction) {
ParentMaps parentmaps;
ParentMaps::iterator pmap;
@@ -2341,11 +2332,7 @@ void HtmlGenerator::generateCompactList(const Node *relative,
out() << "<a href=\""
<< linkForNode(it.value(), relative)
<< "\">";
- QStringList pieces;
- if (it.value()->subType() == Node::QmlClass)
- pieces << it.value()->name();
- else
- pieces = fullName(it.value(), relative, marker).split("::");
+ QStringList pieces = fullName(it.value(), relative, marker).split("::");
out() << protectEnc(pieces.last());
out() << "</a>";
if (pieces.size() > 1) {
@@ -3736,9 +3723,6 @@ void HtmlGenerator::findAllSince(const InnerNode *node)
NewClassMaps::iterator ncmap = newClassMaps.find(sinceVersion);
if (ncmap == newClassMaps.end())
ncmap = newClassMaps.insert(sinceVersion,NodeMap());
- NewClassMaps::iterator nqcmap = newQmlClassMaps.find(sinceVersion);
- if (nqcmap == newQmlClassMaps.end())
- nqcmap = newQmlClassMaps.insert(sinceVersion,NodeMap());
if ((*child)->type() == Node::Function) {
FunctionNode *func = static_cast<FunctionNode *>(*child);
@@ -3758,15 +3742,6 @@ void HtmlGenerator::findAllSince(const InnerNode *node)
nsmap.value().insert(className,(*child));
ncmap.value().insert(className,(*child));
}
- else if ((*child)->subType() == Node::QmlClass) {
- QString className = (*child)->name();
- if ((*child)->parent() &&
- (*child)->parent()->type() == Node::Namespace &&
- !(*child)->parent()->name().isEmpty())
- className = (*child)->parent()->name()+"::"+className;
- nsmap.value().insert(className,(*child));
- nqcmap.value().insert(className,(*child));
- }
}
else {
QString name = (*child)->name();
@@ -4341,15 +4316,40 @@ void HtmlGenerator::generateQmlInheritedBy(const QmlClassNode* cn,
CodeMarker* marker)
{
if (cn) {
- NodeList subs;
+ QStringList subs;
QmlClassNode::subclasses(cn->name(),subs);
if (!subs.isEmpty()) {
+ subs.sort();
Text text;
text << Atom::ParaLeft << "Inherited by ";
- appendSortedNames(text,cn,subs,marker);
+ for (int i = 0; i < subs.size(); ++i) {
+ text << subs.at(i);
+ text << separator(i, subs.size());
+ }
text << Atom::ParaRight;
generateText(text, cn, marker);
}
+#if 0
+ if (cn->links().contains(Node::InheritsLink)) {
+ QPair<QString,QString> linkPair;
+ linkPair = cn->links()[Node::InheritsLink];
+ QStringList strList(linkPair.first);
+ const Node* n = myTree->findNode(strList,Node::Fake);
+ if (n && n->subType() == Node::QmlClass) {
+ const QmlClassNode* qcn = static_cast<const QmlClassNode*>(n);
+ out() << "<p style=\"text-align: center\">";
+ Text text;
+ text << "[Inherits ";
+ text << Atom(Atom::LinkNode,CodeMarker::stringForNode(qcn));
+ text << Atom(Atom::FormattingLeft, ATOM_FORMATTING_LINK);
+ text << Atom(Atom::String, linkPair.second);
+ text << Atom(Atom::FormattingRight, ATOM_FORMATTING_LINK);
+ text << "]";
+ generateText(text, cn, marker);
+ out() << "</p>";
+ }
+ }
+#endif
}
}
diff --git a/tools/qdoc3/htmlgenerator.h b/tools/qdoc3/htmlgenerator.h
index 8fe0331..551bead 100644
--- a/tools/qdoc3/htmlgenerator.h
+++ b/tools/qdoc3/htmlgenerator.h
@@ -90,7 +90,6 @@ class HtmlGenerator : public PageGenerator
Typedef,
Property,
Variable,
- QmlClass,
QmlProperty,
QmlSignal,
QmlMethod,
@@ -327,7 +326,6 @@ class HtmlGenerator : public PageGenerator
NewSinceMaps newSinceMaps;
static QString sinceTitles[];
NewClassMaps newClassMaps;
- NewClassMaps newQmlClassMaps;
static int id;
};
diff --git a/tools/qdoc3/node.cpp b/tools/qdoc3/node.cpp
index 5357597..4ddcfb1 100644
--- a/tools/qdoc3/node.cpp
+++ b/tools/qdoc3/node.cpp
@@ -1257,7 +1257,7 @@ bool TargetNode::isInnerNode() const
#ifdef QDOC_QML
bool QmlClassNode::qmlOnly = false;
-QMultiMap<QString,Node*> QmlClassNode::inheritedBy;
+QMultiMap<QString,QString> QmlClassNode::inheritedBy;
/*!
Constructs a Qml class node (i.e. a Fake node with the
@@ -1294,15 +1294,15 @@ QString QmlClassNode::fileBase() const
Record the fact that QML class \a base is inherited by
QML class \a sub.
*/
-void QmlClassNode::addInheritedBy(const QString& base, Node* sub)
+void QmlClassNode::addInheritedBy(const QString& base, const QString& sub)
{
inheritedBy.insert(base,sub);
}
/*!
- Loads the list \a subs with the nodes of all the subclasses of \a base.
+ Loads the list \a subs with the names of all the subclasses of \a base.
*/
-void QmlClassNode::subclasses(const QString& base, NodeList& subs)
+void QmlClassNode::subclasses(const QString& base, QStringList& subs)
{
subs.clear();
if (inheritedBy.contains(base))
diff --git a/tools/qdoc3/node.h b/tools/qdoc3/node.h
index 3798e4e..de26025 100644
--- a/tools/qdoc3/node.h
+++ b/tools/qdoc3/node.h
@@ -383,12 +383,12 @@ class QmlClassNode : public FakeNode
const ClassNode* classNode() const { return cnode; }
virtual QString fileBase() const;
- static void addInheritedBy(const QString& base, Node* sub);
- static void subclasses(const QString& base, NodeList& subs);
+ static void addInheritedBy(const QString& base, const QString& sub);
+ static void subclasses(const QString& base, QStringList& subs);
public:
static bool qmlOnly;
- static QMultiMap<QString,Node*> inheritedBy;
+ static QMultiMap<QString,QString> inheritedBy;
private:
const ClassNode* cnode;
diff --git a/util/unicode/data/DerivedNormalizationProps.txt b/util/unicode/data/DerivedNormalizationProps.txt
new file mode 100644
index 0000000..fba1fd1
--- /dev/null
+++ b/util/unicode/data/DerivedNormalizationProps.txt
@@ -0,0 +1,2650 @@
+# DerivedNormalizationProps-5.0.0.txt
+# Date: 2006-06-07, 17:42:44 GMT [MD]
+#
+# Unicode Character Database
+# Copyright (c) 1991-2006 Unicode, Inc.
+# For terms of use, see http://www.unicode.org/terms_of_use.html
+# For documentation, see UCD.html
+
+# ================================================
+
+# Derived Property: FC_NFKC_Closure
+# Generated from computing: b = NFKC(Fold(a)); c = NFKC(Fold(b));
+# Then if (c != b) add the mapping from a to c to the set of
+# mappings that constitute the FC_NFKC_Closure list
+# Uses the full case folding from CaseFolding.txt, without the T option.
+
+037A ; FC_NFKC; 0020 03B9 # Lm GREEK YPOGEGRAMMENI
+03D2 ; FC_NFKC; 03C5 # L& GREEK UPSILON WITH HOOK SYMBOL
+03D3 ; FC_NFKC; 03CD # L& GREEK UPSILON WITH ACUTE AND HOOK SYMBOL
+03D4 ; FC_NFKC; 03CB # L& GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL
+03F2 ; FC_NFKC; 03C3 # L& GREEK LUNATE SIGMA SYMBOL
+03F9 ; FC_NFKC; 03C3 # L& GREEK CAPITAL LUNATE SIGMA SYMBOL
+1D2C ; FC_NFKC; 0061 # Lm MODIFIER LETTER CAPITAL A
+1D2D ; FC_NFKC; 00E6 # Lm MODIFIER LETTER CAPITAL AE
+1D2E ; FC_NFKC; 0062 # Lm MODIFIER LETTER CAPITAL B
+1D30 ; FC_NFKC; 0064 # Lm MODIFIER LETTER CAPITAL D
+1D31 ; FC_NFKC; 0065 # Lm MODIFIER LETTER CAPITAL E
+1D32 ; FC_NFKC; 01DD # Lm MODIFIER LETTER CAPITAL REVERSED E
+1D33 ; FC_NFKC; 0067 # Lm MODIFIER LETTER CAPITAL G
+1D34 ; FC_NFKC; 0068 # Lm MODIFIER LETTER CAPITAL H
+1D35 ; FC_NFKC; 0069 # Lm MODIFIER LETTER CAPITAL I
+1D36 ; FC_NFKC; 006A # Lm MODIFIER LETTER CAPITAL J
+1D37 ; FC_NFKC; 006B # Lm MODIFIER LETTER CAPITAL K
+1D38 ; FC_NFKC; 006C # Lm MODIFIER LETTER CAPITAL L
+1D39 ; FC_NFKC; 006D # Lm MODIFIER LETTER CAPITAL M
+1D3A ; FC_NFKC; 006E # Lm MODIFIER LETTER CAPITAL N
+1D3C ; FC_NFKC; 006F # Lm MODIFIER LETTER CAPITAL O
+1D3D ; FC_NFKC; 0223 # Lm MODIFIER LETTER CAPITAL OU
+1D3E ; FC_NFKC; 0070 # Lm MODIFIER LETTER CAPITAL P
+1D3F ; FC_NFKC; 0072 # Lm MODIFIER LETTER CAPITAL R
+1D40 ; FC_NFKC; 0074 # Lm MODIFIER LETTER CAPITAL T
+1D41 ; FC_NFKC; 0075 # Lm MODIFIER LETTER CAPITAL U
+1D42 ; FC_NFKC; 0077 # Lm MODIFIER LETTER CAPITAL W
+20A8 ; FC_NFKC; 0072 0073 # Sc RUPEE SIGN
+2102 ; FC_NFKC; 0063 # L& DOUBLE-STRUCK CAPITAL C
+2103 ; FC_NFKC; 00B0 0063 # So DEGREE CELSIUS
+2107 ; FC_NFKC; 025B # L& EULER CONSTANT
+2109 ; FC_NFKC; 00B0 0066 # So DEGREE FAHRENHEIT
+210B ; FC_NFKC; 0068 # L& SCRIPT CAPITAL H
+210C ; FC_NFKC; 0068 # L& BLACK-LETTER CAPITAL H
+210D ; FC_NFKC; 0068 # L& DOUBLE-STRUCK CAPITAL H
+2110 ; FC_NFKC; 0069 # L& SCRIPT CAPITAL I
+2111 ; FC_NFKC; 0069 # L& BLACK-LETTER CAPITAL I
+2112 ; FC_NFKC; 006C # L& SCRIPT CAPITAL L
+2115 ; FC_NFKC; 006E # L& DOUBLE-STRUCK CAPITAL N
+2116 ; FC_NFKC; 006E 006F # So NUMERO SIGN
+2119 ; FC_NFKC; 0070 # L& DOUBLE-STRUCK CAPITAL P
+211A ; FC_NFKC; 0071 # L& DOUBLE-STRUCK CAPITAL Q
+211B ; FC_NFKC; 0072 # L& SCRIPT CAPITAL R
+211C ; FC_NFKC; 0072 # L& BLACK-LETTER CAPITAL R
+211D ; FC_NFKC; 0072 # L& DOUBLE-STRUCK CAPITAL R
+2120 ; FC_NFKC; 0073 006D # So SERVICE MARK
+2121 ; FC_NFKC; 0074 0065 006C # So TELEPHONE SIGN
+2122 ; FC_NFKC; 0074 006D # So TRADE MARK SIGN
+2124 ; FC_NFKC; 007A # L& DOUBLE-STRUCK CAPITAL Z
+2128 ; FC_NFKC; 007A # L& BLACK-LETTER CAPITAL Z
+212C ; FC_NFKC; 0062 # L& SCRIPT CAPITAL B
+212D ; FC_NFKC; 0063 # L& BLACK-LETTER CAPITAL C
+2130 ; FC_NFKC; 0065 # L& SCRIPT CAPITAL E
+2131 ; FC_NFKC; 0066 # L& SCRIPT CAPITAL F
+2133 ; FC_NFKC; 006D # L& SCRIPT CAPITAL M
+213B ; FC_NFKC; 0066 0061 0078 # So FACSIMILE SIGN
+213E ; FC_NFKC; 03B3 # L& DOUBLE-STRUCK CAPITAL GAMMA
+213F ; FC_NFKC; 03C0 # L& DOUBLE-STRUCK CAPITAL PI
+2145 ; FC_NFKC; 0064 # L& DOUBLE-STRUCK ITALIC CAPITAL D
+3250 ; FC_NFKC; 0070 0074 0065 # So PARTNERSHIP SIGN
+32CC ; FC_NFKC; 0068 0067 # So SQUARE HG
+32CE ; FC_NFKC; 0065 0076 # So SQUARE EV
+32CF ; FC_NFKC; 006C 0074 0064 # So LIMITED LIABILITY SIGN
+3371 ; FC_NFKC; 0068 0070 0061 # So SQUARE HPA
+3373 ; FC_NFKC; 0061 0075 # So SQUARE AU
+3375 ; FC_NFKC; 006F 0076 # So SQUARE OV
+337A ; FC_NFKC; 0069 0075 # So SQUARE IU
+3380 ; FC_NFKC; 0070 0061 # So SQUARE PA AMPS
+3381 ; FC_NFKC; 006E 0061 # So SQUARE NA
+3382 ; FC_NFKC; 03BC 0061 # So SQUARE MU A
+3383 ; FC_NFKC; 006D 0061 # So SQUARE MA
+3384 ; FC_NFKC; 006B 0061 # So SQUARE KA
+3385 ; FC_NFKC; 006B 0062 # So SQUARE KB
+3386 ; FC_NFKC; 006D 0062 # So SQUARE MB
+3387 ; FC_NFKC; 0067 0062 # So SQUARE GB
+338A ; FC_NFKC; 0070 0066 # So SQUARE PF
+338B ; FC_NFKC; 006E 0066 # So SQUARE NF
+338C ; FC_NFKC; 03BC 0066 # So SQUARE MU F
+3390 ; FC_NFKC; 0068 007A # So SQUARE HZ
+3391 ; FC_NFKC; 006B 0068 007A # So SQUARE KHZ
+3392 ; FC_NFKC; 006D 0068 007A # So SQUARE MHZ
+3393 ; FC_NFKC; 0067 0068 007A # So SQUARE GHZ
+3394 ; FC_NFKC; 0074 0068 007A # So SQUARE THZ
+33A9 ; FC_NFKC; 0070 0061 # So SQUARE PA
+33AA ; FC_NFKC; 006B 0070 0061 # So SQUARE KPA
+33AB ; FC_NFKC; 006D 0070 0061 # So SQUARE MPA
+33AC ; FC_NFKC; 0067 0070 0061 # So SQUARE GPA
+33B4 ; FC_NFKC; 0070 0076 # So SQUARE PV
+33B5 ; FC_NFKC; 006E 0076 # So SQUARE NV
+33B6 ; FC_NFKC; 03BC 0076 # So SQUARE MU V
+33B7 ; FC_NFKC; 006D 0076 # So SQUARE MV
+33B8 ; FC_NFKC; 006B 0076 # So SQUARE KV
+33B9 ; FC_NFKC; 006D 0076 # So SQUARE MV MEGA
+33BA ; FC_NFKC; 0070 0077 # So SQUARE PW
+33BB ; FC_NFKC; 006E 0077 # So SQUARE NW
+33BC ; FC_NFKC; 03BC 0077 # So SQUARE MU W
+33BD ; FC_NFKC; 006D 0077 # So SQUARE MW
+33BE ; FC_NFKC; 006B 0077 # So SQUARE KW
+33BF ; FC_NFKC; 006D 0077 # So SQUARE MW MEGA
+33C0 ; FC_NFKC; 006B 03C9 # So SQUARE K OHM
+33C1 ; FC_NFKC; 006D 03C9 # So SQUARE M OHM
+33C3 ; FC_NFKC; 0062 0071 # So SQUARE BQ
+33C6 ; FC_NFKC; 0063 2215 006B 0067 #So SQUARE C OVER KG
+33C7 ; FC_NFKC; 0063 006F 002E # So SQUARE CO
+33C8 ; FC_NFKC; 0064 0062 # So SQUARE DB
+33C9 ; FC_NFKC; 0067 0079 # So SQUARE GY
+33CB ; FC_NFKC; 0068 0070 # So SQUARE HP
+33CD ; FC_NFKC; 006B 006B # So SQUARE KK
+33CE ; FC_NFKC; 006B 006D # So SQUARE KM CAPITAL
+33D7 ; FC_NFKC; 0070 0068 # So SQUARE PH
+33D9 ; FC_NFKC; 0070 0070 006D # So SQUARE PPM
+33DA ; FC_NFKC; 0070 0072 # So SQUARE PR
+33DC ; FC_NFKC; 0073 0076 # So SQUARE SV
+33DD ; FC_NFKC; 0077 0062 # So SQUARE WB
+33DE ; FC_NFKC; 0076 2215 006D # So SQUARE V OVER M
+33DF ; FC_NFKC; 0061 2215 006D # So SQUARE A OVER M
+1D400 ; FC_NFKC; 0061 # L& MATHEMATICAL BOLD CAPITAL A
+1D401 ; FC_NFKC; 0062 # L& MATHEMATICAL BOLD CAPITAL B
+1D402 ; FC_NFKC; 0063 # L& MATHEMATICAL BOLD CAPITAL C
+1D403 ; FC_NFKC; 0064 # L& MATHEMATICAL BOLD CAPITAL D
+1D404 ; FC_NFKC; 0065 # L& MATHEMATICAL BOLD CAPITAL E
+1D405 ; FC_NFKC; 0066 # L& MATHEMATICAL BOLD CAPITAL F
+1D406 ; FC_NFKC; 0067 # L& MATHEMATICAL BOLD CAPITAL G
+1D407 ; FC_NFKC; 0068 # L& MATHEMATICAL BOLD CAPITAL H
+1D408 ; FC_NFKC; 0069 # L& MATHEMATICAL BOLD CAPITAL I
+1D409 ; FC_NFKC; 006A # L& MATHEMATICAL BOLD CAPITAL J
+1D40A ; FC_NFKC; 006B # L& MATHEMATICAL BOLD CAPITAL K
+1D40B ; FC_NFKC; 006C # L& MATHEMATICAL BOLD CAPITAL L
+1D40C ; FC_NFKC; 006D # L& MATHEMATICAL BOLD CAPITAL M
+1D40D ; FC_NFKC; 006E # L& MATHEMATICAL BOLD CAPITAL N
+1D40E ; FC_NFKC; 006F # L& MATHEMATICAL BOLD CAPITAL O
+1D40F ; FC_NFKC; 0070 # L& MATHEMATICAL BOLD CAPITAL P
+1D410 ; FC_NFKC; 0071 # L& MATHEMATICAL BOLD CAPITAL Q
+1D411 ; FC_NFKC; 0072 # L& MATHEMATICAL BOLD CAPITAL R
+1D412 ; FC_NFKC; 0073 # L& MATHEMATICAL BOLD CAPITAL S
+1D413 ; FC_NFKC; 0074 # L& MATHEMATICAL BOLD CAPITAL T
+1D414 ; FC_NFKC; 0075 # L& MATHEMATICAL BOLD CAPITAL U
+1D415 ; FC_NFKC; 0076 # L& MATHEMATICAL BOLD CAPITAL V
+1D416 ; FC_NFKC; 0077 # L& MATHEMATICAL BOLD CAPITAL W
+1D417 ; FC_NFKC; 0078 # L& MATHEMATICAL BOLD CAPITAL X
+1D418 ; FC_NFKC; 0079 # L& MATHEMATICAL BOLD CAPITAL Y
+1D419 ; FC_NFKC; 007A # L& MATHEMATICAL BOLD CAPITAL Z
+1D434 ; FC_NFKC; 0061 # L& MATHEMATICAL ITALIC CAPITAL A
+1D435 ; FC_NFKC; 0062 # L& MATHEMATICAL ITALIC CAPITAL B
+1D436 ; FC_NFKC; 0063 # L& MATHEMATICAL ITALIC CAPITAL C
+1D437 ; FC_NFKC; 0064 # L& MATHEMATICAL ITALIC CAPITAL D
+1D438 ; FC_NFKC; 0065 # L& MATHEMATICAL ITALIC CAPITAL E
+1D439 ; FC_NFKC; 0066 # L& MATHEMATICAL ITALIC CAPITAL F
+1D43A ; FC_NFKC; 0067 # L& MATHEMATICAL ITALIC CAPITAL G
+1D43B ; FC_NFKC; 0068 # L& MATHEMATICAL ITALIC CAPITAL H
+1D43C ; FC_NFKC; 0069 # L& MATHEMATICAL ITALIC CAPITAL I
+1D43D ; FC_NFKC; 006A # L& MATHEMATICAL ITALIC CAPITAL J
+1D43E ; FC_NFKC; 006B # L& MATHEMATICAL ITALIC CAPITAL K
+1D43F ; FC_NFKC; 006C # L& MATHEMATICAL ITALIC CAPITAL L
+1D440 ; FC_NFKC; 006D # L& MATHEMATICAL ITALIC CAPITAL M
+1D441 ; FC_NFKC; 006E # L& MATHEMATICAL ITALIC CAPITAL N
+1D442 ; FC_NFKC; 006F # L& MATHEMATICAL ITALIC CAPITAL O
+1D443 ; FC_NFKC; 0070 # L& MATHEMATICAL ITALIC CAPITAL P
+1D444 ; FC_NFKC; 0071 # L& MATHEMATICAL ITALIC CAPITAL Q
+1D445 ; FC_NFKC; 0072 # L& MATHEMATICAL ITALIC CAPITAL R
+1D446 ; FC_NFKC; 0073 # L& MATHEMATICAL ITALIC CAPITAL S
+1D447 ; FC_NFKC; 0074 # L& MATHEMATICAL ITALIC CAPITAL T
+1D448 ; FC_NFKC; 0075 # L& MATHEMATICAL ITALIC CAPITAL U
+1D449 ; FC_NFKC; 0076 # L& MATHEMATICAL ITALIC CAPITAL V
+1D44A ; FC_NFKC; 0077 # L& MATHEMATICAL ITALIC CAPITAL W
+1D44B ; FC_NFKC; 0078 # L& MATHEMATICAL ITALIC CAPITAL X
+1D44C ; FC_NFKC; 0079 # L& MATHEMATICAL ITALIC CAPITAL Y
+1D44D ; FC_NFKC; 007A # L& MATHEMATICAL ITALIC CAPITAL Z
+1D468 ; FC_NFKC; 0061 # L& MATHEMATICAL BOLD ITALIC CAPITAL A
+1D469 ; FC_NFKC; 0062 # L& MATHEMATICAL BOLD ITALIC CAPITAL B
+1D46A ; FC_NFKC; 0063 # L& MATHEMATICAL BOLD ITALIC CAPITAL C
+1D46B ; FC_NFKC; 0064 # L& MATHEMATICAL BOLD ITALIC CAPITAL D
+1D46C ; FC_NFKC; 0065 # L& MATHEMATICAL BOLD ITALIC CAPITAL E
+1D46D ; FC_NFKC; 0066 # L& MATHEMATICAL BOLD ITALIC CAPITAL F
+1D46E ; FC_NFKC; 0067 # L& MATHEMATICAL BOLD ITALIC CAPITAL G
+1D46F ; FC_NFKC; 0068 # L& MATHEMATICAL BOLD ITALIC CAPITAL H
+1D470 ; FC_NFKC; 0069 # L& MATHEMATICAL BOLD ITALIC CAPITAL I
+1D471 ; FC_NFKC; 006A # L& MATHEMATICAL BOLD ITALIC CAPITAL J
+1D472 ; FC_NFKC; 006B # L& MATHEMATICAL BOLD ITALIC CAPITAL K
+1D473 ; FC_NFKC; 006C # L& MATHEMATICAL BOLD ITALIC CAPITAL L
+1D474 ; FC_NFKC; 006D # L& MATHEMATICAL BOLD ITALIC CAPITAL M
+1D475 ; FC_NFKC; 006E # L& MATHEMATICAL BOLD ITALIC CAPITAL N
+1D476 ; FC_NFKC; 006F # L& MATHEMATICAL BOLD ITALIC CAPITAL O
+1D477 ; FC_NFKC; 0070 # L& MATHEMATICAL BOLD ITALIC CAPITAL P
+1D478 ; FC_NFKC; 0071 # L& MATHEMATICAL BOLD ITALIC CAPITAL Q
+1D479 ; FC_NFKC; 0072 # L& MATHEMATICAL BOLD ITALIC CAPITAL R
+1D47A ; FC_NFKC; 0073 # L& MATHEMATICAL BOLD ITALIC CAPITAL S
+1D47B ; FC_NFKC; 0074 # L& MATHEMATICAL BOLD ITALIC CAPITAL T
+1D47C ; FC_NFKC; 0075 # L& MATHEMATICAL BOLD ITALIC CAPITAL U
+1D47D ; FC_NFKC; 0076 # L& MATHEMATICAL BOLD ITALIC CAPITAL V
+1D47E ; FC_NFKC; 0077 # L& MATHEMATICAL BOLD ITALIC CAPITAL W
+1D47F ; FC_NFKC; 0078 # L& MATHEMATICAL BOLD ITALIC CAPITAL X
+1D480 ; FC_NFKC; 0079 # L& MATHEMATICAL BOLD ITALIC CAPITAL Y
+1D481 ; FC_NFKC; 007A # L& MATHEMATICAL BOLD ITALIC CAPITAL Z
+1D49C ; FC_NFKC; 0061 # L& MATHEMATICAL SCRIPT CAPITAL A
+1D49E ; FC_NFKC; 0063 # L& MATHEMATICAL SCRIPT CAPITAL C
+1D49F ; FC_NFKC; 0064 # L& MATHEMATICAL SCRIPT CAPITAL D
+1D4A2 ; FC_NFKC; 0067 # L& MATHEMATICAL SCRIPT CAPITAL G
+1D4A5 ; FC_NFKC; 006A # L& MATHEMATICAL SCRIPT CAPITAL J
+1D4A6 ; FC_NFKC; 006B # L& MATHEMATICAL SCRIPT CAPITAL K
+1D4A9 ; FC_NFKC; 006E # L& MATHEMATICAL SCRIPT CAPITAL N
+1D4AA ; FC_NFKC; 006F # L& MATHEMATICAL SCRIPT CAPITAL O
+1D4AB ; FC_NFKC; 0070 # L& MATHEMATICAL SCRIPT CAPITAL P
+1D4AC ; FC_NFKC; 0071 # L& MATHEMATICAL SCRIPT CAPITAL Q
+1D4AE ; FC_NFKC; 0073 # L& MATHEMATICAL SCRIPT CAPITAL S
+1D4AF ; FC_NFKC; 0074 # L& MATHEMATICAL SCRIPT CAPITAL T
+1D4B0 ; FC_NFKC; 0075 # L& MATHEMATICAL SCRIPT CAPITAL U
+1D4B1 ; FC_NFKC; 0076 # L& MATHEMATICAL SCRIPT CAPITAL V
+1D4B2 ; FC_NFKC; 0077 # L& MATHEMATICAL SCRIPT CAPITAL W
+1D4B3 ; FC_NFKC; 0078 # L& MATHEMATICAL SCRIPT CAPITAL X
+1D4B4 ; FC_NFKC; 0079 # L& MATHEMATICAL SCRIPT CAPITAL Y
+1D4B5 ; FC_NFKC; 007A # L& MATHEMATICAL SCRIPT CAPITAL Z
+1D4D0 ; FC_NFKC; 0061 # L& MATHEMATICAL BOLD SCRIPT CAPITAL A
+1D4D1 ; FC_NFKC; 0062 # L& MATHEMATICAL BOLD SCRIPT CAPITAL B
+1D4D2 ; FC_NFKC; 0063 # L& MATHEMATICAL BOLD SCRIPT CAPITAL C
+1D4D3 ; FC_NFKC; 0064 # L& MATHEMATICAL BOLD SCRIPT CAPITAL D
+1D4D4 ; FC_NFKC; 0065 # L& MATHEMATICAL BOLD SCRIPT CAPITAL E
+1D4D5 ; FC_NFKC; 0066 # L& MATHEMATICAL BOLD SCRIPT CAPITAL F
+1D4D6 ; FC_NFKC; 0067 # L& MATHEMATICAL BOLD SCRIPT CAPITAL G
+1D4D7 ; FC_NFKC; 0068 # L& MATHEMATICAL BOLD SCRIPT CAPITAL H
+1D4D8 ; FC_NFKC; 0069 # L& MATHEMATICAL BOLD SCRIPT CAPITAL I
+1D4D9 ; FC_NFKC; 006A # L& MATHEMATICAL BOLD SCRIPT CAPITAL J
+1D4DA ; FC_NFKC; 006B # L& MATHEMATICAL BOLD SCRIPT CAPITAL K
+1D4DB ; FC_NFKC; 006C # L& MATHEMATICAL BOLD SCRIPT CAPITAL L
+1D4DC ; FC_NFKC; 006D # L& MATHEMATICAL BOLD SCRIPT CAPITAL M
+1D4DD ; FC_NFKC; 006E # L& MATHEMATICAL BOLD SCRIPT CAPITAL N
+1D4DE ; FC_NFKC; 006F # L& MATHEMATICAL BOLD SCRIPT CAPITAL O
+1D4DF ; FC_NFKC; 0070 # L& MATHEMATICAL BOLD SCRIPT CAPITAL P
+1D4E0 ; FC_NFKC; 0071 # L& MATHEMATICAL BOLD SCRIPT CAPITAL Q
+1D4E1 ; FC_NFKC; 0072 # L& MATHEMATICAL BOLD SCRIPT CAPITAL R
+1D4E2 ; FC_NFKC; 0073 # L& MATHEMATICAL BOLD SCRIPT CAPITAL S
+1D4E3 ; FC_NFKC; 0074 # L& MATHEMATICAL BOLD SCRIPT CAPITAL T
+1D4E4 ; FC_NFKC; 0075 # L& MATHEMATICAL BOLD SCRIPT CAPITAL U
+1D4E5 ; FC_NFKC; 0076 # L& MATHEMATICAL BOLD SCRIPT CAPITAL V
+1D4E6 ; FC_NFKC; 0077 # L& MATHEMATICAL BOLD SCRIPT CAPITAL W
+1D4E7 ; FC_NFKC; 0078 # L& MATHEMATICAL BOLD SCRIPT CAPITAL X
+1D4E8 ; FC_NFKC; 0079 # L& MATHEMATICAL BOLD SCRIPT CAPITAL Y
+1D4E9 ; FC_NFKC; 007A # L& MATHEMATICAL BOLD SCRIPT CAPITAL Z
+1D504 ; FC_NFKC; 0061 # L& MATHEMATICAL FRAKTUR CAPITAL A
+1D505 ; FC_NFKC; 0062 # L& MATHEMATICAL FRAKTUR CAPITAL B
+1D507 ; FC_NFKC; 0064 # L& MATHEMATICAL FRAKTUR CAPITAL D
+1D508 ; FC_NFKC; 0065 # L& MATHEMATICAL FRAKTUR CAPITAL E
+1D509 ; FC_NFKC; 0066 # L& MATHEMATICAL FRAKTUR CAPITAL F
+1D50A ; FC_NFKC; 0067 # L& MATHEMATICAL FRAKTUR CAPITAL G
+1D50D ; FC_NFKC; 006A # L& MATHEMATICAL FRAKTUR CAPITAL J
+1D50E ; FC_NFKC; 006B # L& MATHEMATICAL FRAKTUR CAPITAL K
+1D50F ; FC_NFKC; 006C # L& MATHEMATICAL FRAKTUR CAPITAL L
+1D510 ; FC_NFKC; 006D # L& MATHEMATICAL FRAKTUR CAPITAL M
+1D511 ; FC_NFKC; 006E # L& MATHEMATICAL FRAKTUR CAPITAL N
+1D512 ; FC_NFKC; 006F # L& MATHEMATICAL FRAKTUR CAPITAL O
+1D513 ; FC_NFKC; 0070 # L& MATHEMATICAL FRAKTUR CAPITAL P
+1D514 ; FC_NFKC; 0071 # L& MATHEMATICAL FRAKTUR CAPITAL Q
+1D516 ; FC_NFKC; 0073 # L& MATHEMATICAL FRAKTUR CAPITAL S
+1D517 ; FC_NFKC; 0074 # L& MATHEMATICAL FRAKTUR CAPITAL T
+1D518 ; FC_NFKC; 0075 # L& MATHEMATICAL FRAKTUR CAPITAL U
+1D519 ; FC_NFKC; 0076 # L& MATHEMATICAL FRAKTUR CAPITAL V
+1D51A ; FC_NFKC; 0077 # L& MATHEMATICAL FRAKTUR CAPITAL W
+1D51B ; FC_NFKC; 0078 # L& MATHEMATICAL FRAKTUR CAPITAL X
+1D51C ; FC_NFKC; 0079 # L& MATHEMATICAL FRAKTUR CAPITAL Y
+1D538 ; FC_NFKC; 0061 # L& MATHEMATICAL DOUBLE-STRUCK CAPITAL A
+1D539 ; FC_NFKC; 0062 # L& MATHEMATICAL DOUBLE-STRUCK CAPITAL B
+1D53B ; FC_NFKC; 0064 # L& MATHEMATICAL DOUBLE-STRUCK CAPITAL D
+1D53C ; FC_NFKC; 0065 # L& MATHEMATICAL DOUBLE-STRUCK CAPITAL E
+1D53D ; FC_NFKC; 0066 # L& MATHEMATICAL DOUBLE-STRUCK CAPITAL F
+1D53E ; FC_NFKC; 0067 # L& MATHEMATICAL DOUBLE-STRUCK CAPITAL G
+1D540 ; FC_NFKC; 0069 # L& MATHEMATICAL DOUBLE-STRUCK CAPITAL I
+1D541 ; FC_NFKC; 006A # L& MATHEMATICAL DOUBLE-STRUCK CAPITAL J
+1D542 ; FC_NFKC; 006B # L& MATHEMATICAL DOUBLE-STRUCK CAPITAL K
+1D543 ; FC_NFKC; 006C # L& MATHEMATICAL DOUBLE-STRUCK CAPITAL L
+1D544 ; FC_NFKC; 006D # L& MATHEMATICAL DOUBLE-STRUCK CAPITAL M
+1D546 ; FC_NFKC; 006F # L& MATHEMATICAL DOUBLE-STRUCK CAPITAL O
+1D54A ; FC_NFKC; 0073 # L& MATHEMATICAL DOUBLE-STRUCK CAPITAL S
+1D54B ; FC_NFKC; 0074 # L& MATHEMATICAL DOUBLE-STRUCK CAPITAL T
+1D54C ; FC_NFKC; 0075 # L& MATHEMATICAL DOUBLE-STRUCK CAPITAL U
+1D54D ; FC_NFKC; 0076 # L& MATHEMATICAL DOUBLE-STRUCK CAPITAL V
+1D54E ; FC_NFKC; 0077 # L& MATHEMATICAL DOUBLE-STRUCK CAPITAL W
+1D54F ; FC_NFKC; 0078 # L& MATHEMATICAL DOUBLE-STRUCK CAPITAL X
+1D550 ; FC_NFKC; 0079 # L& MATHEMATICAL DOUBLE-STRUCK CAPITAL Y
+1D56C ; FC_NFKC; 0061 # L& MATHEMATICAL BOLD FRAKTUR CAPITAL A
+1D56D ; FC_NFKC; 0062 # L& MATHEMATICAL BOLD FRAKTUR CAPITAL B
+1D56E ; FC_NFKC; 0063 # L& MATHEMATICAL BOLD FRAKTUR CAPITAL C
+1D56F ; FC_NFKC; 0064 # L& MATHEMATICAL BOLD FRAKTUR CAPITAL D
+1D570 ; FC_NFKC; 0065 # L& MATHEMATICAL BOLD FRAKTUR CAPITAL E
+1D571 ; FC_NFKC; 0066 # L& MATHEMATICAL BOLD FRAKTUR CAPITAL F
+1D572 ; FC_NFKC; 0067 # L& MATHEMATICAL BOLD FRAKTUR CAPITAL G
+1D573 ; FC_NFKC; 0068 # L& MATHEMATICAL BOLD FRAKTUR CAPITAL H
+1D574 ; FC_NFKC; 0069 # L& MATHEMATICAL BOLD FRAKTUR CAPITAL I
+1D575 ; FC_NFKC; 006A # L& MATHEMATICAL BOLD FRAKTUR CAPITAL J
+1D576 ; FC_NFKC; 006B # L& MATHEMATICAL BOLD FRAKTUR CAPITAL K
+1D577 ; FC_NFKC; 006C # L& MATHEMATICAL BOLD FRAKTUR CAPITAL L
+1D578 ; FC_NFKC; 006D # L& MATHEMATICAL BOLD FRAKTUR CAPITAL M
+1D579 ; FC_NFKC; 006E # L& MATHEMATICAL BOLD FRAKTUR CAPITAL N
+1D57A ; FC_NFKC; 006F # L& MATHEMATICAL BOLD FRAKTUR CAPITAL O
+1D57B ; FC_NFKC; 0070 # L& MATHEMATICAL BOLD FRAKTUR CAPITAL P
+1D57C ; FC_NFKC; 0071 # L& MATHEMATICAL BOLD FRAKTUR CAPITAL Q
+1D57D ; FC_NFKC; 0072 # L& MATHEMATICAL BOLD FRAKTUR CAPITAL R
+1D57E ; FC_NFKC; 0073 # L& MATHEMATICAL BOLD FRAKTUR CAPITAL S
+1D57F ; FC_NFKC; 0074 # L& MATHEMATICAL BOLD FRAKTUR CAPITAL T
+1D580 ; FC_NFKC; 0075 # L& MATHEMATICAL BOLD FRAKTUR CAPITAL U
+1D581 ; FC_NFKC; 0076 # L& MATHEMATICAL BOLD FRAKTUR CAPITAL V
+1D582 ; FC_NFKC; 0077 # L& MATHEMATICAL BOLD FRAKTUR CAPITAL W
+1D583 ; FC_NFKC; 0078 # L& MATHEMATICAL BOLD FRAKTUR CAPITAL X
+1D584 ; FC_NFKC; 0079 # L& MATHEMATICAL BOLD FRAKTUR CAPITAL Y
+1D585 ; FC_NFKC; 007A # L& MATHEMATICAL BOLD FRAKTUR CAPITAL Z
+1D5A0 ; FC_NFKC; 0061 # L& MATHEMATICAL SANS-SERIF CAPITAL A
+1D5A1 ; FC_NFKC; 0062 # L& MATHEMATICAL SANS-SERIF CAPITAL B
+1D5A2 ; FC_NFKC; 0063 # L& MATHEMATICAL SANS-SERIF CAPITAL C
+1D5A3 ; FC_NFKC; 0064 # L& MATHEMATICAL SANS-SERIF CAPITAL D
+1D5A4 ; FC_NFKC; 0065 # L& MATHEMATICAL SANS-SERIF CAPITAL E
+1D5A5 ; FC_NFKC; 0066 # L& MATHEMATICAL SANS-SERIF CAPITAL F
+1D5A6 ; FC_NFKC; 0067 # L& MATHEMATICAL SANS-SERIF CAPITAL G
+1D5A7 ; FC_NFKC; 0068 # L& MATHEMATICAL SANS-SERIF CAPITAL H
+1D5A8 ; FC_NFKC; 0069 # L& MATHEMATICAL SANS-SERIF CAPITAL I
+1D5A9 ; FC_NFKC; 006A # L& MATHEMATICAL SANS-SERIF CAPITAL J
+1D5AA ; FC_NFKC; 006B # L& MATHEMATICAL SANS-SERIF CAPITAL K
+1D5AB ; FC_NFKC; 006C # L& MATHEMATICAL SANS-SERIF CAPITAL L
+1D5AC ; FC_NFKC; 006D # L& MATHEMATICAL SANS-SERIF CAPITAL M
+1D5AD ; FC_NFKC; 006E # L& MATHEMATICAL SANS-SERIF CAPITAL N
+1D5AE ; FC_NFKC; 006F # L& MATHEMATICAL SANS-SERIF CAPITAL O
+1D5AF ; FC_NFKC; 0070 # L& MATHEMATICAL SANS-SERIF CAPITAL P
+1D5B0 ; FC_NFKC; 0071 # L& MATHEMATICAL SANS-SERIF CAPITAL Q
+1D5B1 ; FC_NFKC; 0072 # L& MATHEMATICAL SANS-SERIF CAPITAL R
+1D5B2 ; FC_NFKC; 0073 # L& MATHEMATICAL SANS-SERIF CAPITAL S
+1D5B3 ; FC_NFKC; 0074 # L& MATHEMATICAL SANS-SERIF CAPITAL T
+1D5B4 ; FC_NFKC; 0075 # L& MATHEMATICAL SANS-SERIF CAPITAL U
+1D5B5 ; FC_NFKC; 0076 # L& MATHEMATICAL SANS-SERIF CAPITAL V
+1D5B6 ; FC_NFKC; 0077 # L& MATHEMATICAL SANS-SERIF CAPITAL W
+1D5B7 ; FC_NFKC; 0078 # L& MATHEMATICAL SANS-SERIF CAPITAL X
+1D5B8 ; FC_NFKC; 0079 # L& MATHEMATICAL SANS-SERIF CAPITAL Y
+1D5B9 ; FC_NFKC; 007A # L& MATHEMATICAL SANS-SERIF CAPITAL Z
+1D5D4 ; FC_NFKC; 0061 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL A
+1D5D5 ; FC_NFKC; 0062 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL B
+1D5D6 ; FC_NFKC; 0063 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL C
+1D5D7 ; FC_NFKC; 0064 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL D
+1D5D8 ; FC_NFKC; 0065 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL E
+1D5D9 ; FC_NFKC; 0066 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL F
+1D5DA ; FC_NFKC; 0067 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL G
+1D5DB ; FC_NFKC; 0068 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL H
+1D5DC ; FC_NFKC; 0069 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL I
+1D5DD ; FC_NFKC; 006A # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL J
+1D5DE ; FC_NFKC; 006B # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL K
+1D5DF ; FC_NFKC; 006C # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL L
+1D5E0 ; FC_NFKC; 006D # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL M
+1D5E1 ; FC_NFKC; 006E # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL N
+1D5E2 ; FC_NFKC; 006F # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL O
+1D5E3 ; FC_NFKC; 0070 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL P
+1D5E4 ; FC_NFKC; 0071 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL Q
+1D5E5 ; FC_NFKC; 0072 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL R
+1D5E6 ; FC_NFKC; 0073 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL S
+1D5E7 ; FC_NFKC; 0074 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL T
+1D5E8 ; FC_NFKC; 0075 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL U
+1D5E9 ; FC_NFKC; 0076 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL V
+1D5EA ; FC_NFKC; 0077 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL W
+1D5EB ; FC_NFKC; 0078 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL X
+1D5EC ; FC_NFKC; 0079 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL Y
+1D5ED ; FC_NFKC; 007A # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL Z
+1D608 ; FC_NFKC; 0061 # L& MATHEMATICAL SANS-SERIF ITALIC CAPITAL A
+1D609 ; FC_NFKC; 0062 # L& MATHEMATICAL SANS-SERIF ITALIC CAPITAL B
+1D60A ; FC_NFKC; 0063 # L& MATHEMATICAL SANS-SERIF ITALIC CAPITAL C
+1D60B ; FC_NFKC; 0064 # L& MATHEMATICAL SANS-SERIF ITALIC CAPITAL D
+1D60C ; FC_NFKC; 0065 # L& MATHEMATICAL SANS-SERIF ITALIC CAPITAL E
+1D60D ; FC_NFKC; 0066 # L& MATHEMATICAL SANS-SERIF ITALIC CAPITAL F
+1D60E ; FC_NFKC; 0067 # L& MATHEMATICAL SANS-SERIF ITALIC CAPITAL G
+1D60F ; FC_NFKC; 0068 # L& MATHEMATICAL SANS-SERIF ITALIC CAPITAL H
+1D610 ; FC_NFKC; 0069 # L& MATHEMATICAL SANS-SERIF ITALIC CAPITAL I
+1D611 ; FC_NFKC; 006A # L& MATHEMATICAL SANS-SERIF ITALIC CAPITAL J
+1D612 ; FC_NFKC; 006B # L& MATHEMATICAL SANS-SERIF ITALIC CAPITAL K
+1D613 ; FC_NFKC; 006C # L& MATHEMATICAL SANS-SERIF ITALIC CAPITAL L
+1D614 ; FC_NFKC; 006D # L& MATHEMATICAL SANS-SERIF ITALIC CAPITAL M
+1D615 ; FC_NFKC; 006E # L& MATHEMATICAL SANS-SERIF ITALIC CAPITAL N
+1D616 ; FC_NFKC; 006F # L& MATHEMATICAL SANS-SERIF ITALIC CAPITAL O
+1D617 ; FC_NFKC; 0070 # L& MATHEMATICAL SANS-SERIF ITALIC CAPITAL P
+1D618 ; FC_NFKC; 0071 # L& MATHEMATICAL SANS-SERIF ITALIC CAPITAL Q
+1D619 ; FC_NFKC; 0072 # L& MATHEMATICAL SANS-SERIF ITALIC CAPITAL R
+1D61A ; FC_NFKC; 0073 # L& MATHEMATICAL SANS-SERIF ITALIC CAPITAL S
+1D61B ; FC_NFKC; 0074 # L& MATHEMATICAL SANS-SERIF ITALIC CAPITAL T
+1D61C ; FC_NFKC; 0075 # L& MATHEMATICAL SANS-SERIF ITALIC CAPITAL U
+1D61D ; FC_NFKC; 0076 # L& MATHEMATICAL SANS-SERIF ITALIC CAPITAL V
+1D61E ; FC_NFKC; 0077 # L& MATHEMATICAL SANS-SERIF ITALIC CAPITAL W
+1D61F ; FC_NFKC; 0078 # L& MATHEMATICAL SANS-SERIF ITALIC CAPITAL X
+1D620 ; FC_NFKC; 0079 # L& MATHEMATICAL SANS-SERIF ITALIC CAPITAL Y
+1D621 ; FC_NFKC; 007A # L& MATHEMATICAL SANS-SERIF ITALIC CAPITAL Z
+1D63C ; FC_NFKC; 0061 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL A
+1D63D ; FC_NFKC; 0062 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL B
+1D63E ; FC_NFKC; 0063 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL C
+1D63F ; FC_NFKC; 0064 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL D
+1D640 ; FC_NFKC; 0065 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL E
+1D641 ; FC_NFKC; 0066 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL F
+1D642 ; FC_NFKC; 0067 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL G
+1D643 ; FC_NFKC; 0068 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL H
+1D644 ; FC_NFKC; 0069 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL I
+1D645 ; FC_NFKC; 006A # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL J
+1D646 ; FC_NFKC; 006B # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL K
+1D647 ; FC_NFKC; 006C # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL L
+1D648 ; FC_NFKC; 006D # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL M
+1D649 ; FC_NFKC; 006E # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL N
+1D64A ; FC_NFKC; 006F # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL O
+1D64B ; FC_NFKC; 0070 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL P
+1D64C ; FC_NFKC; 0071 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Q
+1D64D ; FC_NFKC; 0072 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL R
+1D64E ; FC_NFKC; 0073 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL S
+1D64F ; FC_NFKC; 0074 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL T
+1D650 ; FC_NFKC; 0075 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL U
+1D651 ; FC_NFKC; 0076 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL V
+1D652 ; FC_NFKC; 0077 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL W
+1D653 ; FC_NFKC; 0078 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL X
+1D654 ; FC_NFKC; 0079 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Y
+1D655 ; FC_NFKC; 007A # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Z
+1D670 ; FC_NFKC; 0061 # L& MATHEMATICAL MONOSPACE CAPITAL A
+1D671 ; FC_NFKC; 0062 # L& MATHEMATICAL MONOSPACE CAPITAL B
+1D672 ; FC_NFKC; 0063 # L& MATHEMATICAL MONOSPACE CAPITAL C
+1D673 ; FC_NFKC; 0064 # L& MATHEMATICAL MONOSPACE CAPITAL D
+1D674 ; FC_NFKC; 0065 # L& MATHEMATICAL MONOSPACE CAPITAL E
+1D675 ; FC_NFKC; 0066 # L& MATHEMATICAL MONOSPACE CAPITAL F
+1D676 ; FC_NFKC; 0067 # L& MATHEMATICAL MONOSPACE CAPITAL G
+1D677 ; FC_NFKC; 0068 # L& MATHEMATICAL MONOSPACE CAPITAL H
+1D678 ; FC_NFKC; 0069 # L& MATHEMATICAL MONOSPACE CAPITAL I
+1D679 ; FC_NFKC; 006A # L& MATHEMATICAL MONOSPACE CAPITAL J
+1D67A ; FC_NFKC; 006B # L& MATHEMATICAL MONOSPACE CAPITAL K
+1D67B ; FC_NFKC; 006C # L& MATHEMATICAL MONOSPACE CAPITAL L
+1D67C ; FC_NFKC; 006D # L& MATHEMATICAL MONOSPACE CAPITAL M
+1D67D ; FC_NFKC; 006E # L& MATHEMATICAL MONOSPACE CAPITAL N
+1D67E ; FC_NFKC; 006F # L& MATHEMATICAL MONOSPACE CAPITAL O
+1D67F ; FC_NFKC; 0070 # L& MATHEMATICAL MONOSPACE CAPITAL P
+1D680 ; FC_NFKC; 0071 # L& MATHEMATICAL MONOSPACE CAPITAL Q
+1D681 ; FC_NFKC; 0072 # L& MATHEMATICAL MONOSPACE CAPITAL R
+1D682 ; FC_NFKC; 0073 # L& MATHEMATICAL MONOSPACE CAPITAL S
+1D683 ; FC_NFKC; 0074 # L& MATHEMATICAL MONOSPACE CAPITAL T
+1D684 ; FC_NFKC; 0075 # L& MATHEMATICAL MONOSPACE CAPITAL U
+1D685 ; FC_NFKC; 0076 # L& MATHEMATICAL MONOSPACE CAPITAL V
+1D686 ; FC_NFKC; 0077 # L& MATHEMATICAL MONOSPACE CAPITAL W
+1D687 ; FC_NFKC; 0078 # L& MATHEMATICAL MONOSPACE CAPITAL X
+1D688 ; FC_NFKC; 0079 # L& MATHEMATICAL MONOSPACE CAPITAL Y
+1D689 ; FC_NFKC; 007A # L& MATHEMATICAL MONOSPACE CAPITAL Z
+1D6A8 ; FC_NFKC; 03B1 # L& MATHEMATICAL BOLD CAPITAL ALPHA
+1D6A9 ; FC_NFKC; 03B2 # L& MATHEMATICAL BOLD CAPITAL BETA
+1D6AA ; FC_NFKC; 03B3 # L& MATHEMATICAL BOLD CAPITAL GAMMA
+1D6AB ; FC_NFKC; 03B4 # L& MATHEMATICAL BOLD CAPITAL DELTA
+1D6AC ; FC_NFKC; 03B5 # L& MATHEMATICAL BOLD CAPITAL EPSILON
+1D6AD ; FC_NFKC; 03B6 # L& MATHEMATICAL BOLD CAPITAL ZETA
+1D6AE ; FC_NFKC; 03B7 # L& MATHEMATICAL BOLD CAPITAL ETA
+1D6AF ; FC_NFKC; 03B8 # L& MATHEMATICAL BOLD CAPITAL THETA
+1D6B0 ; FC_NFKC; 03B9 # L& MATHEMATICAL BOLD CAPITAL IOTA
+1D6B1 ; FC_NFKC; 03BA # L& MATHEMATICAL BOLD CAPITAL KAPPA
+1D6B2 ; FC_NFKC; 03BB # L& MATHEMATICAL BOLD CAPITAL LAMDA
+1D6B3 ; FC_NFKC; 03BC # L& MATHEMATICAL BOLD CAPITAL MU
+1D6B4 ; FC_NFKC; 03BD # L& MATHEMATICAL BOLD CAPITAL NU
+1D6B5 ; FC_NFKC; 03BE # L& MATHEMATICAL BOLD CAPITAL XI
+1D6B6 ; FC_NFKC; 03BF # L& MATHEMATICAL BOLD CAPITAL OMICRON
+1D6B7 ; FC_NFKC; 03C0 # L& MATHEMATICAL BOLD CAPITAL PI
+1D6B8 ; FC_NFKC; 03C1 # L& MATHEMATICAL BOLD CAPITAL RHO
+1D6B9 ; FC_NFKC; 03B8 # L& MATHEMATICAL BOLD CAPITAL THETA SYMBOL
+1D6BA ; FC_NFKC; 03C3 # L& MATHEMATICAL BOLD CAPITAL SIGMA
+1D6BB ; FC_NFKC; 03C4 # L& MATHEMATICAL BOLD CAPITAL TAU
+1D6BC ; FC_NFKC; 03C5 # L& MATHEMATICAL BOLD CAPITAL UPSILON
+1D6BD ; FC_NFKC; 03C6 # L& MATHEMATICAL BOLD CAPITAL PHI
+1D6BE ; FC_NFKC; 03C7 # L& MATHEMATICAL BOLD CAPITAL CHI
+1D6BF ; FC_NFKC; 03C8 # L& MATHEMATICAL BOLD CAPITAL PSI
+1D6C0 ; FC_NFKC; 03C9 # L& MATHEMATICAL BOLD CAPITAL OMEGA
+1D6D3 ; FC_NFKC; 03C3 # L& MATHEMATICAL BOLD SMALL FINAL SIGMA
+1D6E2 ; FC_NFKC; 03B1 # L& MATHEMATICAL ITALIC CAPITAL ALPHA
+1D6E3 ; FC_NFKC; 03B2 # L& MATHEMATICAL ITALIC CAPITAL BETA
+1D6E4 ; FC_NFKC; 03B3 # L& MATHEMATICAL ITALIC CAPITAL GAMMA
+1D6E5 ; FC_NFKC; 03B4 # L& MATHEMATICAL ITALIC CAPITAL DELTA
+1D6E6 ; FC_NFKC; 03B5 # L& MATHEMATICAL ITALIC CAPITAL EPSILON
+1D6E7 ; FC_NFKC; 03B6 # L& MATHEMATICAL ITALIC CAPITAL ZETA
+1D6E8 ; FC_NFKC; 03B7 # L& MATHEMATICAL ITALIC CAPITAL ETA
+1D6E9 ; FC_NFKC; 03B8 # L& MATHEMATICAL ITALIC CAPITAL THETA
+1D6EA ; FC_NFKC; 03B9 # L& MATHEMATICAL ITALIC CAPITAL IOTA
+1D6EB ; FC_NFKC; 03BA # L& MATHEMATICAL ITALIC CAPITAL KAPPA
+1D6EC ; FC_NFKC; 03BB # L& MATHEMATICAL ITALIC CAPITAL LAMDA
+1D6ED ; FC_NFKC; 03BC # L& MATHEMATICAL ITALIC CAPITAL MU
+1D6EE ; FC_NFKC; 03BD # L& MATHEMATICAL ITALIC CAPITAL NU
+1D6EF ; FC_NFKC; 03BE # L& MATHEMATICAL ITALIC CAPITAL XI
+1D6F0 ; FC_NFKC; 03BF # L& MATHEMATICAL ITALIC CAPITAL OMICRON
+1D6F1 ; FC_NFKC; 03C0 # L& MATHEMATICAL ITALIC CAPITAL PI
+1D6F2 ; FC_NFKC; 03C1 # L& MATHEMATICAL ITALIC CAPITAL RHO
+1D6F3 ; FC_NFKC; 03B8 # L& MATHEMATICAL ITALIC CAPITAL THETA SYMBOL
+1D6F4 ; FC_NFKC; 03C3 # L& MATHEMATICAL ITALIC CAPITAL SIGMA
+1D6F5 ; FC_NFKC; 03C4 # L& MATHEMATICAL ITALIC CAPITAL TAU
+1D6F6 ; FC_NFKC; 03C5 # L& MATHEMATICAL ITALIC CAPITAL UPSILON
+1D6F7 ; FC_NFKC; 03C6 # L& MATHEMATICAL ITALIC CAPITAL PHI
+1D6F8 ; FC_NFKC; 03C7 # L& MATHEMATICAL ITALIC CAPITAL CHI
+1D6F9 ; FC_NFKC; 03C8 # L& MATHEMATICAL ITALIC CAPITAL PSI
+1D6FA ; FC_NFKC; 03C9 # L& MATHEMATICAL ITALIC CAPITAL OMEGA
+1D70D ; FC_NFKC; 03C3 # L& MATHEMATICAL ITALIC SMALL FINAL SIGMA
+1D71C ; FC_NFKC; 03B1 # L& MATHEMATICAL BOLD ITALIC CAPITAL ALPHA
+1D71D ; FC_NFKC; 03B2 # L& MATHEMATICAL BOLD ITALIC CAPITAL BETA
+1D71E ; FC_NFKC; 03B3 # L& MATHEMATICAL BOLD ITALIC CAPITAL GAMMA
+1D71F ; FC_NFKC; 03B4 # L& MATHEMATICAL BOLD ITALIC CAPITAL DELTA
+1D720 ; FC_NFKC; 03B5 # L& MATHEMATICAL BOLD ITALIC CAPITAL EPSILON
+1D721 ; FC_NFKC; 03B6 # L& MATHEMATICAL BOLD ITALIC CAPITAL ZETA
+1D722 ; FC_NFKC; 03B7 # L& MATHEMATICAL BOLD ITALIC CAPITAL ETA
+1D723 ; FC_NFKC; 03B8 # L& MATHEMATICAL BOLD ITALIC CAPITAL THETA
+1D724 ; FC_NFKC; 03B9 # L& MATHEMATICAL BOLD ITALIC CAPITAL IOTA
+1D725 ; FC_NFKC; 03BA # L& MATHEMATICAL BOLD ITALIC CAPITAL KAPPA
+1D726 ; FC_NFKC; 03BB # L& MATHEMATICAL BOLD ITALIC CAPITAL LAMDA
+1D727 ; FC_NFKC; 03BC # L& MATHEMATICAL BOLD ITALIC CAPITAL MU
+1D728 ; FC_NFKC; 03BD # L& MATHEMATICAL BOLD ITALIC CAPITAL NU
+1D729 ; FC_NFKC; 03BE # L& MATHEMATICAL BOLD ITALIC CAPITAL XI
+1D72A ; FC_NFKC; 03BF # L& MATHEMATICAL BOLD ITALIC CAPITAL OMICRON
+1D72B ; FC_NFKC; 03C0 # L& MATHEMATICAL BOLD ITALIC CAPITAL PI
+1D72C ; FC_NFKC; 03C1 # L& MATHEMATICAL BOLD ITALIC CAPITAL RHO
+1D72D ; FC_NFKC; 03B8 # L& MATHEMATICAL BOLD ITALIC CAPITAL THETA SYMBOL
+1D72E ; FC_NFKC; 03C3 # L& MATHEMATICAL BOLD ITALIC CAPITAL SIGMA
+1D72F ; FC_NFKC; 03C4 # L& MATHEMATICAL BOLD ITALIC CAPITAL TAU
+1D730 ; FC_NFKC; 03C5 # L& MATHEMATICAL BOLD ITALIC CAPITAL UPSILON
+1D731 ; FC_NFKC; 03C6 # L& MATHEMATICAL BOLD ITALIC CAPITAL PHI
+1D732 ; FC_NFKC; 03C7 # L& MATHEMATICAL BOLD ITALIC CAPITAL CHI
+1D733 ; FC_NFKC; 03C8 # L& MATHEMATICAL BOLD ITALIC CAPITAL PSI
+1D734 ; FC_NFKC; 03C9 # L& MATHEMATICAL BOLD ITALIC CAPITAL OMEGA
+1D747 ; FC_NFKC; 03C3 # L& MATHEMATICAL BOLD ITALIC SMALL FINAL SIGMA
+1D756 ; FC_NFKC; 03B1 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL ALPHA
+1D757 ; FC_NFKC; 03B2 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL BETA
+1D758 ; FC_NFKC; 03B3 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL GAMMA
+1D759 ; FC_NFKC; 03B4 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL DELTA
+1D75A ; FC_NFKC; 03B5 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL EPSILON
+1D75B ; FC_NFKC; 03B6 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL ZETA
+1D75C ; FC_NFKC; 03B7 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL ETA
+1D75D ; FC_NFKC; 03B8 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA
+1D75E ; FC_NFKC; 03B9 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL IOTA
+1D75F ; FC_NFKC; 03BA # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL KAPPA
+1D760 ; FC_NFKC; 03BB # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL LAMDA
+1D761 ; FC_NFKC; 03BC # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL MU
+1D762 ; FC_NFKC; 03BD # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL NU
+1D763 ; FC_NFKC; 03BE # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL XI
+1D764 ; FC_NFKC; 03BF # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL OMICRON
+1D765 ; FC_NFKC; 03C0 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL PI
+1D766 ; FC_NFKC; 03C1 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL RHO
+1D767 ; FC_NFKC; 03B8 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA SYMBOL
+1D768 ; FC_NFKC; 03C3 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL SIGMA
+1D769 ; FC_NFKC; 03C4 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL TAU
+1D76A ; FC_NFKC; 03C5 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL UPSILON
+1D76B ; FC_NFKC; 03C6 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL PHI
+1D76C ; FC_NFKC; 03C7 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL CHI
+1D76D ; FC_NFKC; 03C8 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL PSI
+1D76E ; FC_NFKC; 03C9 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA
+1D781 ; FC_NFKC; 03C3 # L& MATHEMATICAL SANS-SERIF BOLD SMALL FINAL SIGMA
+1D790 ; FC_NFKC; 03B1 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ALPHA
+1D791 ; FC_NFKC; 03B2 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL BETA
+1D792 ; FC_NFKC; 03B3 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL GAMMA
+1D793 ; FC_NFKC; 03B4 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL DELTA
+1D794 ; FC_NFKC; 03B5 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL EPSILON
+1D795 ; FC_NFKC; 03B6 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ZETA
+1D796 ; FC_NFKC; 03B7 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ETA
+1D797 ; FC_NFKC; 03B8 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA
+1D798 ; FC_NFKC; 03B9 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL IOTA
+1D799 ; FC_NFKC; 03BA # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL KAPPA
+1D79A ; FC_NFKC; 03BB # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL LAMDA
+1D79B ; FC_NFKC; 03BC # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL MU
+1D79C ; FC_NFKC; 03BD # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL NU
+1D79D ; FC_NFKC; 03BE # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL XI
+1D79E ; FC_NFKC; 03BF # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMICRON
+1D79F ; FC_NFKC; 03C0 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PI
+1D7A0 ; FC_NFKC; 03C1 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL RHO
+1D7A1 ; FC_NFKC; 03B8 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA SYMBOL
+1D7A2 ; FC_NFKC; 03C3 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL SIGMA
+1D7A3 ; FC_NFKC; 03C4 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL TAU
+1D7A4 ; FC_NFKC; 03C5 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL UPSILON
+1D7A5 ; FC_NFKC; 03C6 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PHI
+1D7A6 ; FC_NFKC; 03C7 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL CHI
+1D7A7 ; FC_NFKC; 03C8 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PSI
+1D7A8 ; FC_NFKC; 03C9 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA
+1D7BB ; FC_NFKC; 03C3 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL FINAL SIGMA
+1D7CA ; FC_NFKC; 03DD # L& MATHEMATICAL BOLD CAPITAL DIGAMMA
+
+# Total code points: 565
+
+# ================================================
+
+# Derived Property: Full_Composition_Exclusion
+# Generated from: Composition Exclusions + Singletons + Non-Starter Decompositions
+
+0340..0341 ; Full_Composition_Exclusion # Mn [2] COMBINING GRAVE TONE MARK..COMBINING ACUTE TONE MARK
+0343..0344 ; Full_Composition_Exclusion # Mn [2] COMBINING GREEK KORONIS..COMBINING GREEK DIALYTIKA TONOS
+0374 ; Full_Composition_Exclusion # Sk GREEK NUMERAL SIGN
+037E ; Full_Composition_Exclusion # Po GREEK QUESTION MARK
+0387 ; Full_Composition_Exclusion # Po GREEK ANO TELEIA
+0958..095F ; Full_Composition_Exclusion # Lo [8] DEVANAGARI LETTER QA..DEVANAGARI LETTER YYA
+09DC..09DD ; Full_Composition_Exclusion # Lo [2] BENGALI LETTER RRA..BENGALI LETTER RHA
+09DF ; Full_Composition_Exclusion # Lo BENGALI LETTER YYA
+0A33 ; Full_Composition_Exclusion # Lo GURMUKHI LETTER LLA
+0A36 ; Full_Composition_Exclusion # Lo GURMUKHI LETTER SHA
+0A59..0A5B ; Full_Composition_Exclusion # Lo [3] GURMUKHI LETTER KHHA..GURMUKHI LETTER ZA
+0A5E ; Full_Composition_Exclusion # Lo GURMUKHI LETTER FA
+0B5C..0B5D ; Full_Composition_Exclusion # Lo [2] ORIYA LETTER RRA..ORIYA LETTER RHA
+0F43 ; Full_Composition_Exclusion # Lo TIBETAN LETTER GHA
+0F4D ; Full_Composition_Exclusion # Lo TIBETAN LETTER DDHA
+0F52 ; Full_Composition_Exclusion # Lo TIBETAN LETTER DHA
+0F57 ; Full_Composition_Exclusion # Lo TIBETAN LETTER BHA
+0F5C ; Full_Composition_Exclusion # Lo TIBETAN LETTER DZHA
+0F69 ; Full_Composition_Exclusion # Lo TIBETAN LETTER KSSA
+0F73 ; Full_Composition_Exclusion # Mn TIBETAN VOWEL SIGN II
+0F75..0F76 ; Full_Composition_Exclusion # Mn [2] TIBETAN VOWEL SIGN UU..TIBETAN VOWEL SIGN VOCALIC R
+0F78 ; Full_Composition_Exclusion # Mn TIBETAN VOWEL SIGN VOCALIC L
+0F81 ; Full_Composition_Exclusion # Mn TIBETAN VOWEL SIGN REVERSED II
+0F93 ; Full_Composition_Exclusion # Mn TIBETAN SUBJOINED LETTER GHA
+0F9D ; Full_Composition_Exclusion # Mn TIBETAN SUBJOINED LETTER DDHA
+0FA2 ; Full_Composition_Exclusion # Mn TIBETAN SUBJOINED LETTER DHA
+0FA7 ; Full_Composition_Exclusion # Mn TIBETAN SUBJOINED LETTER BHA
+0FAC ; Full_Composition_Exclusion # Mn TIBETAN SUBJOINED LETTER DZHA
+0FB9 ; Full_Composition_Exclusion # Mn TIBETAN SUBJOINED LETTER KSSA
+1F71 ; Full_Composition_Exclusion # L& GREEK SMALL LETTER ALPHA WITH OXIA
+1F73 ; Full_Composition_Exclusion # L& GREEK SMALL LETTER EPSILON WITH OXIA
+1F75 ; Full_Composition_Exclusion # L& GREEK SMALL LETTER ETA WITH OXIA
+1F77 ; Full_Composition_Exclusion # L& GREEK SMALL LETTER IOTA WITH OXIA
+1F79 ; Full_Composition_Exclusion # L& GREEK SMALL LETTER OMICRON WITH OXIA
+1F7B ; Full_Composition_Exclusion # L& GREEK SMALL LETTER UPSILON WITH OXIA
+1F7D ; Full_Composition_Exclusion # L& GREEK SMALL LETTER OMEGA WITH OXIA
+1FBB ; Full_Composition_Exclusion # L& GREEK CAPITAL LETTER ALPHA WITH OXIA
+1FBE ; Full_Composition_Exclusion # L& GREEK PROSGEGRAMMENI
+1FC9 ; Full_Composition_Exclusion # L& GREEK CAPITAL LETTER EPSILON WITH OXIA
+1FCB ; Full_Composition_Exclusion # L& GREEK CAPITAL LETTER ETA WITH OXIA
+1FD3 ; Full_Composition_Exclusion # L& GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA
+1FDB ; Full_Composition_Exclusion # L& GREEK CAPITAL LETTER IOTA WITH OXIA
+1FE3 ; Full_Composition_Exclusion # L& GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA
+1FEB ; Full_Composition_Exclusion # L& GREEK CAPITAL LETTER UPSILON WITH OXIA
+1FEE..1FEF ; Full_Composition_Exclusion # Sk [2] GREEK DIALYTIKA AND OXIA..GREEK VARIA
+1FF9 ; Full_Composition_Exclusion # L& GREEK CAPITAL LETTER OMICRON WITH OXIA
+1FFB ; Full_Composition_Exclusion # L& GREEK CAPITAL LETTER OMEGA WITH OXIA
+1FFD ; Full_Composition_Exclusion # Sk GREEK OXIA
+2000..2001 ; Full_Composition_Exclusion # Zs [2] EN QUAD..EM QUAD
+2126 ; Full_Composition_Exclusion # L& OHM SIGN
+212A..212B ; Full_Composition_Exclusion # L& [2] KELVIN SIGN..ANGSTROM SIGN
+2329 ; Full_Composition_Exclusion # Ps LEFT-POINTING ANGLE BRACKET
+232A ; Full_Composition_Exclusion # Pe RIGHT-POINTING ANGLE BRACKET
+2ADC ; Full_Composition_Exclusion # Sm FORKING
+F900..FA0D ; Full_Composition_Exclusion # Lo [270] CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA0D
+FA10 ; Full_Composition_Exclusion # Lo CJK COMPATIBILITY IDEOGRAPH-FA10
+FA12 ; Full_Composition_Exclusion # Lo CJK COMPATIBILITY IDEOGRAPH-FA12
+FA15..FA1E ; Full_Composition_Exclusion # Lo [10] CJK COMPATIBILITY IDEOGRAPH-FA15..CJK COMPATIBILITY IDEOGRAPH-FA1E
+FA20 ; Full_Composition_Exclusion # Lo CJK COMPATIBILITY IDEOGRAPH-FA20
+FA22 ; Full_Composition_Exclusion # Lo CJK COMPATIBILITY IDEOGRAPH-FA22
+FA25..FA26 ; Full_Composition_Exclusion # Lo [2] CJK COMPATIBILITY IDEOGRAPH-FA25..CJK COMPATIBILITY IDEOGRAPH-FA26
+FA2A..FA2D ; Full_Composition_Exclusion # Lo [4] CJK COMPATIBILITY IDEOGRAPH-FA2A..CJK COMPATIBILITY IDEOGRAPH-FA2D
+FA30..FA6A ; Full_Composition_Exclusion # Lo [59] CJK COMPATIBILITY IDEOGRAPH-FA30..CJK COMPATIBILITY IDEOGRAPH-FA6A
+FA70..FAD9 ; Full_Composition_Exclusion # Lo [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COMPATIBILITY IDEOGRAPH-FAD9
+FB1D ; Full_Composition_Exclusion # Lo HEBREW LETTER YOD WITH HIRIQ
+FB1F ; Full_Composition_Exclusion # Lo HEBREW LIGATURE YIDDISH YOD YOD PATAH
+FB2A..FB36 ; Full_Composition_Exclusion # Lo [13] HEBREW LETTER SHIN WITH SHIN DOT..HEBREW LETTER ZAYIN WITH DAGESH
+FB38..FB3C ; Full_Composition_Exclusion # Lo [5] HEBREW LETTER TET WITH DAGESH..HEBREW LETTER LAMED WITH DAGESH
+FB3E ; Full_Composition_Exclusion # Lo HEBREW LETTER MEM WITH DAGESH
+FB40..FB41 ; Full_Composition_Exclusion # Lo [2] HEBREW LETTER NUN WITH DAGESH..HEBREW LETTER SAMEKH WITH DAGESH
+FB43..FB44 ; Full_Composition_Exclusion # Lo [2] HEBREW LETTER FINAL PE WITH DAGESH..HEBREW LETTER PE WITH DAGESH
+FB46..FB4E ; Full_Composition_Exclusion # Lo [9] HEBREW LETTER TSADI WITH DAGESH..HEBREW LETTER PE WITH RAFE
+1D15E..1D164 ; Full_Composition_Exclusion # So [7] MUSICAL SYMBOL HALF NOTE..MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
+1D1BB..1D1C0 ; Full_Composition_Exclusion # So [6] MUSICAL SYMBOL MINIMA..MUSICAL SYMBOL FUSA BLACK
+2F800..2FA1D ; Full_Composition_Exclusion # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
+
+# Total code points: 1115
+
+# ================================================
+
+# Property: NFD_Quick_Check
+
+# All code points not explicitly listed for NFD_Quick_Check
+# have the value Yes (Y).
+
+# @missing: 0000..10FFFF; NFD_QC; Yes
+
+# ================================================
+
+# NFD_Quick_Check=No
+
+00C0..00C5 ; NFD_QC; N # L& [6] LATIN CAPITAL LETTER A WITH GRAVE..LATIN CAPITAL LETTER A WITH RING ABOVE
+00C7..00CF ; NFD_QC; N # L& [9] LATIN CAPITAL LETTER C WITH CEDILLA..LATIN CAPITAL LETTER I WITH DIAERESIS
+00D1..00D6 ; NFD_QC; N # L& [6] LATIN CAPITAL LETTER N WITH TILDE..LATIN CAPITAL LETTER O WITH DIAERESIS
+00D9..00DD ; NFD_QC; N # L& [5] LATIN CAPITAL LETTER U WITH GRAVE..LATIN CAPITAL LETTER Y WITH ACUTE
+00E0..00E5 ; NFD_QC; N # L& [6] LATIN SMALL LETTER A WITH GRAVE..LATIN SMALL LETTER A WITH RING ABOVE
+00E7..00EF ; NFD_QC; N # L& [9] LATIN SMALL LETTER C WITH CEDILLA..LATIN SMALL LETTER I WITH DIAERESIS
+00F1..00F6 ; NFD_QC; N # L& [6] LATIN SMALL LETTER N WITH TILDE..LATIN SMALL LETTER O WITH DIAERESIS
+00F9..00FD ; NFD_QC; N # L& [5] LATIN SMALL LETTER U WITH GRAVE..LATIN SMALL LETTER Y WITH ACUTE
+00FF..010F ; NFD_QC; N # L& [17] LATIN SMALL LETTER Y WITH DIAERESIS..LATIN SMALL LETTER D WITH CARON
+0112..0125 ; NFD_QC; N # L& [20] LATIN CAPITAL LETTER E WITH MACRON..LATIN SMALL LETTER H WITH CIRCUMFLEX
+0128..0130 ; NFD_QC; N # L& [9] LATIN CAPITAL LETTER I WITH TILDE..LATIN CAPITAL LETTER I WITH DOT ABOVE
+0134..0137 ; NFD_QC; N # L& [4] LATIN CAPITAL LETTER J WITH CIRCUMFLEX..LATIN SMALL LETTER K WITH CEDILLA
+0139..013E ; NFD_QC; N # L& [6] LATIN CAPITAL LETTER L WITH ACUTE..LATIN SMALL LETTER L WITH CARON
+0143..0148 ; NFD_QC; N # L& [6] LATIN CAPITAL LETTER N WITH ACUTE..LATIN SMALL LETTER N WITH CARON
+014C..0151 ; NFD_QC; N # L& [6] LATIN CAPITAL LETTER O WITH MACRON..LATIN SMALL LETTER O WITH DOUBLE ACUTE
+0154..0165 ; NFD_QC; N # L& [18] LATIN CAPITAL LETTER R WITH ACUTE..LATIN SMALL LETTER T WITH CARON
+0168..017E ; NFD_QC; N # L& [23] LATIN CAPITAL LETTER U WITH TILDE..LATIN SMALL LETTER Z WITH CARON
+01A0..01A1 ; NFD_QC; N # L& [2] LATIN CAPITAL LETTER O WITH HORN..LATIN SMALL LETTER O WITH HORN
+01AF..01B0 ; NFD_QC; N # L& [2] LATIN CAPITAL LETTER U WITH HORN..LATIN SMALL LETTER U WITH HORN
+01CD..01DC ; NFD_QC; N # L& [16] LATIN CAPITAL LETTER A WITH CARON..LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+01DE..01E3 ; NFD_QC; N # L& [6] LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON..LATIN SMALL LETTER AE WITH MACRON
+01E6..01F0 ; NFD_QC; N # L& [11] LATIN CAPITAL LETTER G WITH CARON..LATIN SMALL LETTER J WITH CARON
+01F4..01F5 ; NFD_QC; N # L& [2] LATIN CAPITAL LETTER G WITH ACUTE..LATIN SMALL LETTER G WITH ACUTE
+01F8..021B ; NFD_QC; N # L& [36] LATIN CAPITAL LETTER N WITH GRAVE..LATIN SMALL LETTER T WITH COMMA BELOW
+021E..021F ; NFD_QC; N # L& [2] LATIN CAPITAL LETTER H WITH CARON..LATIN SMALL LETTER H WITH CARON
+0226..0233 ; NFD_QC; N # L& [14] LATIN CAPITAL LETTER A WITH DOT ABOVE..LATIN SMALL LETTER Y WITH MACRON
+0340..0341 ; NFD_QC; N # Mn [2] COMBINING GRAVE TONE MARK..COMBINING ACUTE TONE MARK
+0343..0344 ; NFD_QC; N # Mn [2] COMBINING GREEK KORONIS..COMBINING GREEK DIALYTIKA TONOS
+0374 ; NFD_QC; N # Sk GREEK NUMERAL SIGN
+037E ; NFD_QC; N # Po GREEK QUESTION MARK
+0385 ; NFD_QC; N # Sk GREEK DIALYTIKA TONOS
+0386 ; NFD_QC; N # L& GREEK CAPITAL LETTER ALPHA WITH TONOS
+0387 ; NFD_QC; N # Po GREEK ANO TELEIA
+0388..038A ; NFD_QC; N # L& [3] GREEK CAPITAL LETTER EPSILON WITH TONOS..GREEK CAPITAL LETTER IOTA WITH TONOS
+038C ; NFD_QC; N # L& GREEK CAPITAL LETTER OMICRON WITH TONOS
+038E..0390 ; NFD_QC; N # L& [3] GREEK CAPITAL LETTER UPSILON WITH TONOS..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+03AA..03B0 ; NFD_QC; N # L& [7] GREEK CAPITAL LETTER IOTA WITH DIALYTIKA..GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+03CA..03CE ; NFD_QC; N # L& [5] GREEK SMALL LETTER IOTA WITH DIALYTIKA..GREEK SMALL LETTER OMEGA WITH TONOS
+03D3..03D4 ; NFD_QC; N # L& [2] GREEK UPSILON WITH ACUTE AND HOOK SYMBOL..GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL
+0400..0401 ; NFD_QC; N # L& [2] CYRILLIC CAPITAL LETTER IE WITH GRAVE..CYRILLIC CAPITAL LETTER IO
+0403 ; NFD_QC; N # L& CYRILLIC CAPITAL LETTER GJE
+0407 ; NFD_QC; N # L& CYRILLIC CAPITAL LETTER YI
+040C..040E ; NFD_QC; N # L& [3] CYRILLIC CAPITAL LETTER KJE..CYRILLIC CAPITAL LETTER SHORT U
+0419 ; NFD_QC; N # L& CYRILLIC CAPITAL LETTER SHORT I
+0439 ; NFD_QC; N # L& CYRILLIC SMALL LETTER SHORT I
+0450..0451 ; NFD_QC; N # L& [2] CYRILLIC SMALL LETTER IE WITH GRAVE..CYRILLIC SMALL LETTER IO
+0453 ; NFD_QC; N # L& CYRILLIC SMALL LETTER GJE
+0457 ; NFD_QC; N # L& CYRILLIC SMALL LETTER YI
+045C..045E ; NFD_QC; N # L& [3] CYRILLIC SMALL LETTER KJE..CYRILLIC SMALL LETTER SHORT U
+0476..0477 ; NFD_QC; N # L& [2] CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT..CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
+04C1..04C2 ; NFD_QC; N # L& [2] CYRILLIC CAPITAL LETTER ZHE WITH BREVE..CYRILLIC SMALL LETTER ZHE WITH BREVE
+04D0..04D3 ; NFD_QC; N # L& [4] CYRILLIC CAPITAL LETTER A WITH BREVE..CYRILLIC SMALL LETTER A WITH DIAERESIS
+04D6..04D7 ; NFD_QC; N # L& [2] CYRILLIC CAPITAL LETTER IE WITH BREVE..CYRILLIC SMALL LETTER IE WITH BREVE
+04DA..04DF ; NFD_QC; N # L& [6] CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS..CYRILLIC SMALL LETTER ZE WITH DIAERESIS
+04E2..04E7 ; NFD_QC; N # L& [6] CYRILLIC CAPITAL LETTER I WITH MACRON..CYRILLIC SMALL LETTER O WITH DIAERESIS
+04EA..04F5 ; NFD_QC; N # L& [12] CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS..CYRILLIC SMALL LETTER CHE WITH DIAERESIS
+04F8..04F9 ; NFD_QC; N # L& [2] CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS..CYRILLIC SMALL LETTER YERU WITH DIAERESIS
+0622..0626 ; NFD_QC; N # Lo [5] ARABIC LETTER ALEF WITH MADDA ABOVE..ARABIC LETTER YEH WITH HAMZA ABOVE
+06C0 ; NFD_QC; N # Lo ARABIC LETTER HEH WITH YEH ABOVE
+06C2 ; NFD_QC; N # Lo ARABIC LETTER HEH GOAL WITH HAMZA ABOVE
+06D3 ; NFD_QC; N # Lo ARABIC LETTER YEH BARREE WITH HAMZA ABOVE
+0929 ; NFD_QC; N # Lo DEVANAGARI LETTER NNNA
+0931 ; NFD_QC; N # Lo DEVANAGARI LETTER RRA
+0934 ; NFD_QC; N # Lo DEVANAGARI LETTER LLLA
+0958..095F ; NFD_QC; N # Lo [8] DEVANAGARI LETTER QA..DEVANAGARI LETTER YYA
+09CB..09CC ; NFD_QC; N # Mc [2] BENGALI VOWEL SIGN O..BENGALI VOWEL SIGN AU
+09DC..09DD ; NFD_QC; N # Lo [2] BENGALI LETTER RRA..BENGALI LETTER RHA
+09DF ; NFD_QC; N # Lo BENGALI LETTER YYA
+0A33 ; NFD_QC; N # Lo GURMUKHI LETTER LLA
+0A36 ; NFD_QC; N # Lo GURMUKHI LETTER SHA
+0A59..0A5B ; NFD_QC; N # Lo [3] GURMUKHI LETTER KHHA..GURMUKHI LETTER ZA
+0A5E ; NFD_QC; N # Lo GURMUKHI LETTER FA
+0B48 ; NFD_QC; N # Mc ORIYA VOWEL SIGN AI
+0B4B..0B4C ; NFD_QC; N # Mc [2] ORIYA VOWEL SIGN O..ORIYA VOWEL SIGN AU
+0B5C..0B5D ; NFD_QC; N # Lo [2] ORIYA LETTER RRA..ORIYA LETTER RHA
+0B94 ; NFD_QC; N # Lo TAMIL LETTER AU
+0BCA..0BCC ; NFD_QC; N # Mc [3] TAMIL VOWEL SIGN O..TAMIL VOWEL SIGN AU
+0C48 ; NFD_QC; N # Mn TELUGU VOWEL SIGN AI
+0CC0 ; NFD_QC; N # Mc KANNADA VOWEL SIGN II
+0CC7..0CC8 ; NFD_QC; N # Mc [2] KANNADA VOWEL SIGN EE..KANNADA VOWEL SIGN AI
+0CCA..0CCB ; NFD_QC; N # Mc [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO
+0D4A..0D4C ; NFD_QC; N # Mc [3] MALAYALAM VOWEL SIGN O..MALAYALAM VOWEL SIGN AU
+0DDA ; NFD_QC; N # Mc SINHALA VOWEL SIGN DIGA KOMBUVA
+0DDC..0DDE ; NFD_QC; N # Mc [3] SINHALA VOWEL SIGN KOMBUVA HAA AELA-PILLA..SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA
+0F43 ; NFD_QC; N # Lo TIBETAN LETTER GHA
+0F4D ; NFD_QC; N # Lo TIBETAN LETTER DDHA
+0F52 ; NFD_QC; N # Lo TIBETAN LETTER DHA
+0F57 ; NFD_QC; N # Lo TIBETAN LETTER BHA
+0F5C ; NFD_QC; N # Lo TIBETAN LETTER DZHA
+0F69 ; NFD_QC; N # Lo TIBETAN LETTER KSSA
+0F73 ; NFD_QC; N # Mn TIBETAN VOWEL SIGN II
+0F75..0F76 ; NFD_QC; N # Mn [2] TIBETAN VOWEL SIGN UU..TIBETAN VOWEL SIGN VOCALIC R
+0F78 ; NFD_QC; N # Mn TIBETAN VOWEL SIGN VOCALIC L
+0F81 ; NFD_QC; N # Mn TIBETAN VOWEL SIGN REVERSED II
+0F93 ; NFD_QC; N # Mn TIBETAN SUBJOINED LETTER GHA
+0F9D ; NFD_QC; N # Mn TIBETAN SUBJOINED LETTER DDHA
+0FA2 ; NFD_QC; N # Mn TIBETAN SUBJOINED LETTER DHA
+0FA7 ; NFD_QC; N # Mn TIBETAN SUBJOINED LETTER BHA
+0FAC ; NFD_QC; N # Mn TIBETAN SUBJOINED LETTER DZHA
+0FB9 ; NFD_QC; N # Mn TIBETAN SUBJOINED LETTER KSSA
+1026 ; NFD_QC; N # Lo MYANMAR LETTER UU
+1B06 ; NFD_QC; N # Lo BALINESE LETTER AKARA TEDUNG
+1B08 ; NFD_QC; N # Lo BALINESE LETTER IKARA TEDUNG
+1B0A ; NFD_QC; N # Lo BALINESE LETTER UKARA TEDUNG
+1B0C ; NFD_QC; N # Lo BALINESE LETTER RA REPA TEDUNG
+1B0E ; NFD_QC; N # Lo BALINESE LETTER LA LENGA TEDUNG
+1B12 ; NFD_QC; N # Lo BALINESE LETTER OKARA TEDUNG
+1B3B ; NFD_QC; N # Mc BALINESE VOWEL SIGN RA REPA TEDUNG
+1B3D ; NFD_QC; N # Mc BALINESE VOWEL SIGN LA LENGA TEDUNG
+1B40..1B41 ; NFD_QC; N # Mc [2] BALINESE VOWEL SIGN TALING TEDUNG..BALINESE VOWEL SIGN TALING REPA TEDUNG
+1B43 ; NFD_QC; N # Mc BALINESE VOWEL SIGN PEPET TEDUNG
+1E00..1E99 ; NFD_QC; N # L& [154] LATIN CAPITAL LETTER A WITH RING BELOW..LATIN SMALL LETTER Y WITH RING ABOVE
+1E9B ; NFD_QC; N # L& LATIN SMALL LETTER LONG S WITH DOT ABOVE
+1EA0..1EF9 ; NFD_QC; N # L& [90] LATIN CAPITAL LETTER A WITH DOT BELOW..LATIN SMALL LETTER Y WITH TILDE
+1F00..1F15 ; NFD_QC; N # L& [22] GREEK SMALL LETTER ALPHA WITH PSILI..GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
+1F18..1F1D ; NFD_QC; N # L& [6] GREEK CAPITAL LETTER EPSILON WITH PSILI..GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
+1F20..1F45 ; NFD_QC; N # L& [38] GREEK SMALL LETTER ETA WITH PSILI..GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
+1F48..1F4D ; NFD_QC; N # L& [6] GREEK CAPITAL LETTER OMICRON WITH PSILI..GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
+1F50..1F57 ; NFD_QC; N # L& [8] GREEK SMALL LETTER UPSILON WITH PSILI..GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
+1F59 ; NFD_QC; N # L& GREEK CAPITAL LETTER UPSILON WITH DASIA
+1F5B ; NFD_QC; N # L& GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
+1F5D ; NFD_QC; N # L& GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
+1F5F..1F7D ; NFD_QC; N # L& [31] GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI..GREEK SMALL LETTER OMEGA WITH OXIA
+1F80..1FB4 ; NFD_QC; N # L& [53] GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI..GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
+1FB6..1FBC ; NFD_QC; N # L& [7] GREEK SMALL LETTER ALPHA WITH PERISPOMENI..GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI
+1FBE ; NFD_QC; N # L& GREEK PROSGEGRAMMENI
+1FC1 ; NFD_QC; N # Sk GREEK DIALYTIKA AND PERISPOMENI
+1FC2..1FC4 ; NFD_QC; N # L& [3] GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
+1FC6..1FCC ; NFD_QC; N # L& [7] GREEK SMALL LETTER ETA WITH PERISPOMENI..GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI
+1FCD..1FCF ; NFD_QC; N # Sk [3] GREEK PSILI AND VARIA..GREEK PSILI AND PERISPOMENI
+1FD0..1FD3 ; NFD_QC; N # L& [4] GREEK SMALL LETTER IOTA WITH VRACHY..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA
+1FD6..1FDB ; NFD_QC; N # L& [6] GREEK SMALL LETTER IOTA WITH PERISPOMENI..GREEK CAPITAL LETTER IOTA WITH OXIA
+1FDD..1FDF ; NFD_QC; N # Sk [3] GREEK DASIA AND VARIA..GREEK DASIA AND PERISPOMENI
+1FE0..1FEC ; NFD_QC; N # L& [13] GREEK SMALL LETTER UPSILON WITH VRACHY..GREEK CAPITAL LETTER RHO WITH DASIA
+1FED..1FEF ; NFD_QC; N # Sk [3] GREEK DIALYTIKA AND VARIA..GREEK VARIA
+1FF2..1FF4 ; NFD_QC; N # L& [3] GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
+1FF6..1FFC ; NFD_QC; N # L& [7] GREEK SMALL LETTER OMEGA WITH PERISPOMENI..GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI
+1FFD ; NFD_QC; N # Sk GREEK OXIA
+2000..2001 ; NFD_QC; N # Zs [2] EN QUAD..EM QUAD
+2126 ; NFD_QC; N # L& OHM SIGN
+212A..212B ; NFD_QC; N # L& [2] KELVIN SIGN..ANGSTROM SIGN
+219A..219B ; NFD_QC; N # Sm [2] LEFTWARDS ARROW WITH STROKE..RIGHTWARDS ARROW WITH STROKE
+21AE ; NFD_QC; N # Sm LEFT RIGHT ARROW WITH STROKE
+21CD ; NFD_QC; N # So LEFTWARDS DOUBLE ARROW WITH STROKE
+21CE..21CF ; NFD_QC; N # Sm [2] LEFT RIGHT DOUBLE ARROW WITH STROKE..RIGHTWARDS DOUBLE ARROW WITH STROKE
+2204 ; NFD_QC; N # Sm THERE DOES NOT EXIST
+2209 ; NFD_QC; N # Sm NOT AN ELEMENT OF
+220C ; NFD_QC; N # Sm DOES NOT CONTAIN AS MEMBER
+2224 ; NFD_QC; N # Sm DOES NOT DIVIDE
+2226 ; NFD_QC; N # Sm NOT PARALLEL TO
+2241 ; NFD_QC; N # Sm NOT TILDE
+2244 ; NFD_QC; N # Sm NOT ASYMPTOTICALLY EQUAL TO
+2247 ; NFD_QC; N # Sm NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO
+2249 ; NFD_QC; N # Sm NOT ALMOST EQUAL TO
+2260 ; NFD_QC; N # Sm NOT EQUAL TO
+2262 ; NFD_QC; N # Sm NOT IDENTICAL TO
+226D..2271 ; NFD_QC; N # Sm [5] NOT EQUIVALENT TO..NEITHER GREATER-THAN NOR EQUAL TO
+2274..2275 ; NFD_QC; N # Sm [2] NEITHER LESS-THAN NOR EQUIVALENT TO..NEITHER GREATER-THAN NOR EQUIVALENT TO
+2278..2279 ; NFD_QC; N # Sm [2] NEITHER LESS-THAN NOR GREATER-THAN..NEITHER GREATER-THAN NOR LESS-THAN
+2280..2281 ; NFD_QC; N # Sm [2] DOES NOT PRECEDE..DOES NOT SUCCEED
+2284..2285 ; NFD_QC; N # Sm [2] NOT A SUBSET OF..NOT A SUPERSET OF
+2288..2289 ; NFD_QC; N # Sm [2] NEITHER A SUBSET OF NOR EQUAL TO..NEITHER A SUPERSET OF NOR EQUAL TO
+22AC..22AF ; NFD_QC; N # Sm [4] DOES NOT PROVE..NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE
+22E0..22E3 ; NFD_QC; N # Sm [4] DOES NOT PRECEDE OR EQUAL..NOT SQUARE ORIGINAL OF OR EQUAL TO
+22EA..22ED ; NFD_QC; N # Sm [4] NOT NORMAL SUBGROUP OF..DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL
+2329 ; NFD_QC; N # Ps LEFT-POINTING ANGLE BRACKET
+232A ; NFD_QC; N # Pe RIGHT-POINTING ANGLE BRACKET
+2ADC ; NFD_QC; N # Sm FORKING
+304C ; NFD_QC; N # Lo HIRAGANA LETTER GA
+304E ; NFD_QC; N # Lo HIRAGANA LETTER GI
+3050 ; NFD_QC; N # Lo HIRAGANA LETTER GU
+3052 ; NFD_QC; N # Lo HIRAGANA LETTER GE
+3054 ; NFD_QC; N # Lo HIRAGANA LETTER GO
+3056 ; NFD_QC; N # Lo HIRAGANA LETTER ZA
+3058 ; NFD_QC; N # Lo HIRAGANA LETTER ZI
+305A ; NFD_QC; N # Lo HIRAGANA LETTER ZU
+305C ; NFD_QC; N # Lo HIRAGANA LETTER ZE
+305E ; NFD_QC; N # Lo HIRAGANA LETTER ZO
+3060 ; NFD_QC; N # Lo HIRAGANA LETTER DA
+3062 ; NFD_QC; N # Lo HIRAGANA LETTER DI
+3065 ; NFD_QC; N # Lo HIRAGANA LETTER DU
+3067 ; NFD_QC; N # Lo HIRAGANA LETTER DE
+3069 ; NFD_QC; N # Lo HIRAGANA LETTER DO
+3070..3071 ; NFD_QC; N # Lo [2] HIRAGANA LETTER BA..HIRAGANA LETTER PA
+3073..3074 ; NFD_QC; N # Lo [2] HIRAGANA LETTER BI..HIRAGANA LETTER PI
+3076..3077 ; NFD_QC; N # Lo [2] HIRAGANA LETTER BU..HIRAGANA LETTER PU
+3079..307A ; NFD_QC; N # Lo [2] HIRAGANA LETTER BE..HIRAGANA LETTER PE
+307C..307D ; NFD_QC; N # Lo [2] HIRAGANA LETTER BO..HIRAGANA LETTER PO
+3094 ; NFD_QC; N # Lo HIRAGANA LETTER VU
+309E ; NFD_QC; N # Lm HIRAGANA VOICED ITERATION MARK
+30AC ; NFD_QC; N # Lo KATAKANA LETTER GA
+30AE ; NFD_QC; N # Lo KATAKANA LETTER GI
+30B0 ; NFD_QC; N # Lo KATAKANA LETTER GU
+30B2 ; NFD_QC; N # Lo KATAKANA LETTER GE
+30B4 ; NFD_QC; N # Lo KATAKANA LETTER GO
+30B6 ; NFD_QC; N # Lo KATAKANA LETTER ZA
+30B8 ; NFD_QC; N # Lo KATAKANA LETTER ZI
+30BA ; NFD_QC; N # Lo KATAKANA LETTER ZU
+30BC ; NFD_QC; N # Lo KATAKANA LETTER ZE
+30BE ; NFD_QC; N # Lo KATAKANA LETTER ZO
+30C0 ; NFD_QC; N # Lo KATAKANA LETTER DA
+30C2 ; NFD_QC; N # Lo KATAKANA LETTER DI
+30C5 ; NFD_QC; N # Lo KATAKANA LETTER DU
+30C7 ; NFD_QC; N # Lo KATAKANA LETTER DE
+30C9 ; NFD_QC; N # Lo KATAKANA LETTER DO
+30D0..30D1 ; NFD_QC; N # Lo [2] KATAKANA LETTER BA..KATAKANA LETTER PA
+30D3..30D4 ; NFD_QC; N # Lo [2] KATAKANA LETTER BI..KATAKANA LETTER PI
+30D6..30D7 ; NFD_QC; N # Lo [2] KATAKANA LETTER BU..KATAKANA LETTER PU
+30D9..30DA ; NFD_QC; N # Lo [2] KATAKANA LETTER BE..KATAKANA LETTER PE
+30DC..30DD ; NFD_QC; N # Lo [2] KATAKANA LETTER BO..KATAKANA LETTER PO
+30F4 ; NFD_QC; N # Lo KATAKANA LETTER VU
+30F7..30FA ; NFD_QC; N # Lo [4] KATAKANA LETTER VA..KATAKANA LETTER VO
+30FE ; NFD_QC; N # Lm KATAKANA VOICED ITERATION MARK
+AC00..D7A3 ; NFD_QC; N # Lo [11172] HANGUL SYLLABLE GA..HANGUL SYLLABLE HIH
+F900..FA0D ; NFD_QC; N # Lo [270] CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA0D
+FA10 ; NFD_QC; N # Lo CJK COMPATIBILITY IDEOGRAPH-FA10
+FA12 ; NFD_QC; N # Lo CJK COMPATIBILITY IDEOGRAPH-FA12
+FA15..FA1E ; NFD_QC; N # Lo [10] CJK COMPATIBILITY IDEOGRAPH-FA15..CJK COMPATIBILITY IDEOGRAPH-FA1E
+FA20 ; NFD_QC; N # Lo CJK COMPATIBILITY IDEOGRAPH-FA20
+FA22 ; NFD_QC; N # Lo CJK COMPATIBILITY IDEOGRAPH-FA22
+FA25..FA26 ; NFD_QC; N # Lo [2] CJK COMPATIBILITY IDEOGRAPH-FA25..CJK COMPATIBILITY IDEOGRAPH-FA26
+FA2A..FA2D ; NFD_QC; N # Lo [4] CJK COMPATIBILITY IDEOGRAPH-FA2A..CJK COMPATIBILITY IDEOGRAPH-FA2D
+FA30..FA6A ; NFD_QC; N # Lo [59] CJK COMPATIBILITY IDEOGRAPH-FA30..CJK COMPATIBILITY IDEOGRAPH-FA6A
+FA70..FAD9 ; NFD_QC; N # Lo [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COMPATIBILITY IDEOGRAPH-FAD9
+FB1D ; NFD_QC; N # Lo HEBREW LETTER YOD WITH HIRIQ
+FB1F ; NFD_QC; N # Lo HEBREW LIGATURE YIDDISH YOD YOD PATAH
+FB2A..FB36 ; NFD_QC; N # Lo [13] HEBREW LETTER SHIN WITH SHIN DOT..HEBREW LETTER ZAYIN WITH DAGESH
+FB38..FB3C ; NFD_QC; N # Lo [5] HEBREW LETTER TET WITH DAGESH..HEBREW LETTER LAMED WITH DAGESH
+FB3E ; NFD_QC; N # Lo HEBREW LETTER MEM WITH DAGESH
+FB40..FB41 ; NFD_QC; N # Lo [2] HEBREW LETTER NUN WITH DAGESH..HEBREW LETTER SAMEKH WITH DAGESH
+FB43..FB44 ; NFD_QC; N # Lo [2] HEBREW LETTER FINAL PE WITH DAGESH..HEBREW LETTER PE WITH DAGESH
+FB46..FB4E ; NFD_QC; N # Lo [9] HEBREW LETTER TSADI WITH DAGESH..HEBREW LETTER PE WITH RAFE
+1D15E..1D164 ; NFD_QC; N # So [7] MUSICAL SYMBOL HALF NOTE..MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
+1D1BB..1D1C0 ; NFD_QC; N # So [6] MUSICAL SYMBOL MINIMA..MUSICAL SYMBOL FUSA BLACK
+2F800..2FA1D ; NFD_QC; N # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
+
+# Total code points: 13215
+
+# ================================================
+
+# Property: NFC_Quick_Check
+
+# All code points not explicitly listed for NFC_Quick_Check
+# have the value Yes (Y).
+
+# @missing: 0000..10FFFF; NFC_QC; Yes
+
+# ================================================
+
+# NFC_Quick_Check=No
+
+0340..0341 ; NFC_QC; N # Mn [2] COMBINING GRAVE TONE MARK..COMBINING ACUTE TONE MARK
+0343..0344 ; NFC_QC; N # Mn [2] COMBINING GREEK KORONIS..COMBINING GREEK DIALYTIKA TONOS
+0374 ; NFC_QC; N # Sk GREEK NUMERAL SIGN
+037E ; NFC_QC; N # Po GREEK QUESTION MARK
+0387 ; NFC_QC; N # Po GREEK ANO TELEIA
+0958..095F ; NFC_QC; N # Lo [8] DEVANAGARI LETTER QA..DEVANAGARI LETTER YYA
+09DC..09DD ; NFC_QC; N # Lo [2] BENGALI LETTER RRA..BENGALI LETTER RHA
+09DF ; NFC_QC; N # Lo BENGALI LETTER YYA
+0A33 ; NFC_QC; N # Lo GURMUKHI LETTER LLA
+0A36 ; NFC_QC; N # Lo GURMUKHI LETTER SHA
+0A59..0A5B ; NFC_QC; N # Lo [3] GURMUKHI LETTER KHHA..GURMUKHI LETTER ZA
+0A5E ; NFC_QC; N # Lo GURMUKHI LETTER FA
+0B5C..0B5D ; NFC_QC; N # Lo [2] ORIYA LETTER RRA..ORIYA LETTER RHA
+0F43 ; NFC_QC; N # Lo TIBETAN LETTER GHA
+0F4D ; NFC_QC; N # Lo TIBETAN LETTER DDHA
+0F52 ; NFC_QC; N # Lo TIBETAN LETTER DHA
+0F57 ; NFC_QC; N # Lo TIBETAN LETTER BHA
+0F5C ; NFC_QC; N # Lo TIBETAN LETTER DZHA
+0F69 ; NFC_QC; N # Lo TIBETAN LETTER KSSA
+0F73 ; NFC_QC; N # Mn TIBETAN VOWEL SIGN II
+0F75..0F76 ; NFC_QC; N # Mn [2] TIBETAN VOWEL SIGN UU..TIBETAN VOWEL SIGN VOCALIC R
+0F78 ; NFC_QC; N # Mn TIBETAN VOWEL SIGN VOCALIC L
+0F81 ; NFC_QC; N # Mn TIBETAN VOWEL SIGN REVERSED II
+0F93 ; NFC_QC; N # Mn TIBETAN SUBJOINED LETTER GHA
+0F9D ; NFC_QC; N # Mn TIBETAN SUBJOINED LETTER DDHA
+0FA2 ; NFC_QC; N # Mn TIBETAN SUBJOINED LETTER DHA
+0FA7 ; NFC_QC; N # Mn TIBETAN SUBJOINED LETTER BHA
+0FAC ; NFC_QC; N # Mn TIBETAN SUBJOINED LETTER DZHA
+0FB9 ; NFC_QC; N # Mn TIBETAN SUBJOINED LETTER KSSA
+1F71 ; NFC_QC; N # L& GREEK SMALL LETTER ALPHA WITH OXIA
+1F73 ; NFC_QC; N # L& GREEK SMALL LETTER EPSILON WITH OXIA
+1F75 ; NFC_QC; N # L& GREEK SMALL LETTER ETA WITH OXIA
+1F77 ; NFC_QC; N # L& GREEK SMALL LETTER IOTA WITH OXIA
+1F79 ; NFC_QC; N # L& GREEK SMALL LETTER OMICRON WITH OXIA
+1F7B ; NFC_QC; N # L& GREEK SMALL LETTER UPSILON WITH OXIA
+1F7D ; NFC_QC; N # L& GREEK SMALL LETTER OMEGA WITH OXIA
+1FBB ; NFC_QC; N # L& GREEK CAPITAL LETTER ALPHA WITH OXIA
+1FBE ; NFC_QC; N # L& GREEK PROSGEGRAMMENI
+1FC9 ; NFC_QC; N # L& GREEK CAPITAL LETTER EPSILON WITH OXIA
+1FCB ; NFC_QC; N # L& GREEK CAPITAL LETTER ETA WITH OXIA
+1FD3 ; NFC_QC; N # L& GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA
+1FDB ; NFC_QC; N # L& GREEK CAPITAL LETTER IOTA WITH OXIA
+1FE3 ; NFC_QC; N # L& GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA
+1FEB ; NFC_QC; N # L& GREEK CAPITAL LETTER UPSILON WITH OXIA
+1FEE..1FEF ; NFC_QC; N # Sk [2] GREEK DIALYTIKA AND OXIA..GREEK VARIA
+1FF9 ; NFC_QC; N # L& GREEK CAPITAL LETTER OMICRON WITH OXIA
+1FFB ; NFC_QC; N # L& GREEK CAPITAL LETTER OMEGA WITH OXIA
+1FFD ; NFC_QC; N # Sk GREEK OXIA
+2000..2001 ; NFC_QC; N # Zs [2] EN QUAD..EM QUAD
+2126 ; NFC_QC; N # L& OHM SIGN
+212A..212B ; NFC_QC; N # L& [2] KELVIN SIGN..ANGSTROM SIGN
+2329 ; NFC_QC; N # Ps LEFT-POINTING ANGLE BRACKET
+232A ; NFC_QC; N # Pe RIGHT-POINTING ANGLE BRACKET
+2ADC ; NFC_QC; N # Sm FORKING
+F900..FA0D ; NFC_QC; N # Lo [270] CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA0D
+FA10 ; NFC_QC; N # Lo CJK COMPATIBILITY IDEOGRAPH-FA10
+FA12 ; NFC_QC; N # Lo CJK COMPATIBILITY IDEOGRAPH-FA12
+FA15..FA1E ; NFC_QC; N # Lo [10] CJK COMPATIBILITY IDEOGRAPH-FA15..CJK COMPATIBILITY IDEOGRAPH-FA1E
+FA20 ; NFC_QC; N # Lo CJK COMPATIBILITY IDEOGRAPH-FA20
+FA22 ; NFC_QC; N # Lo CJK COMPATIBILITY IDEOGRAPH-FA22
+FA25..FA26 ; NFC_QC; N # Lo [2] CJK COMPATIBILITY IDEOGRAPH-FA25..CJK COMPATIBILITY IDEOGRAPH-FA26
+FA2A..FA2D ; NFC_QC; N # Lo [4] CJK COMPATIBILITY IDEOGRAPH-FA2A..CJK COMPATIBILITY IDEOGRAPH-FA2D
+FA30..FA6A ; NFC_QC; N # Lo [59] CJK COMPATIBILITY IDEOGRAPH-FA30..CJK COMPATIBILITY IDEOGRAPH-FA6A
+FA70..FAD9 ; NFC_QC; N # Lo [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COMPATIBILITY IDEOGRAPH-FAD9
+FB1D ; NFC_QC; N # Lo HEBREW LETTER YOD WITH HIRIQ
+FB1F ; NFC_QC; N # Lo HEBREW LIGATURE YIDDISH YOD YOD PATAH
+FB2A..FB36 ; NFC_QC; N # Lo [13] HEBREW LETTER SHIN WITH SHIN DOT..HEBREW LETTER ZAYIN WITH DAGESH
+FB38..FB3C ; NFC_QC; N # Lo [5] HEBREW LETTER TET WITH DAGESH..HEBREW LETTER LAMED WITH DAGESH
+FB3E ; NFC_QC; N # Lo HEBREW LETTER MEM WITH DAGESH
+FB40..FB41 ; NFC_QC; N # Lo [2] HEBREW LETTER NUN WITH DAGESH..HEBREW LETTER SAMEKH WITH DAGESH
+FB43..FB44 ; NFC_QC; N # Lo [2] HEBREW LETTER FINAL PE WITH DAGESH..HEBREW LETTER PE WITH DAGESH
+FB46..FB4E ; NFC_QC; N # Lo [9] HEBREW LETTER TSADI WITH DAGESH..HEBREW LETTER PE WITH RAFE
+1D15E..1D164 ; NFC_QC; N # So [7] MUSICAL SYMBOL HALF NOTE..MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
+1D1BB..1D1C0 ; NFC_QC; N # So [6] MUSICAL SYMBOL MINIMA..MUSICAL SYMBOL FUSA BLACK
+2F800..2FA1D ; NFC_QC; N # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
+
+# Total code points: 1115
+
+# ================================================
+
+# NFC_Quick_Check=Maybe
+
+0300..0304 ; NFC_QC; M # Mn [5] COMBINING GRAVE ACCENT..COMBINING MACRON
+0306..030C ; NFC_QC; M # Mn [7] COMBINING BREVE..COMBINING CARON
+030F ; NFC_QC; M # Mn COMBINING DOUBLE GRAVE ACCENT
+0311 ; NFC_QC; M # Mn COMBINING INVERTED BREVE
+0313..0314 ; NFC_QC; M # Mn [2] COMBINING COMMA ABOVE..COMBINING REVERSED COMMA ABOVE
+031B ; NFC_QC; M # Mn COMBINING HORN
+0323..0328 ; NFC_QC; M # Mn [6] COMBINING DOT BELOW..COMBINING OGONEK
+032D..032E ; NFC_QC; M # Mn [2] COMBINING CIRCUMFLEX ACCENT BELOW..COMBINING BREVE BELOW
+0330..0331 ; NFC_QC; M # Mn [2] COMBINING TILDE BELOW..COMBINING MACRON BELOW
+0338 ; NFC_QC; M # Mn COMBINING LONG SOLIDUS OVERLAY
+0342 ; NFC_QC; M # Mn COMBINING GREEK PERISPOMENI
+0345 ; NFC_QC; M # Mn COMBINING GREEK YPOGEGRAMMENI
+0653..0655 ; NFC_QC; M # Mn [3] ARABIC MADDAH ABOVE..ARABIC HAMZA BELOW
+093C ; NFC_QC; M # Mn DEVANAGARI SIGN NUKTA
+09BE ; NFC_QC; M # Mc BENGALI VOWEL SIGN AA
+09D7 ; NFC_QC; M # Mc BENGALI AU LENGTH MARK
+0B3E ; NFC_QC; M # Mc ORIYA VOWEL SIGN AA
+0B56 ; NFC_QC; M # Mn ORIYA AI LENGTH MARK
+0B57 ; NFC_QC; M # Mc ORIYA AU LENGTH MARK
+0BBE ; NFC_QC; M # Mc TAMIL VOWEL SIGN AA
+0BD7 ; NFC_QC; M # Mc TAMIL AU LENGTH MARK
+0C56 ; NFC_QC; M # Mn TELUGU AI LENGTH MARK
+0CC2 ; NFC_QC; M # Mc KANNADA VOWEL SIGN UU
+0CD5..0CD6 ; NFC_QC; M # Mc [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
+0D3E ; NFC_QC; M # Mc MALAYALAM VOWEL SIGN AA
+0D57 ; NFC_QC; M # Mc MALAYALAM AU LENGTH MARK
+0DCA ; NFC_QC; M # Mn SINHALA SIGN AL-LAKUNA
+0DCF ; NFC_QC; M # Mc SINHALA VOWEL SIGN AELA-PILLA
+0DDF ; NFC_QC; M # Mc SINHALA VOWEL SIGN GAYANUKITTA
+102E ; NFC_QC; M # Mn MYANMAR VOWEL SIGN II
+1161..1175 ; NFC_QC; M # Lo [21] HANGUL JUNGSEONG A..HANGUL JUNGSEONG I
+11A8..11C2 ; NFC_QC; M # Lo [27] HANGUL JONGSEONG KIYEOK..HANGUL JONGSEONG HIEUH
+1B35 ; NFC_QC; M # Mc BALINESE VOWEL SIGN TEDUNG
+3099..309A ; NFC_QC; M # Mn [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+
+# Total code points: 102
+
+# ================================================
+
+# Property: NFKD_Quick_Check
+
+# All code points not explicitly listed for NFKD_Quick_Check
+# have the value Yes (Y).
+
+# @missing: 0000..10FFFF; NFKD_QC; Yes
+
+# ================================================
+
+# NFKD_Quick_Check=No
+
+00A0 ; NFKD_QC; N # Zs NO-BREAK SPACE
+00A8 ; NFKD_QC; N # Sk DIAERESIS
+00AA ; NFKD_QC; N # L& FEMININE ORDINAL INDICATOR
+00AF ; NFKD_QC; N # Sk MACRON
+00B2..00B3 ; NFKD_QC; N # No [2] SUPERSCRIPT TWO..SUPERSCRIPT THREE
+00B4 ; NFKD_QC; N # Sk ACUTE ACCENT
+00B5 ; NFKD_QC; N # L& MICRO SIGN
+00B8 ; NFKD_QC; N # Sk CEDILLA
+00B9 ; NFKD_QC; N # No SUPERSCRIPT ONE
+00BA ; NFKD_QC; N # L& MASCULINE ORDINAL INDICATOR
+00BC..00BE ; NFKD_QC; N # No [3] VULGAR FRACTION ONE QUARTER..VULGAR FRACTION THREE QUARTERS
+00C0..00C5 ; NFKD_QC; N # L& [6] LATIN CAPITAL LETTER A WITH GRAVE..LATIN CAPITAL LETTER A WITH RING ABOVE
+00C7..00CF ; NFKD_QC; N # L& [9] LATIN CAPITAL LETTER C WITH CEDILLA..LATIN CAPITAL LETTER I WITH DIAERESIS
+00D1..00D6 ; NFKD_QC; N # L& [6] LATIN CAPITAL LETTER N WITH TILDE..LATIN CAPITAL LETTER O WITH DIAERESIS
+00D9..00DD ; NFKD_QC; N # L& [5] LATIN CAPITAL LETTER U WITH GRAVE..LATIN CAPITAL LETTER Y WITH ACUTE
+00E0..00E5 ; NFKD_QC; N # L& [6] LATIN SMALL LETTER A WITH GRAVE..LATIN SMALL LETTER A WITH RING ABOVE
+00E7..00EF ; NFKD_QC; N # L& [9] LATIN SMALL LETTER C WITH CEDILLA..LATIN SMALL LETTER I WITH DIAERESIS
+00F1..00F6 ; NFKD_QC; N # L& [6] LATIN SMALL LETTER N WITH TILDE..LATIN SMALL LETTER O WITH DIAERESIS
+00F9..00FD ; NFKD_QC; N # L& [5] LATIN SMALL LETTER U WITH GRAVE..LATIN SMALL LETTER Y WITH ACUTE
+00FF..010F ; NFKD_QC; N # L& [17] LATIN SMALL LETTER Y WITH DIAERESIS..LATIN SMALL LETTER D WITH CARON
+0112..0125 ; NFKD_QC; N # L& [20] LATIN CAPITAL LETTER E WITH MACRON..LATIN SMALL LETTER H WITH CIRCUMFLEX
+0128..0130 ; NFKD_QC; N # L& [9] LATIN CAPITAL LETTER I WITH TILDE..LATIN CAPITAL LETTER I WITH DOT ABOVE
+0132..0137 ; NFKD_QC; N # L& [6] LATIN CAPITAL LIGATURE IJ..LATIN SMALL LETTER K WITH CEDILLA
+0139..0140 ; NFKD_QC; N # L& [8] LATIN CAPITAL LETTER L WITH ACUTE..LATIN SMALL LETTER L WITH MIDDLE DOT
+0143..0149 ; NFKD_QC; N # L& [7] LATIN CAPITAL LETTER N WITH ACUTE..LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
+014C..0151 ; NFKD_QC; N # L& [6] LATIN CAPITAL LETTER O WITH MACRON..LATIN SMALL LETTER O WITH DOUBLE ACUTE
+0154..0165 ; NFKD_QC; N # L& [18] LATIN CAPITAL LETTER R WITH ACUTE..LATIN SMALL LETTER T WITH CARON
+0168..017F ; NFKD_QC; N # L& [24] LATIN CAPITAL LETTER U WITH TILDE..LATIN SMALL LETTER LONG S
+01A0..01A1 ; NFKD_QC; N # L& [2] LATIN CAPITAL LETTER O WITH HORN..LATIN SMALL LETTER O WITH HORN
+01AF..01B0 ; NFKD_QC; N # L& [2] LATIN CAPITAL LETTER U WITH HORN..LATIN SMALL LETTER U WITH HORN
+01C4..01DC ; NFKD_QC; N # L& [25] LATIN CAPITAL LETTER DZ WITH CARON..LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+01DE..01E3 ; NFKD_QC; N # L& [6] LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON..LATIN SMALL LETTER AE WITH MACRON
+01E6..01F5 ; NFKD_QC; N # L& [16] LATIN CAPITAL LETTER G WITH CARON..LATIN SMALL LETTER G WITH ACUTE
+01F8..021B ; NFKD_QC; N # L& [36] LATIN CAPITAL LETTER N WITH GRAVE..LATIN SMALL LETTER T WITH COMMA BELOW
+021E..021F ; NFKD_QC; N # L& [2] LATIN CAPITAL LETTER H WITH CARON..LATIN SMALL LETTER H WITH CARON
+0226..0233 ; NFKD_QC; N # L& [14] LATIN CAPITAL LETTER A WITH DOT ABOVE..LATIN SMALL LETTER Y WITH MACRON
+02B0..02B8 ; NFKD_QC; N # Lm [9] MODIFIER LETTER SMALL H..MODIFIER LETTER SMALL Y
+02D8..02DD ; NFKD_QC; N # Sk [6] BREVE..DOUBLE ACUTE ACCENT
+02E0..02E4 ; NFKD_QC; N # Lm [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
+0340..0341 ; NFKD_QC; N # Mn [2] COMBINING GRAVE TONE MARK..COMBINING ACUTE TONE MARK
+0343..0344 ; NFKD_QC; N # Mn [2] COMBINING GREEK KORONIS..COMBINING GREEK DIALYTIKA TONOS
+0374 ; NFKD_QC; N # Sk GREEK NUMERAL SIGN
+037A ; NFKD_QC; N # Lm GREEK YPOGEGRAMMENI
+037E ; NFKD_QC; N # Po GREEK QUESTION MARK
+0384..0385 ; NFKD_QC; N # Sk [2] GREEK TONOS..GREEK DIALYTIKA TONOS
+0386 ; NFKD_QC; N # L& GREEK CAPITAL LETTER ALPHA WITH TONOS
+0387 ; NFKD_QC; N # Po GREEK ANO TELEIA
+0388..038A ; NFKD_QC; N # L& [3] GREEK CAPITAL LETTER EPSILON WITH TONOS..GREEK CAPITAL LETTER IOTA WITH TONOS
+038C ; NFKD_QC; N # L& GREEK CAPITAL LETTER OMICRON WITH TONOS
+038E..0390 ; NFKD_QC; N # L& [3] GREEK CAPITAL LETTER UPSILON WITH TONOS..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+03AA..03B0 ; NFKD_QC; N # L& [7] GREEK CAPITAL LETTER IOTA WITH DIALYTIKA..GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+03CA..03CE ; NFKD_QC; N # L& [5] GREEK SMALL LETTER IOTA WITH DIALYTIKA..GREEK SMALL LETTER OMEGA WITH TONOS
+03D0..03D6 ; NFKD_QC; N # L& [7] GREEK BETA SYMBOL..GREEK PI SYMBOL
+03F0..03F2 ; NFKD_QC; N # L& [3] GREEK KAPPA SYMBOL..GREEK LUNATE SIGMA SYMBOL
+03F4..03F5 ; NFKD_QC; N # L& [2] GREEK CAPITAL THETA SYMBOL..GREEK LUNATE EPSILON SYMBOL
+03F9 ; NFKD_QC; N # L& GREEK CAPITAL LUNATE SIGMA SYMBOL
+0400..0401 ; NFKD_QC; N # L& [2] CYRILLIC CAPITAL LETTER IE WITH GRAVE..CYRILLIC CAPITAL LETTER IO
+0403 ; NFKD_QC; N # L& CYRILLIC CAPITAL LETTER GJE
+0407 ; NFKD_QC; N # L& CYRILLIC CAPITAL LETTER YI
+040C..040E ; NFKD_QC; N # L& [3] CYRILLIC CAPITAL LETTER KJE..CYRILLIC CAPITAL LETTER SHORT U
+0419 ; NFKD_QC; N # L& CYRILLIC CAPITAL LETTER SHORT I
+0439 ; NFKD_QC; N # L& CYRILLIC SMALL LETTER SHORT I
+0450..0451 ; NFKD_QC; N # L& [2] CYRILLIC SMALL LETTER IE WITH GRAVE..CYRILLIC SMALL LETTER IO
+0453 ; NFKD_QC; N # L& CYRILLIC SMALL LETTER GJE
+0457 ; NFKD_QC; N # L& CYRILLIC SMALL LETTER YI
+045C..045E ; NFKD_QC; N # L& [3] CYRILLIC SMALL LETTER KJE..CYRILLIC SMALL LETTER SHORT U
+0476..0477 ; NFKD_QC; N # L& [2] CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT..CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
+04C1..04C2 ; NFKD_QC; N # L& [2] CYRILLIC CAPITAL LETTER ZHE WITH BREVE..CYRILLIC SMALL LETTER ZHE WITH BREVE
+04D0..04D3 ; NFKD_QC; N # L& [4] CYRILLIC CAPITAL LETTER A WITH BREVE..CYRILLIC SMALL LETTER A WITH DIAERESIS
+04D6..04D7 ; NFKD_QC; N # L& [2] CYRILLIC CAPITAL LETTER IE WITH BREVE..CYRILLIC SMALL LETTER IE WITH BREVE
+04DA..04DF ; NFKD_QC; N # L& [6] CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS..CYRILLIC SMALL LETTER ZE WITH DIAERESIS
+04E2..04E7 ; NFKD_QC; N # L& [6] CYRILLIC CAPITAL LETTER I WITH MACRON..CYRILLIC SMALL LETTER O WITH DIAERESIS
+04EA..04F5 ; NFKD_QC; N # L& [12] CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS..CYRILLIC SMALL LETTER CHE WITH DIAERESIS
+04F8..04F9 ; NFKD_QC; N # L& [2] CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS..CYRILLIC SMALL LETTER YERU WITH DIAERESIS
+0587 ; NFKD_QC; N # L& ARMENIAN SMALL LIGATURE ECH YIWN
+0622..0626 ; NFKD_QC; N # Lo [5] ARABIC LETTER ALEF WITH MADDA ABOVE..ARABIC LETTER YEH WITH HAMZA ABOVE
+0675..0678 ; NFKD_QC; N # Lo [4] ARABIC LETTER HIGH HAMZA ALEF..ARABIC LETTER HIGH HAMZA YEH
+06C0 ; NFKD_QC; N # Lo ARABIC LETTER HEH WITH YEH ABOVE
+06C2 ; NFKD_QC; N # Lo ARABIC LETTER HEH GOAL WITH HAMZA ABOVE
+06D3 ; NFKD_QC; N # Lo ARABIC LETTER YEH BARREE WITH HAMZA ABOVE
+0929 ; NFKD_QC; N # Lo DEVANAGARI LETTER NNNA
+0931 ; NFKD_QC; N # Lo DEVANAGARI LETTER RRA
+0934 ; NFKD_QC; N # Lo DEVANAGARI LETTER LLLA
+0958..095F ; NFKD_QC; N # Lo [8] DEVANAGARI LETTER QA..DEVANAGARI LETTER YYA
+09CB..09CC ; NFKD_QC; N # Mc [2] BENGALI VOWEL SIGN O..BENGALI VOWEL SIGN AU
+09DC..09DD ; NFKD_QC; N # Lo [2] BENGALI LETTER RRA..BENGALI LETTER RHA
+09DF ; NFKD_QC; N # Lo BENGALI LETTER YYA
+0A33 ; NFKD_QC; N # Lo GURMUKHI LETTER LLA
+0A36 ; NFKD_QC; N # Lo GURMUKHI LETTER SHA
+0A59..0A5B ; NFKD_QC; N # Lo [3] GURMUKHI LETTER KHHA..GURMUKHI LETTER ZA
+0A5E ; NFKD_QC; N # Lo GURMUKHI LETTER FA
+0B48 ; NFKD_QC; N # Mc ORIYA VOWEL SIGN AI
+0B4B..0B4C ; NFKD_QC; N # Mc [2] ORIYA VOWEL SIGN O..ORIYA VOWEL SIGN AU
+0B5C..0B5D ; NFKD_QC; N # Lo [2] ORIYA LETTER RRA..ORIYA LETTER RHA
+0B94 ; NFKD_QC; N # Lo TAMIL LETTER AU
+0BCA..0BCC ; NFKD_QC; N # Mc [3] TAMIL VOWEL SIGN O..TAMIL VOWEL SIGN AU
+0C48 ; NFKD_QC; N # Mn TELUGU VOWEL SIGN AI
+0CC0 ; NFKD_QC; N # Mc KANNADA VOWEL SIGN II
+0CC7..0CC8 ; NFKD_QC; N # Mc [2] KANNADA VOWEL SIGN EE..KANNADA VOWEL SIGN AI
+0CCA..0CCB ; NFKD_QC; N # Mc [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO
+0D4A..0D4C ; NFKD_QC; N # Mc [3] MALAYALAM VOWEL SIGN O..MALAYALAM VOWEL SIGN AU
+0DDA ; NFKD_QC; N # Mc SINHALA VOWEL SIGN DIGA KOMBUVA
+0DDC..0DDE ; NFKD_QC; N # Mc [3] SINHALA VOWEL SIGN KOMBUVA HAA AELA-PILLA..SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA
+0E33 ; NFKD_QC; N # Lo THAI CHARACTER SARA AM
+0EB3 ; NFKD_QC; N # Lo LAO VOWEL SIGN AM
+0EDC..0EDD ; NFKD_QC; N # Lo [2] LAO HO NO..LAO HO MO
+0F0C ; NFKD_QC; N # Po TIBETAN MARK DELIMITER TSHEG BSTAR
+0F43 ; NFKD_QC; N # Lo TIBETAN LETTER GHA
+0F4D ; NFKD_QC; N # Lo TIBETAN LETTER DDHA
+0F52 ; NFKD_QC; N # Lo TIBETAN LETTER DHA
+0F57 ; NFKD_QC; N # Lo TIBETAN LETTER BHA
+0F5C ; NFKD_QC; N # Lo TIBETAN LETTER DZHA
+0F69 ; NFKD_QC; N # Lo TIBETAN LETTER KSSA
+0F73 ; NFKD_QC; N # Mn TIBETAN VOWEL SIGN II
+0F75..0F79 ; NFKD_QC; N # Mn [5] TIBETAN VOWEL SIGN UU..TIBETAN VOWEL SIGN VOCALIC LL
+0F81 ; NFKD_QC; N # Mn TIBETAN VOWEL SIGN REVERSED II
+0F93 ; NFKD_QC; N # Mn TIBETAN SUBJOINED LETTER GHA
+0F9D ; NFKD_QC; N # Mn TIBETAN SUBJOINED LETTER DDHA
+0FA2 ; NFKD_QC; N # Mn TIBETAN SUBJOINED LETTER DHA
+0FA7 ; NFKD_QC; N # Mn TIBETAN SUBJOINED LETTER BHA
+0FAC ; NFKD_QC; N # Mn TIBETAN SUBJOINED LETTER DZHA
+0FB9 ; NFKD_QC; N # Mn TIBETAN SUBJOINED LETTER KSSA
+1026 ; NFKD_QC; N # Lo MYANMAR LETTER UU
+10FC ; NFKD_QC; N # Lm MODIFIER LETTER GEORGIAN NAR
+1B06 ; NFKD_QC; N # Lo BALINESE LETTER AKARA TEDUNG
+1B08 ; NFKD_QC; N # Lo BALINESE LETTER IKARA TEDUNG
+1B0A ; NFKD_QC; N # Lo BALINESE LETTER UKARA TEDUNG
+1B0C ; NFKD_QC; N # Lo BALINESE LETTER RA REPA TEDUNG
+1B0E ; NFKD_QC; N # Lo BALINESE LETTER LA LENGA TEDUNG
+1B12 ; NFKD_QC; N # Lo BALINESE LETTER OKARA TEDUNG
+1B3B ; NFKD_QC; N # Mc BALINESE VOWEL SIGN RA REPA TEDUNG
+1B3D ; NFKD_QC; N # Mc BALINESE VOWEL SIGN LA LENGA TEDUNG
+1B40..1B41 ; NFKD_QC; N # Mc [2] BALINESE VOWEL SIGN TALING TEDUNG..BALINESE VOWEL SIGN TALING REPA TEDUNG
+1B43 ; NFKD_QC; N # Mc BALINESE VOWEL SIGN PEPET TEDUNG
+1D2C..1D2E ; NFKD_QC; N # Lm [3] MODIFIER LETTER CAPITAL A..MODIFIER LETTER CAPITAL B
+1D30..1D3A ; NFKD_QC; N # Lm [11] MODIFIER LETTER CAPITAL D..MODIFIER LETTER CAPITAL N
+1D3C..1D4D ; NFKD_QC; N # Lm [18] MODIFIER LETTER CAPITAL O..MODIFIER LETTER SMALL G
+1D4F..1D61 ; NFKD_QC; N # Lm [19] MODIFIER LETTER SMALL K..MODIFIER LETTER SMALL CHI
+1D62..1D6A ; NFKD_QC; N # L& [9] LATIN SUBSCRIPT SMALL LETTER I..GREEK SUBSCRIPT SMALL LETTER CHI
+1D78 ; NFKD_QC; N # Lm MODIFIER LETTER CYRILLIC EN
+1D9B..1DBF ; NFKD_QC; N # Lm [37] MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER LETTER SMALL THETA
+1E00..1E9B ; NFKD_QC; N # L& [156] LATIN CAPITAL LETTER A WITH RING BELOW..LATIN SMALL LETTER LONG S WITH DOT ABOVE
+1EA0..1EF9 ; NFKD_QC; N # L& [90] LATIN CAPITAL LETTER A WITH DOT BELOW..LATIN SMALL LETTER Y WITH TILDE
+1F00..1F15 ; NFKD_QC; N # L& [22] GREEK SMALL LETTER ALPHA WITH PSILI..GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
+1F18..1F1D ; NFKD_QC; N # L& [6] GREEK CAPITAL LETTER EPSILON WITH PSILI..GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
+1F20..1F45 ; NFKD_QC; N # L& [38] GREEK SMALL LETTER ETA WITH PSILI..GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
+1F48..1F4D ; NFKD_QC; N # L& [6] GREEK CAPITAL LETTER OMICRON WITH PSILI..GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
+1F50..1F57 ; NFKD_QC; N # L& [8] GREEK SMALL LETTER UPSILON WITH PSILI..GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
+1F59 ; NFKD_QC; N # L& GREEK CAPITAL LETTER UPSILON WITH DASIA
+1F5B ; NFKD_QC; N # L& GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
+1F5D ; NFKD_QC; N # L& GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
+1F5F..1F7D ; NFKD_QC; N # L& [31] GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI..GREEK SMALL LETTER OMEGA WITH OXIA
+1F80..1FB4 ; NFKD_QC; N # L& [53] GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI..GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
+1FB6..1FBC ; NFKD_QC; N # L& [7] GREEK SMALL LETTER ALPHA WITH PERISPOMENI..GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI
+1FBD ; NFKD_QC; N # Sk GREEK KORONIS
+1FBE ; NFKD_QC; N # L& GREEK PROSGEGRAMMENI
+1FBF..1FC1 ; NFKD_QC; N # Sk [3] GREEK PSILI..GREEK DIALYTIKA AND PERISPOMENI
+1FC2..1FC4 ; NFKD_QC; N # L& [3] GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
+1FC6..1FCC ; NFKD_QC; N # L& [7] GREEK SMALL LETTER ETA WITH PERISPOMENI..GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI
+1FCD..1FCF ; NFKD_QC; N # Sk [3] GREEK PSILI AND VARIA..GREEK PSILI AND PERISPOMENI
+1FD0..1FD3 ; NFKD_QC; N # L& [4] GREEK SMALL LETTER IOTA WITH VRACHY..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA
+1FD6..1FDB ; NFKD_QC; N # L& [6] GREEK SMALL LETTER IOTA WITH PERISPOMENI..GREEK CAPITAL LETTER IOTA WITH OXIA
+1FDD..1FDF ; NFKD_QC; N # Sk [3] GREEK DASIA AND VARIA..GREEK DASIA AND PERISPOMENI
+1FE0..1FEC ; NFKD_QC; N # L& [13] GREEK SMALL LETTER UPSILON WITH VRACHY..GREEK CAPITAL LETTER RHO WITH DASIA
+1FED..1FEF ; NFKD_QC; N # Sk [3] GREEK DIALYTIKA AND VARIA..GREEK VARIA
+1FF2..1FF4 ; NFKD_QC; N # L& [3] GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
+1FF6..1FFC ; NFKD_QC; N # L& [7] GREEK SMALL LETTER OMEGA WITH PERISPOMENI..GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI
+1FFD..1FFE ; NFKD_QC; N # Sk [2] GREEK OXIA..GREEK DASIA
+2000..200A ; NFKD_QC; N # Zs [11] EN QUAD..HAIR SPACE
+2011 ; NFKD_QC; N # Pd NON-BREAKING HYPHEN
+2017 ; NFKD_QC; N # Po DOUBLE LOW LINE
+2024..2026 ; NFKD_QC; N # Po [3] ONE DOT LEADER..HORIZONTAL ELLIPSIS
+202F ; NFKD_QC; N # Zs NARROW NO-BREAK SPACE
+2033..2034 ; NFKD_QC; N # Po [2] DOUBLE PRIME..TRIPLE PRIME
+2036..2037 ; NFKD_QC; N # Po [2] REVERSED DOUBLE PRIME..REVERSED TRIPLE PRIME
+203C ; NFKD_QC; N # Po DOUBLE EXCLAMATION MARK
+203E ; NFKD_QC; N # Po OVERLINE
+2047..2049 ; NFKD_QC; N # Po [3] DOUBLE QUESTION MARK..EXCLAMATION QUESTION MARK
+2057 ; NFKD_QC; N # Po QUADRUPLE PRIME
+205F ; NFKD_QC; N # Zs MEDIUM MATHEMATICAL SPACE
+2070 ; NFKD_QC; N # No SUPERSCRIPT ZERO
+2071 ; NFKD_QC; N # L& SUPERSCRIPT LATIN SMALL LETTER I
+2074..2079 ; NFKD_QC; N # No [6] SUPERSCRIPT FOUR..SUPERSCRIPT NINE
+207A..207C ; NFKD_QC; N # Sm [3] SUPERSCRIPT PLUS SIGN..SUPERSCRIPT EQUALS SIGN
+207D ; NFKD_QC; N # Ps SUPERSCRIPT LEFT PARENTHESIS
+207E ; NFKD_QC; N # Pe SUPERSCRIPT RIGHT PARENTHESIS
+207F ; NFKD_QC; N # L& SUPERSCRIPT LATIN SMALL LETTER N
+2080..2089 ; NFKD_QC; N # No [10] SUBSCRIPT ZERO..SUBSCRIPT NINE
+208A..208C ; NFKD_QC; N # Sm [3] SUBSCRIPT PLUS SIGN..SUBSCRIPT EQUALS SIGN
+208D ; NFKD_QC; N # Ps SUBSCRIPT LEFT PARENTHESIS
+208E ; NFKD_QC; N # Pe SUBSCRIPT RIGHT PARENTHESIS
+2090..2094 ; NFKD_QC; N # Lm [5] LATIN SUBSCRIPT SMALL LETTER A..LATIN SUBSCRIPT SMALL LETTER SCHWA
+20A8 ; NFKD_QC; N # Sc RUPEE SIGN
+2100..2101 ; NFKD_QC; N # So [2] ACCOUNT OF..ADDRESSED TO THE SUBJECT
+2102 ; NFKD_QC; N # L& DOUBLE-STRUCK CAPITAL C
+2103 ; NFKD_QC; N # So DEGREE CELSIUS
+2105..2106 ; NFKD_QC; N # So [2] CARE OF..CADA UNA
+2107 ; NFKD_QC; N # L& EULER CONSTANT
+2109 ; NFKD_QC; N # So DEGREE FAHRENHEIT
+210A..2113 ; NFKD_QC; N # L& [10] SCRIPT SMALL G..SCRIPT SMALL L
+2115 ; NFKD_QC; N # L& DOUBLE-STRUCK CAPITAL N
+2116 ; NFKD_QC; N # So NUMERO SIGN
+2119..211D ; NFKD_QC; N # L& [5] DOUBLE-STRUCK CAPITAL P..DOUBLE-STRUCK CAPITAL R
+2120..2122 ; NFKD_QC; N # So [3] SERVICE MARK..TRADE MARK SIGN
+2124 ; NFKD_QC; N # L& DOUBLE-STRUCK CAPITAL Z
+2126 ; NFKD_QC; N # L& OHM SIGN
+2128 ; NFKD_QC; N # L& BLACK-LETTER CAPITAL Z
+212A..212D ; NFKD_QC; N # L& [4] KELVIN SIGN..BLACK-LETTER CAPITAL C
+212F..2131 ; NFKD_QC; N # L& [3] SCRIPT SMALL E..SCRIPT CAPITAL F
+2133..2134 ; NFKD_QC; N # L& [2] SCRIPT CAPITAL M..SCRIPT SMALL O
+2135..2138 ; NFKD_QC; N # Lo [4] ALEF SYMBOL..DALET SYMBOL
+2139 ; NFKD_QC; N # L& INFORMATION SOURCE
+213B ; NFKD_QC; N # So FACSIMILE SIGN
+213C..213F ; NFKD_QC; N # L& [4] DOUBLE-STRUCK SMALL PI..DOUBLE-STRUCK CAPITAL PI
+2140 ; NFKD_QC; N # Sm DOUBLE-STRUCK N-ARY SUMMATION
+2145..2149 ; NFKD_QC; N # L& [5] DOUBLE-STRUCK ITALIC CAPITAL D..DOUBLE-STRUCK ITALIC SMALL J
+2153..215F ; NFKD_QC; N # No [13] VULGAR FRACTION ONE THIRD..FRACTION NUMERATOR ONE
+2160..217F ; NFKD_QC; N # Nl [32] ROMAN NUMERAL ONE..SMALL ROMAN NUMERAL ONE THOUSAND
+219A..219B ; NFKD_QC; N # Sm [2] LEFTWARDS ARROW WITH STROKE..RIGHTWARDS ARROW WITH STROKE
+21AE ; NFKD_QC; N # Sm LEFT RIGHT ARROW WITH STROKE
+21CD ; NFKD_QC; N # So LEFTWARDS DOUBLE ARROW WITH STROKE
+21CE..21CF ; NFKD_QC; N # Sm [2] LEFT RIGHT DOUBLE ARROW WITH STROKE..RIGHTWARDS DOUBLE ARROW WITH STROKE
+2204 ; NFKD_QC; N # Sm THERE DOES NOT EXIST
+2209 ; NFKD_QC; N # Sm NOT AN ELEMENT OF
+220C ; NFKD_QC; N # Sm DOES NOT CONTAIN AS MEMBER
+2224 ; NFKD_QC; N # Sm DOES NOT DIVIDE
+2226 ; NFKD_QC; N # Sm NOT PARALLEL TO
+222C..222D ; NFKD_QC; N # Sm [2] DOUBLE INTEGRAL..TRIPLE INTEGRAL
+222F..2230 ; NFKD_QC; N # Sm [2] SURFACE INTEGRAL..VOLUME INTEGRAL
+2241 ; NFKD_QC; N # Sm NOT TILDE
+2244 ; NFKD_QC; N # Sm NOT ASYMPTOTICALLY EQUAL TO
+2247 ; NFKD_QC; N # Sm NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO
+2249 ; NFKD_QC; N # Sm NOT ALMOST EQUAL TO
+2260 ; NFKD_QC; N # Sm NOT EQUAL TO
+2262 ; NFKD_QC; N # Sm NOT IDENTICAL TO
+226D..2271 ; NFKD_QC; N # Sm [5] NOT EQUIVALENT TO..NEITHER GREATER-THAN NOR EQUAL TO
+2274..2275 ; NFKD_QC; N # Sm [2] NEITHER LESS-THAN NOR EQUIVALENT TO..NEITHER GREATER-THAN NOR EQUIVALENT TO
+2278..2279 ; NFKD_QC; N # Sm [2] NEITHER LESS-THAN NOR GREATER-THAN..NEITHER GREATER-THAN NOR LESS-THAN
+2280..2281 ; NFKD_QC; N # Sm [2] DOES NOT PRECEDE..DOES NOT SUCCEED
+2284..2285 ; NFKD_QC; N # Sm [2] NOT A SUBSET OF..NOT A SUPERSET OF
+2288..2289 ; NFKD_QC; N # Sm [2] NEITHER A SUBSET OF NOR EQUAL TO..NEITHER A SUPERSET OF NOR EQUAL TO
+22AC..22AF ; NFKD_QC; N # Sm [4] DOES NOT PROVE..NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE
+22E0..22E3 ; NFKD_QC; N # Sm [4] DOES NOT PRECEDE OR EQUAL..NOT SQUARE ORIGINAL OF OR EQUAL TO
+22EA..22ED ; NFKD_QC; N # Sm [4] NOT NORMAL SUBGROUP OF..DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL
+2329 ; NFKD_QC; N # Ps LEFT-POINTING ANGLE BRACKET
+232A ; NFKD_QC; N # Pe RIGHT-POINTING ANGLE BRACKET
+2460..249B ; NFKD_QC; N # No [60] CIRCLED DIGIT ONE..NUMBER TWENTY FULL STOP
+249C..24E9 ; NFKD_QC; N # So [78] PARENTHESIZED LATIN SMALL LETTER A..CIRCLED LATIN SMALL LETTER Z
+24EA ; NFKD_QC; N # No CIRCLED DIGIT ZERO
+2A0C ; NFKD_QC; N # Sm QUADRUPLE INTEGRAL OPERATOR
+2A74..2A76 ; NFKD_QC; N # Sm [3] DOUBLE COLON EQUAL..THREE CONSECUTIVE EQUALS SIGNS
+2ADC ; NFKD_QC; N # Sm FORKING
+2D6F ; NFKD_QC; N # Lm TIFINAGH MODIFIER LETTER LABIALIZATION MARK
+2E9F ; NFKD_QC; N # So CJK RADICAL MOTHER
+2EF3 ; NFKD_QC; N # So CJK RADICAL C-SIMPLIFIED TURTLE
+2F00..2FD5 ; NFKD_QC; N # So [214] KANGXI RADICAL ONE..KANGXI RADICAL FLUTE
+3000 ; NFKD_QC; N # Zs IDEOGRAPHIC SPACE
+3036 ; NFKD_QC; N # So CIRCLED POSTAL MARK
+3038..303A ; NFKD_QC; N # Nl [3] HANGZHOU NUMERAL TEN..HANGZHOU NUMERAL THIRTY
+304C ; NFKD_QC; N # Lo HIRAGANA LETTER GA
+304E ; NFKD_QC; N # Lo HIRAGANA LETTER GI
+3050 ; NFKD_QC; N # Lo HIRAGANA LETTER GU
+3052 ; NFKD_QC; N # Lo HIRAGANA LETTER GE
+3054 ; NFKD_QC; N # Lo HIRAGANA LETTER GO
+3056 ; NFKD_QC; N # Lo HIRAGANA LETTER ZA
+3058 ; NFKD_QC; N # Lo HIRAGANA LETTER ZI
+305A ; NFKD_QC; N # Lo HIRAGANA LETTER ZU
+305C ; NFKD_QC; N # Lo HIRAGANA LETTER ZE
+305E ; NFKD_QC; N # Lo HIRAGANA LETTER ZO
+3060 ; NFKD_QC; N # Lo HIRAGANA LETTER DA
+3062 ; NFKD_QC; N # Lo HIRAGANA LETTER DI
+3065 ; NFKD_QC; N # Lo HIRAGANA LETTER DU
+3067 ; NFKD_QC; N # Lo HIRAGANA LETTER DE
+3069 ; NFKD_QC; N # Lo HIRAGANA LETTER DO
+3070..3071 ; NFKD_QC; N # Lo [2] HIRAGANA LETTER BA..HIRAGANA LETTER PA
+3073..3074 ; NFKD_QC; N # Lo [2] HIRAGANA LETTER BI..HIRAGANA LETTER PI
+3076..3077 ; NFKD_QC; N # Lo [2] HIRAGANA LETTER BU..HIRAGANA LETTER PU
+3079..307A ; NFKD_QC; N # Lo [2] HIRAGANA LETTER BE..HIRAGANA LETTER PE
+307C..307D ; NFKD_QC; N # Lo [2] HIRAGANA LETTER BO..HIRAGANA LETTER PO
+3094 ; NFKD_QC; N # Lo HIRAGANA LETTER VU
+309B..309C ; NFKD_QC; N # Sk [2] KATAKANA-HIRAGANA VOICED SOUND MARK..KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+309E ; NFKD_QC; N # Lm HIRAGANA VOICED ITERATION MARK
+309F ; NFKD_QC; N # Lo HIRAGANA DIGRAPH YORI
+30AC ; NFKD_QC; N # Lo KATAKANA LETTER GA
+30AE ; NFKD_QC; N # Lo KATAKANA LETTER GI
+30B0 ; NFKD_QC; N # Lo KATAKANA LETTER GU
+30B2 ; NFKD_QC; N # Lo KATAKANA LETTER GE
+30B4 ; NFKD_QC; N # Lo KATAKANA LETTER GO
+30B6 ; NFKD_QC; N # Lo KATAKANA LETTER ZA
+30B8 ; NFKD_QC; N # Lo KATAKANA LETTER ZI
+30BA ; NFKD_QC; N # Lo KATAKANA LETTER ZU
+30BC ; NFKD_QC; N # Lo KATAKANA LETTER ZE
+30BE ; NFKD_QC; N # Lo KATAKANA LETTER ZO
+30C0 ; NFKD_QC; N # Lo KATAKANA LETTER DA
+30C2 ; NFKD_QC; N # Lo KATAKANA LETTER DI
+30C5 ; NFKD_QC; N # Lo KATAKANA LETTER DU
+30C7 ; NFKD_QC; N # Lo KATAKANA LETTER DE
+30C9 ; NFKD_QC; N # Lo KATAKANA LETTER DO
+30D0..30D1 ; NFKD_QC; N # Lo [2] KATAKANA LETTER BA..KATAKANA LETTER PA
+30D3..30D4 ; NFKD_QC; N # Lo [2] KATAKANA LETTER BI..KATAKANA LETTER PI
+30D6..30D7 ; NFKD_QC; N # Lo [2] KATAKANA LETTER BU..KATAKANA LETTER PU
+30D9..30DA ; NFKD_QC; N # Lo [2] KATAKANA LETTER BE..KATAKANA LETTER PE
+30DC..30DD ; NFKD_QC; N # Lo [2] KATAKANA LETTER BO..KATAKANA LETTER PO
+30F4 ; NFKD_QC; N # Lo KATAKANA LETTER VU
+30F7..30FA ; NFKD_QC; N # Lo [4] KATAKANA LETTER VA..KATAKANA LETTER VO
+30FE ; NFKD_QC; N # Lm KATAKANA VOICED ITERATION MARK
+30FF ; NFKD_QC; N # Lo KATAKANA DIGRAPH KOTO
+3131..318E ; NFKD_QC; N # Lo [94] HANGUL LETTER KIYEOK..HANGUL LETTER ARAEAE
+3192..3195 ; NFKD_QC; N # No [4] IDEOGRAPHIC ANNOTATION ONE MARK..IDEOGRAPHIC ANNOTATION FOUR MARK
+3196..319F ; NFKD_QC; N # So [10] IDEOGRAPHIC ANNOTATION TOP MARK..IDEOGRAPHIC ANNOTATION MAN MARK
+3200..321E ; NFKD_QC; N # So [31] PARENTHESIZED HANGUL KIYEOK..PARENTHESIZED KOREAN CHARACTER O HU
+3220..3229 ; NFKD_QC; N # No [10] PARENTHESIZED IDEOGRAPH ONE..PARENTHESIZED IDEOGRAPH TEN
+322A..3243 ; NFKD_QC; N # So [26] PARENTHESIZED IDEOGRAPH MOON..PARENTHESIZED IDEOGRAPH REACH
+3250 ; NFKD_QC; N # So PARTNERSHIP SIGN
+3251..325F ; NFKD_QC; N # No [15] CIRCLED NUMBER TWENTY ONE..CIRCLED NUMBER THIRTY FIVE
+3260..327E ; NFKD_QC; N # So [31] CIRCLED HANGUL KIYEOK..CIRCLED HANGUL IEUNG U
+3280..3289 ; NFKD_QC; N # No [10] CIRCLED IDEOGRAPH ONE..CIRCLED IDEOGRAPH TEN
+328A..32B0 ; NFKD_QC; N # So [39] CIRCLED IDEOGRAPH MOON..CIRCLED IDEOGRAPH NIGHT
+32B1..32BF ; NFKD_QC; N # No [15] CIRCLED NUMBER THIRTY SIX..CIRCLED NUMBER FIFTY
+32C0..32FE ; NFKD_QC; N # So [63] IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY..CIRCLED KATAKANA WO
+3300..33FF ; NFKD_QC; N # So [256] SQUARE APAATO..SQUARE GAL
+AC00..D7A3 ; NFKD_QC; N # Lo [11172] HANGUL SYLLABLE GA..HANGUL SYLLABLE HIH
+F900..FA0D ; NFKD_QC; N # Lo [270] CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA0D
+FA10 ; NFKD_QC; N # Lo CJK COMPATIBILITY IDEOGRAPH-FA10
+FA12 ; NFKD_QC; N # Lo CJK COMPATIBILITY IDEOGRAPH-FA12
+FA15..FA1E ; NFKD_QC; N # Lo [10] CJK COMPATIBILITY IDEOGRAPH-FA15..CJK COMPATIBILITY IDEOGRAPH-FA1E
+FA20 ; NFKD_QC; N # Lo CJK COMPATIBILITY IDEOGRAPH-FA20
+FA22 ; NFKD_QC; N # Lo CJK COMPATIBILITY IDEOGRAPH-FA22
+FA25..FA26 ; NFKD_QC; N # Lo [2] CJK COMPATIBILITY IDEOGRAPH-FA25..CJK COMPATIBILITY IDEOGRAPH-FA26
+FA2A..FA2D ; NFKD_QC; N # Lo [4] CJK COMPATIBILITY IDEOGRAPH-FA2A..CJK COMPATIBILITY IDEOGRAPH-FA2D
+FA30..FA6A ; NFKD_QC; N # Lo [59] CJK COMPATIBILITY IDEOGRAPH-FA30..CJK COMPATIBILITY IDEOGRAPH-FA6A
+FA70..FAD9 ; NFKD_QC; N # Lo [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COMPATIBILITY IDEOGRAPH-FAD9
+FB00..FB06 ; NFKD_QC; N # L& [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST
+FB13..FB17 ; NFKD_QC; N # L& [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH
+FB1D ; NFKD_QC; N # Lo HEBREW LETTER YOD WITH HIRIQ
+FB1F..FB28 ; NFKD_QC; N # Lo [10] HEBREW LIGATURE YIDDISH YOD YOD PATAH..HEBREW LETTER WIDE TAV
+FB29 ; NFKD_QC; N # Sm HEBREW LETTER ALTERNATIVE PLUS SIGN
+FB2A..FB36 ; NFKD_QC; N # Lo [13] HEBREW LETTER SHIN WITH SHIN DOT..HEBREW LETTER ZAYIN WITH DAGESH
+FB38..FB3C ; NFKD_QC; N # Lo [5] HEBREW LETTER TET WITH DAGESH..HEBREW LETTER LAMED WITH DAGESH
+FB3E ; NFKD_QC; N # Lo HEBREW LETTER MEM WITH DAGESH
+FB40..FB41 ; NFKD_QC; N # Lo [2] HEBREW LETTER NUN WITH DAGESH..HEBREW LETTER SAMEKH WITH DAGESH
+FB43..FB44 ; NFKD_QC; N # Lo [2] HEBREW LETTER FINAL PE WITH DAGESH..HEBREW LETTER PE WITH DAGESH
+FB46..FBB1 ; NFKD_QC; N # Lo [108] HEBREW LETTER TSADI WITH DAGESH..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM
+FBD3..FD3D ; NFKD_QC; N # Lo [363] ARABIC LETTER NG ISOLATED FORM..ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM
+FD50..FD8F ; NFKD_QC; N # Lo [64] ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM..ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM
+FD92..FDC7 ; NFKD_QC; N # Lo [54] ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM..ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM
+FDF0..FDFB ; NFKD_QC; N # Lo [12] ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM..ARABIC LIGATURE JALLAJALALOUHOU
+FDFC ; NFKD_QC; N # Sc RIAL SIGN
+FE10..FE16 ; NFKD_QC; N # Po [7] PRESENTATION FORM FOR VERTICAL COMMA..PRESENTATION FORM FOR VERTICAL QUESTION MARK
+FE17 ; NFKD_QC; N # Ps PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET
+FE18 ; NFKD_QC; N # Pe PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET
+FE19 ; NFKD_QC; N # Po PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS
+FE30 ; NFKD_QC; N # Po PRESENTATION FORM FOR VERTICAL TWO DOT LEADER
+FE31..FE32 ; NFKD_QC; N # Pd [2] PRESENTATION FORM FOR VERTICAL EM DASH..PRESENTATION FORM FOR VERTICAL EN DASH
+FE33..FE34 ; NFKD_QC; N # Pc [2] PRESENTATION FORM FOR VERTICAL LOW LINE..PRESENTATION FORM FOR VERTICAL WAVY LOW LINE
+FE35 ; NFKD_QC; N # Ps PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS
+FE36 ; NFKD_QC; N # Pe PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS
+FE37 ; NFKD_QC; N # Ps PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET
+FE38 ; NFKD_QC; N # Pe PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET
+FE39 ; NFKD_QC; N # Ps PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET
+FE3A ; NFKD_QC; N # Pe PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET
+FE3B ; NFKD_QC; N # Ps PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET
+FE3C ; NFKD_QC; N # Pe PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET
+FE3D ; NFKD_QC; N # Ps PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET
+FE3E ; NFKD_QC; N # Pe PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET
+FE3F ; NFKD_QC; N # Ps PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET
+FE40 ; NFKD_QC; N # Pe PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET
+FE41 ; NFKD_QC; N # Ps PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET
+FE42 ; NFKD_QC; N # Pe PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET
+FE43 ; NFKD_QC; N # Ps PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET
+FE44 ; NFKD_QC; N # Pe PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET
+FE47 ; NFKD_QC; N # Ps PRESENTATION FORM FOR VERTICAL LEFT SQUARE BRACKET
+FE48 ; NFKD_QC; N # Pe PRESENTATION FORM FOR VERTICAL RIGHT SQUARE BRACKET
+FE49..FE4C ; NFKD_QC; N # Po [4] DASHED OVERLINE..DOUBLE WAVY OVERLINE
+FE4D..FE4F ; NFKD_QC; N # Pc [3] DASHED LOW LINE..WAVY LOW LINE
+FE50..FE52 ; NFKD_QC; N # Po [3] SMALL COMMA..SMALL FULL STOP
+FE54..FE57 ; NFKD_QC; N # Po [4] SMALL SEMICOLON..SMALL EXCLAMATION MARK
+FE58 ; NFKD_QC; N # Pd SMALL EM DASH
+FE59 ; NFKD_QC; N # Ps SMALL LEFT PARENTHESIS
+FE5A ; NFKD_QC; N # Pe SMALL RIGHT PARENTHESIS
+FE5B ; NFKD_QC; N # Ps SMALL LEFT CURLY BRACKET
+FE5C ; NFKD_QC; N # Pe SMALL RIGHT CURLY BRACKET
+FE5D ; NFKD_QC; N # Ps SMALL LEFT TORTOISE SHELL BRACKET
+FE5E ; NFKD_QC; N # Pe SMALL RIGHT TORTOISE SHELL BRACKET
+FE5F..FE61 ; NFKD_QC; N # Po [3] SMALL NUMBER SIGN..SMALL ASTERISK
+FE62 ; NFKD_QC; N # Sm SMALL PLUS SIGN
+FE63 ; NFKD_QC; N # Pd SMALL HYPHEN-MINUS
+FE64..FE66 ; NFKD_QC; N # Sm [3] SMALL LESS-THAN SIGN..SMALL EQUALS SIGN
+FE68 ; NFKD_QC; N # Po SMALL REVERSE SOLIDUS
+FE69 ; NFKD_QC; N # Sc SMALL DOLLAR SIGN
+FE6A..FE6B ; NFKD_QC; N # Po [2] SMALL PERCENT SIGN..SMALL COMMERCIAL AT
+FE70..FE72 ; NFKD_QC; N # Lo [3] ARABIC FATHATAN ISOLATED FORM..ARABIC DAMMATAN ISOLATED FORM
+FE74 ; NFKD_QC; N # Lo ARABIC KASRATAN ISOLATED FORM
+FE76..FEFC ; NFKD_QC; N # Lo [135] ARABIC FATHA ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF FINAL FORM
+FF01..FF03 ; NFKD_QC; N # Po [3] FULLWIDTH EXCLAMATION MARK..FULLWIDTH NUMBER SIGN
+FF04 ; NFKD_QC; N # Sc FULLWIDTH DOLLAR SIGN
+FF05..FF07 ; NFKD_QC; N # Po [3] FULLWIDTH PERCENT SIGN..FULLWIDTH APOSTROPHE
+FF08 ; NFKD_QC; N # Ps FULLWIDTH LEFT PARENTHESIS
+FF09 ; NFKD_QC; N # Pe FULLWIDTH RIGHT PARENTHESIS
+FF0A ; NFKD_QC; N # Po FULLWIDTH ASTERISK
+FF0B ; NFKD_QC; N # Sm FULLWIDTH PLUS SIGN
+FF0C ; NFKD_QC; N # Po FULLWIDTH COMMA
+FF0D ; NFKD_QC; N # Pd FULLWIDTH HYPHEN-MINUS
+FF0E..FF0F ; NFKD_QC; N # Po [2] FULLWIDTH FULL STOP..FULLWIDTH SOLIDUS
+FF10..FF19 ; NFKD_QC; N # Nd [10] FULLWIDTH DIGIT ZERO..FULLWIDTH DIGIT NINE
+FF1A..FF1B ; NFKD_QC; N # Po [2] FULLWIDTH COLON..FULLWIDTH SEMICOLON
+FF1C..FF1E ; NFKD_QC; N # Sm [3] FULLWIDTH LESS-THAN SIGN..FULLWIDTH GREATER-THAN SIGN
+FF1F..FF20 ; NFKD_QC; N # Po [2] FULLWIDTH QUESTION MARK..FULLWIDTH COMMERCIAL AT
+FF21..FF3A ; NFKD_QC; N # L& [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z
+FF3B ; NFKD_QC; N # Ps FULLWIDTH LEFT SQUARE BRACKET
+FF3C ; NFKD_QC; N # Po FULLWIDTH REVERSE SOLIDUS
+FF3D ; NFKD_QC; N # Pe FULLWIDTH RIGHT SQUARE BRACKET
+FF3E ; NFKD_QC; N # Sk FULLWIDTH CIRCUMFLEX ACCENT
+FF3F ; NFKD_QC; N # Pc FULLWIDTH LOW LINE
+FF40 ; NFKD_QC; N # Sk FULLWIDTH GRAVE ACCENT
+FF41..FF5A ; NFKD_QC; N # L& [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z
+FF5B ; NFKD_QC; N # Ps FULLWIDTH LEFT CURLY BRACKET
+FF5C ; NFKD_QC; N # Sm FULLWIDTH VERTICAL LINE
+FF5D ; NFKD_QC; N # Pe FULLWIDTH RIGHT CURLY BRACKET
+FF5E ; NFKD_QC; N # Sm FULLWIDTH TILDE
+FF5F ; NFKD_QC; N # Ps FULLWIDTH LEFT WHITE PARENTHESIS
+FF60 ; NFKD_QC; N # Pe FULLWIDTH RIGHT WHITE PARENTHESIS
+FF61 ; NFKD_QC; N # Po HALFWIDTH IDEOGRAPHIC FULL STOP
+FF62 ; NFKD_QC; N # Ps HALFWIDTH LEFT CORNER BRACKET
+FF63 ; NFKD_QC; N # Pe HALFWIDTH RIGHT CORNER BRACKET
+FF64..FF65 ; NFKD_QC; N # Po [2] HALFWIDTH IDEOGRAPHIC COMMA..HALFWIDTH KATAKANA MIDDLE DOT
+FF66..FF6F ; NFKD_QC; N # Lo [10] HALFWIDTH KATAKANA LETTER WO..HALFWIDTH KATAKANA LETTER SMALL TU
+FF70 ; NFKD_QC; N # Lm HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
+FF71..FF9D ; NFKD_QC; N # Lo [45] HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAKANA LETTER N
+FF9E..FF9F ; NFKD_QC; N # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
+FFA0..FFBE ; NFKD_QC; N # Lo [31] HALFWIDTH HANGUL FILLER..HALFWIDTH HANGUL LETTER HIEUH
+FFC2..FFC7 ; NFKD_QC; N # Lo [6] HALFWIDTH HANGUL LETTER A..HALFWIDTH HANGUL LETTER E
+FFCA..FFCF ; NFKD_QC; N # Lo [6] HALFWIDTH HANGUL LETTER YEO..HALFWIDTH HANGUL LETTER OE
+FFD2..FFD7 ; NFKD_QC; N # Lo [6] HALFWIDTH HANGUL LETTER YO..HALFWIDTH HANGUL LETTER YU
+FFDA..FFDC ; NFKD_QC; N # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL LETTER I
+FFE0..FFE1 ; NFKD_QC; N # Sc [2] FULLWIDTH CENT SIGN..FULLWIDTH POUND SIGN
+FFE2 ; NFKD_QC; N # Sm FULLWIDTH NOT SIGN
+FFE3 ; NFKD_QC; N # Sk FULLWIDTH MACRON
+FFE4 ; NFKD_QC; N # So FULLWIDTH BROKEN BAR
+FFE5..FFE6 ; NFKD_QC; N # Sc [2] FULLWIDTH YEN SIGN..FULLWIDTH WON SIGN
+FFE8 ; NFKD_QC; N # So HALFWIDTH FORMS LIGHT VERTICAL
+FFE9..FFEC ; NFKD_QC; N # Sm [4] HALFWIDTH LEFTWARDS ARROW..HALFWIDTH DOWNWARDS ARROW
+FFED..FFEE ; NFKD_QC; N # So [2] HALFWIDTH BLACK SQUARE..HALFWIDTH WHITE CIRCLE
+1D15E..1D164 ; NFKD_QC; N # So [7] MUSICAL SYMBOL HALF NOTE..MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
+1D1BB..1D1C0 ; NFKD_QC; N # So [6] MUSICAL SYMBOL MINIMA..MUSICAL SYMBOL FUSA BLACK
+1D400..1D454 ; NFKD_QC; N # L& [85] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL ITALIC SMALL G
+1D456..1D49C ; NFKD_QC; N # L& [71] MATHEMATICAL ITALIC SMALL I..MATHEMATICAL SCRIPT CAPITAL A
+1D49E..1D49F ; NFKD_QC; N # L& [2] MATHEMATICAL SCRIPT CAPITAL C..MATHEMATICAL SCRIPT CAPITAL D
+1D4A2 ; NFKD_QC; N # L& MATHEMATICAL SCRIPT CAPITAL G
+1D4A5..1D4A6 ; NFKD_QC; N # L& [2] MATHEMATICAL SCRIPT CAPITAL J..MATHEMATICAL SCRIPT CAPITAL K
+1D4A9..1D4AC ; NFKD_QC; N # L& [4] MATHEMATICAL SCRIPT CAPITAL N..MATHEMATICAL SCRIPT CAPITAL Q
+1D4AE..1D4B9 ; NFKD_QC; N # L& [12] MATHEMATICAL SCRIPT CAPITAL S..MATHEMATICAL SCRIPT SMALL D
+1D4BB ; NFKD_QC; N # L& MATHEMATICAL SCRIPT SMALL F
+1D4BD..1D4C3 ; NFKD_QC; N # L& [7] MATHEMATICAL SCRIPT SMALL H..MATHEMATICAL SCRIPT SMALL N
+1D4C5..1D505 ; NFKD_QC; N # L& [65] MATHEMATICAL SCRIPT SMALL P..MATHEMATICAL FRAKTUR CAPITAL B
+1D507..1D50A ; NFKD_QC; N # L& [4] MATHEMATICAL FRAKTUR CAPITAL D..MATHEMATICAL FRAKTUR CAPITAL G
+1D50D..1D514 ; NFKD_QC; N # L& [8] MATHEMATICAL FRAKTUR CAPITAL J..MATHEMATICAL FRAKTUR CAPITAL Q
+1D516..1D51C ; NFKD_QC; N # L& [7] MATHEMATICAL FRAKTUR CAPITAL S..MATHEMATICAL FRAKTUR CAPITAL Y
+1D51E..1D539 ; NFKD_QC; N # L& [28] MATHEMATICAL FRAKTUR SMALL A..MATHEMATICAL DOUBLE-STRUCK CAPITAL B
+1D53B..1D53E ; NFKD_QC; N # L& [4] MATHEMATICAL DOUBLE-STRUCK CAPITAL D..MATHEMATICAL DOUBLE-STRUCK CAPITAL G
+1D540..1D544 ; NFKD_QC; N # L& [5] MATHEMATICAL DOUBLE-STRUCK CAPITAL I..MATHEMATICAL DOUBLE-STRUCK CAPITAL M
+1D546 ; NFKD_QC; N # L& MATHEMATICAL DOUBLE-STRUCK CAPITAL O
+1D54A..1D550 ; NFKD_QC; N # L& [7] MATHEMATICAL DOUBLE-STRUCK CAPITAL S..MATHEMATICAL DOUBLE-STRUCK CAPITAL Y
+1D552..1D6A5 ; NFKD_QC; N # L& [340] MATHEMATICAL DOUBLE-STRUCK SMALL A..MATHEMATICAL ITALIC SMALL DOTLESS J
+1D6A8..1D6C0 ; NFKD_QC; N # L& [25] MATHEMATICAL BOLD CAPITAL ALPHA..MATHEMATICAL BOLD CAPITAL OMEGA
+1D6C1 ; NFKD_QC; N # Sm MATHEMATICAL BOLD NABLA
+1D6C2..1D6DA ; NFKD_QC; N # L& [25] MATHEMATICAL BOLD SMALL ALPHA..MATHEMATICAL BOLD SMALL OMEGA
+1D6DB ; NFKD_QC; N # Sm MATHEMATICAL BOLD PARTIAL DIFFERENTIAL
+1D6DC..1D6FA ; NFKD_QC; N # L& [31] MATHEMATICAL BOLD EPSILON SYMBOL..MATHEMATICAL ITALIC CAPITAL OMEGA
+1D6FB ; NFKD_QC; N # Sm MATHEMATICAL ITALIC NABLA
+1D6FC..1D714 ; NFKD_QC; N # L& [25] MATHEMATICAL ITALIC SMALL ALPHA..MATHEMATICAL ITALIC SMALL OMEGA
+1D715 ; NFKD_QC; N # Sm MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL
+1D716..1D734 ; NFKD_QC; N # L& [31] MATHEMATICAL ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD ITALIC CAPITAL OMEGA
+1D735 ; NFKD_QC; N # Sm MATHEMATICAL BOLD ITALIC NABLA
+1D736..1D74E ; NFKD_QC; N # L& [25] MATHEMATICAL BOLD ITALIC SMALL ALPHA..MATHEMATICAL BOLD ITALIC SMALL OMEGA
+1D74F ; NFKD_QC; N # Sm MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL
+1D750..1D76E ; NFKD_QC; N # L& [31] MATHEMATICAL BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA
+1D76F ; NFKD_QC; N # Sm MATHEMATICAL SANS-SERIF BOLD NABLA
+1D770..1D788 ; NFKD_QC; N # L& [25] MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA
+1D789 ; NFKD_QC; N # Sm MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL
+1D78A..1D7A8 ; NFKD_QC; N # L& [31] MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA
+1D7A9 ; NFKD_QC; N # Sm MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA
+1D7AA..1D7C2 ; NFKD_QC; N # L& [25] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA
+1D7C3 ; NFKD_QC; N # Sm MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL
+1D7C4..1D7CB ; NFKD_QC; N # L& [8] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD SMALL DIGAMMA
+1D7CE..1D7FF ; NFKD_QC; N # Nd [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE
+2F800..2FA1D ; NFKD_QC; N # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
+
+# Total code points: 16574
+
+# ================================================
+
+# Property: NFKC_Quick_Check
+
+# All code points not explicitly listed for NFKC_Quick_Check
+# have the value Yes (Y).
+
+# @missing: 0000..10FFFF; NFKC_QC; Yes
+
+# ================================================
+
+# NFKC_Quick_Check=No
+
+00A0 ; NFKC_QC; N # Zs NO-BREAK SPACE
+00A8 ; NFKC_QC; N # Sk DIAERESIS
+00AA ; NFKC_QC; N # L& FEMININE ORDINAL INDICATOR
+00AF ; NFKC_QC; N # Sk MACRON
+00B2..00B3 ; NFKC_QC; N # No [2] SUPERSCRIPT TWO..SUPERSCRIPT THREE
+00B4 ; NFKC_QC; N # Sk ACUTE ACCENT
+00B5 ; NFKC_QC; N # L& MICRO SIGN
+00B8 ; NFKC_QC; N # Sk CEDILLA
+00B9 ; NFKC_QC; N # No SUPERSCRIPT ONE
+00BA ; NFKC_QC; N # L& MASCULINE ORDINAL INDICATOR
+00BC..00BE ; NFKC_QC; N # No [3] VULGAR FRACTION ONE QUARTER..VULGAR FRACTION THREE QUARTERS
+0132..0133 ; NFKC_QC; N # L& [2] LATIN CAPITAL LIGATURE IJ..LATIN SMALL LIGATURE IJ
+013F..0140 ; NFKC_QC; N # L& [2] LATIN CAPITAL LETTER L WITH MIDDLE DOT..LATIN SMALL LETTER L WITH MIDDLE DOT
+0149 ; NFKC_QC; N # L& LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
+017F ; NFKC_QC; N # L& LATIN SMALL LETTER LONG S
+01C4..01CC ; NFKC_QC; N # L& [9] LATIN CAPITAL LETTER DZ WITH CARON..LATIN SMALL LETTER NJ
+01F1..01F3 ; NFKC_QC; N # L& [3] LATIN CAPITAL LETTER DZ..LATIN SMALL LETTER DZ
+02B0..02B8 ; NFKC_QC; N # Lm [9] MODIFIER LETTER SMALL H..MODIFIER LETTER SMALL Y
+02D8..02DD ; NFKC_QC; N # Sk [6] BREVE..DOUBLE ACUTE ACCENT
+02E0..02E4 ; NFKC_QC; N # Lm [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
+0340..0341 ; NFKC_QC; N # Mn [2] COMBINING GRAVE TONE MARK..COMBINING ACUTE TONE MARK
+0343..0344 ; NFKC_QC; N # Mn [2] COMBINING GREEK KORONIS..COMBINING GREEK DIALYTIKA TONOS
+0374 ; NFKC_QC; N # Sk GREEK NUMERAL SIGN
+037A ; NFKC_QC; N # Lm GREEK YPOGEGRAMMENI
+037E ; NFKC_QC; N # Po GREEK QUESTION MARK
+0384..0385 ; NFKC_QC; N # Sk [2] GREEK TONOS..GREEK DIALYTIKA TONOS
+0387 ; NFKC_QC; N # Po GREEK ANO TELEIA
+03D0..03D6 ; NFKC_QC; N # L& [7] GREEK BETA SYMBOL..GREEK PI SYMBOL
+03F0..03F2 ; NFKC_QC; N # L& [3] GREEK KAPPA SYMBOL..GREEK LUNATE SIGMA SYMBOL
+03F4..03F5 ; NFKC_QC; N # L& [2] GREEK CAPITAL THETA SYMBOL..GREEK LUNATE EPSILON SYMBOL
+03F9 ; NFKC_QC; N # L& GREEK CAPITAL LUNATE SIGMA SYMBOL
+0587 ; NFKC_QC; N # L& ARMENIAN SMALL LIGATURE ECH YIWN
+0675..0678 ; NFKC_QC; N # Lo [4] ARABIC LETTER HIGH HAMZA ALEF..ARABIC LETTER HIGH HAMZA YEH
+0958..095F ; NFKC_QC; N # Lo [8] DEVANAGARI LETTER QA..DEVANAGARI LETTER YYA
+09DC..09DD ; NFKC_QC; N # Lo [2] BENGALI LETTER RRA..BENGALI LETTER RHA
+09DF ; NFKC_QC; N # Lo BENGALI LETTER YYA
+0A33 ; NFKC_QC; N # Lo GURMUKHI LETTER LLA
+0A36 ; NFKC_QC; N # Lo GURMUKHI LETTER SHA
+0A59..0A5B ; NFKC_QC; N # Lo [3] GURMUKHI LETTER KHHA..GURMUKHI LETTER ZA
+0A5E ; NFKC_QC; N # Lo GURMUKHI LETTER FA
+0B5C..0B5D ; NFKC_QC; N # Lo [2] ORIYA LETTER RRA..ORIYA LETTER RHA
+0E33 ; NFKC_QC; N # Lo THAI CHARACTER SARA AM
+0EB3 ; NFKC_QC; N # Lo LAO VOWEL SIGN AM
+0EDC..0EDD ; NFKC_QC; N # Lo [2] LAO HO NO..LAO HO MO
+0F0C ; NFKC_QC; N # Po TIBETAN MARK DELIMITER TSHEG BSTAR
+0F43 ; NFKC_QC; N # Lo TIBETAN LETTER GHA
+0F4D ; NFKC_QC; N # Lo TIBETAN LETTER DDHA
+0F52 ; NFKC_QC; N # Lo TIBETAN LETTER DHA
+0F57 ; NFKC_QC; N # Lo TIBETAN LETTER BHA
+0F5C ; NFKC_QC; N # Lo TIBETAN LETTER DZHA
+0F69 ; NFKC_QC; N # Lo TIBETAN LETTER KSSA
+0F73 ; NFKC_QC; N # Mn TIBETAN VOWEL SIGN II
+0F75..0F79 ; NFKC_QC; N # Mn [5] TIBETAN VOWEL SIGN UU..TIBETAN VOWEL SIGN VOCALIC LL
+0F81 ; NFKC_QC; N # Mn TIBETAN VOWEL SIGN REVERSED II
+0F93 ; NFKC_QC; N # Mn TIBETAN SUBJOINED LETTER GHA
+0F9D ; NFKC_QC; N # Mn TIBETAN SUBJOINED LETTER DDHA
+0FA2 ; NFKC_QC; N # Mn TIBETAN SUBJOINED LETTER DHA
+0FA7 ; NFKC_QC; N # Mn TIBETAN SUBJOINED LETTER BHA
+0FAC ; NFKC_QC; N # Mn TIBETAN SUBJOINED LETTER DZHA
+0FB9 ; NFKC_QC; N # Mn TIBETAN SUBJOINED LETTER KSSA
+10FC ; NFKC_QC; N # Lm MODIFIER LETTER GEORGIAN NAR
+1D2C..1D2E ; NFKC_QC; N # Lm [3] MODIFIER LETTER CAPITAL A..MODIFIER LETTER CAPITAL B
+1D30..1D3A ; NFKC_QC; N # Lm [11] MODIFIER LETTER CAPITAL D..MODIFIER LETTER CAPITAL N
+1D3C..1D4D ; NFKC_QC; N # Lm [18] MODIFIER LETTER CAPITAL O..MODIFIER LETTER SMALL G
+1D4F..1D61 ; NFKC_QC; N # Lm [19] MODIFIER LETTER SMALL K..MODIFIER LETTER SMALL CHI
+1D62..1D6A ; NFKC_QC; N # L& [9] LATIN SUBSCRIPT SMALL LETTER I..GREEK SUBSCRIPT SMALL LETTER CHI
+1D78 ; NFKC_QC; N # Lm MODIFIER LETTER CYRILLIC EN
+1D9B..1DBF ; NFKC_QC; N # Lm [37] MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER LETTER SMALL THETA
+1E9A..1E9B ; NFKC_QC; N # L& [2] LATIN SMALL LETTER A WITH RIGHT HALF RING..LATIN SMALL LETTER LONG S WITH DOT ABOVE
+1F71 ; NFKC_QC; N # L& GREEK SMALL LETTER ALPHA WITH OXIA
+1F73 ; NFKC_QC; N # L& GREEK SMALL LETTER EPSILON WITH OXIA
+1F75 ; NFKC_QC; N # L& GREEK SMALL LETTER ETA WITH OXIA
+1F77 ; NFKC_QC; N # L& GREEK SMALL LETTER IOTA WITH OXIA
+1F79 ; NFKC_QC; N # L& GREEK SMALL LETTER OMICRON WITH OXIA
+1F7B ; NFKC_QC; N # L& GREEK SMALL LETTER UPSILON WITH OXIA
+1F7D ; NFKC_QC; N # L& GREEK SMALL LETTER OMEGA WITH OXIA
+1FBB ; NFKC_QC; N # L& GREEK CAPITAL LETTER ALPHA WITH OXIA
+1FBD ; NFKC_QC; N # Sk GREEK KORONIS
+1FBE ; NFKC_QC; N # L& GREEK PROSGEGRAMMENI
+1FBF..1FC1 ; NFKC_QC; N # Sk [3] GREEK PSILI..GREEK DIALYTIKA AND PERISPOMENI
+1FC9 ; NFKC_QC; N # L& GREEK CAPITAL LETTER EPSILON WITH OXIA
+1FCB ; NFKC_QC; N # L& GREEK CAPITAL LETTER ETA WITH OXIA
+1FCD..1FCF ; NFKC_QC; N # Sk [3] GREEK PSILI AND VARIA..GREEK PSILI AND PERISPOMENI
+1FD3 ; NFKC_QC; N # L& GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA
+1FDB ; NFKC_QC; N # L& GREEK CAPITAL LETTER IOTA WITH OXIA
+1FDD..1FDF ; NFKC_QC; N # Sk [3] GREEK DASIA AND VARIA..GREEK DASIA AND PERISPOMENI
+1FE3 ; NFKC_QC; N # L& GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA
+1FEB ; NFKC_QC; N # L& GREEK CAPITAL LETTER UPSILON WITH OXIA
+1FED..1FEF ; NFKC_QC; N # Sk [3] GREEK DIALYTIKA AND VARIA..GREEK VARIA
+1FF9 ; NFKC_QC; N # L& GREEK CAPITAL LETTER OMICRON WITH OXIA
+1FFB ; NFKC_QC; N # L& GREEK CAPITAL LETTER OMEGA WITH OXIA
+1FFD..1FFE ; NFKC_QC; N # Sk [2] GREEK OXIA..GREEK DASIA
+2000..200A ; NFKC_QC; N # Zs [11] EN QUAD..HAIR SPACE
+2011 ; NFKC_QC; N # Pd NON-BREAKING HYPHEN
+2017 ; NFKC_QC; N # Po DOUBLE LOW LINE
+2024..2026 ; NFKC_QC; N # Po [3] ONE DOT LEADER..HORIZONTAL ELLIPSIS
+202F ; NFKC_QC; N # Zs NARROW NO-BREAK SPACE
+2033..2034 ; NFKC_QC; N # Po [2] DOUBLE PRIME..TRIPLE PRIME
+2036..2037 ; NFKC_QC; N # Po [2] REVERSED DOUBLE PRIME..REVERSED TRIPLE PRIME
+203C ; NFKC_QC; N # Po DOUBLE EXCLAMATION MARK
+203E ; NFKC_QC; N # Po OVERLINE
+2047..2049 ; NFKC_QC; N # Po [3] DOUBLE QUESTION MARK..EXCLAMATION QUESTION MARK
+2057 ; NFKC_QC; N # Po QUADRUPLE PRIME
+205F ; NFKC_QC; N # Zs MEDIUM MATHEMATICAL SPACE
+2070 ; NFKC_QC; N # No SUPERSCRIPT ZERO
+2071 ; NFKC_QC; N # L& SUPERSCRIPT LATIN SMALL LETTER I
+2074..2079 ; NFKC_QC; N # No [6] SUPERSCRIPT FOUR..SUPERSCRIPT NINE
+207A..207C ; NFKC_QC; N # Sm [3] SUPERSCRIPT PLUS SIGN..SUPERSCRIPT EQUALS SIGN
+207D ; NFKC_QC; N # Ps SUPERSCRIPT LEFT PARENTHESIS
+207E ; NFKC_QC; N # Pe SUPERSCRIPT RIGHT PARENTHESIS
+207F ; NFKC_QC; N # L& SUPERSCRIPT LATIN SMALL LETTER N
+2080..2089 ; NFKC_QC; N # No [10] SUBSCRIPT ZERO..SUBSCRIPT NINE
+208A..208C ; NFKC_QC; N # Sm [3] SUBSCRIPT PLUS SIGN..SUBSCRIPT EQUALS SIGN
+208D ; NFKC_QC; N # Ps SUBSCRIPT LEFT PARENTHESIS
+208E ; NFKC_QC; N # Pe SUBSCRIPT RIGHT PARENTHESIS
+2090..2094 ; NFKC_QC; N # Lm [5] LATIN SUBSCRIPT SMALL LETTER A..LATIN SUBSCRIPT SMALL LETTER SCHWA
+20A8 ; NFKC_QC; N # Sc RUPEE SIGN
+2100..2101 ; NFKC_QC; N # So [2] ACCOUNT OF..ADDRESSED TO THE SUBJECT
+2102 ; NFKC_QC; N # L& DOUBLE-STRUCK CAPITAL C
+2103 ; NFKC_QC; N # So DEGREE CELSIUS
+2105..2106 ; NFKC_QC; N # So [2] CARE OF..CADA UNA
+2107 ; NFKC_QC; N # L& EULER CONSTANT
+2109 ; NFKC_QC; N # So DEGREE FAHRENHEIT
+210A..2113 ; NFKC_QC; N # L& [10] SCRIPT SMALL G..SCRIPT SMALL L
+2115 ; NFKC_QC; N # L& DOUBLE-STRUCK CAPITAL N
+2116 ; NFKC_QC; N # So NUMERO SIGN
+2119..211D ; NFKC_QC; N # L& [5] DOUBLE-STRUCK CAPITAL P..DOUBLE-STRUCK CAPITAL R
+2120..2122 ; NFKC_QC; N # So [3] SERVICE MARK..TRADE MARK SIGN
+2124 ; NFKC_QC; N # L& DOUBLE-STRUCK CAPITAL Z
+2126 ; NFKC_QC; N # L& OHM SIGN
+2128 ; NFKC_QC; N # L& BLACK-LETTER CAPITAL Z
+212A..212D ; NFKC_QC; N # L& [4] KELVIN SIGN..BLACK-LETTER CAPITAL C
+212F..2131 ; NFKC_QC; N # L& [3] SCRIPT SMALL E..SCRIPT CAPITAL F
+2133..2134 ; NFKC_QC; N # L& [2] SCRIPT CAPITAL M..SCRIPT SMALL O
+2135..2138 ; NFKC_QC; N # Lo [4] ALEF SYMBOL..DALET SYMBOL
+2139 ; NFKC_QC; N # L& INFORMATION SOURCE
+213B ; NFKC_QC; N # So FACSIMILE SIGN
+213C..213F ; NFKC_QC; N # L& [4] DOUBLE-STRUCK SMALL PI..DOUBLE-STRUCK CAPITAL PI
+2140 ; NFKC_QC; N # Sm DOUBLE-STRUCK N-ARY SUMMATION
+2145..2149 ; NFKC_QC; N # L& [5] DOUBLE-STRUCK ITALIC CAPITAL D..DOUBLE-STRUCK ITALIC SMALL J
+2153..215F ; NFKC_QC; N # No [13] VULGAR FRACTION ONE THIRD..FRACTION NUMERATOR ONE
+2160..217F ; NFKC_QC; N # Nl [32] ROMAN NUMERAL ONE..SMALL ROMAN NUMERAL ONE THOUSAND
+222C..222D ; NFKC_QC; N # Sm [2] DOUBLE INTEGRAL..TRIPLE INTEGRAL
+222F..2230 ; NFKC_QC; N # Sm [2] SURFACE INTEGRAL..VOLUME INTEGRAL
+2329 ; NFKC_QC; N # Ps LEFT-POINTING ANGLE BRACKET
+232A ; NFKC_QC; N # Pe RIGHT-POINTING ANGLE BRACKET
+2460..249B ; NFKC_QC; N # No [60] CIRCLED DIGIT ONE..NUMBER TWENTY FULL STOP
+249C..24E9 ; NFKC_QC; N # So [78] PARENTHESIZED LATIN SMALL LETTER A..CIRCLED LATIN SMALL LETTER Z
+24EA ; NFKC_QC; N # No CIRCLED DIGIT ZERO
+2A0C ; NFKC_QC; N # Sm QUADRUPLE INTEGRAL OPERATOR
+2A74..2A76 ; NFKC_QC; N # Sm [3] DOUBLE COLON EQUAL..THREE CONSECUTIVE EQUALS SIGNS
+2ADC ; NFKC_QC; N # Sm FORKING
+2D6F ; NFKC_QC; N # Lm TIFINAGH MODIFIER LETTER LABIALIZATION MARK
+2E9F ; NFKC_QC; N # So CJK RADICAL MOTHER
+2EF3 ; NFKC_QC; N # So CJK RADICAL C-SIMPLIFIED TURTLE
+2F00..2FD5 ; NFKC_QC; N # So [214] KANGXI RADICAL ONE..KANGXI RADICAL FLUTE
+3000 ; NFKC_QC; N # Zs IDEOGRAPHIC SPACE
+3036 ; NFKC_QC; N # So CIRCLED POSTAL MARK
+3038..303A ; NFKC_QC; N # Nl [3] HANGZHOU NUMERAL TEN..HANGZHOU NUMERAL THIRTY
+309B..309C ; NFKC_QC; N # Sk [2] KATAKANA-HIRAGANA VOICED SOUND MARK..KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+309F ; NFKC_QC; N # Lo HIRAGANA DIGRAPH YORI
+30FF ; NFKC_QC; N # Lo KATAKANA DIGRAPH KOTO
+3131..318E ; NFKC_QC; N # Lo [94] HANGUL LETTER KIYEOK..HANGUL LETTER ARAEAE
+3192..3195 ; NFKC_QC; N # No [4] IDEOGRAPHIC ANNOTATION ONE MARK..IDEOGRAPHIC ANNOTATION FOUR MARK
+3196..319F ; NFKC_QC; N # So [10] IDEOGRAPHIC ANNOTATION TOP MARK..IDEOGRAPHIC ANNOTATION MAN MARK
+3200..321E ; NFKC_QC; N # So [31] PARENTHESIZED HANGUL KIYEOK..PARENTHESIZED KOREAN CHARACTER O HU
+3220..3229 ; NFKC_QC; N # No [10] PARENTHESIZED IDEOGRAPH ONE..PARENTHESIZED IDEOGRAPH TEN
+322A..3243 ; NFKC_QC; N # So [26] PARENTHESIZED IDEOGRAPH MOON..PARENTHESIZED IDEOGRAPH REACH
+3250 ; NFKC_QC; N # So PARTNERSHIP SIGN
+3251..325F ; NFKC_QC; N # No [15] CIRCLED NUMBER TWENTY ONE..CIRCLED NUMBER THIRTY FIVE
+3260..327E ; NFKC_QC; N # So [31] CIRCLED HANGUL KIYEOK..CIRCLED HANGUL IEUNG U
+3280..3289 ; NFKC_QC; N # No [10] CIRCLED IDEOGRAPH ONE..CIRCLED IDEOGRAPH TEN
+328A..32B0 ; NFKC_QC; N # So [39] CIRCLED IDEOGRAPH MOON..CIRCLED IDEOGRAPH NIGHT
+32B1..32BF ; NFKC_QC; N # No [15] CIRCLED NUMBER THIRTY SIX..CIRCLED NUMBER FIFTY
+32C0..32FE ; NFKC_QC; N # So [63] IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY..CIRCLED KATAKANA WO
+3300..33FF ; NFKC_QC; N # So [256] SQUARE APAATO..SQUARE GAL
+F900..FA0D ; NFKC_QC; N # Lo [270] CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA0D
+FA10 ; NFKC_QC; N # Lo CJK COMPATIBILITY IDEOGRAPH-FA10
+FA12 ; NFKC_QC; N # Lo CJK COMPATIBILITY IDEOGRAPH-FA12
+FA15..FA1E ; NFKC_QC; N # Lo [10] CJK COMPATIBILITY IDEOGRAPH-FA15..CJK COMPATIBILITY IDEOGRAPH-FA1E
+FA20 ; NFKC_QC; N # Lo CJK COMPATIBILITY IDEOGRAPH-FA20
+FA22 ; NFKC_QC; N # Lo CJK COMPATIBILITY IDEOGRAPH-FA22
+FA25..FA26 ; NFKC_QC; N # Lo [2] CJK COMPATIBILITY IDEOGRAPH-FA25..CJK COMPATIBILITY IDEOGRAPH-FA26
+FA2A..FA2D ; NFKC_QC; N # Lo [4] CJK COMPATIBILITY IDEOGRAPH-FA2A..CJK COMPATIBILITY IDEOGRAPH-FA2D
+FA30..FA6A ; NFKC_QC; N # Lo [59] CJK COMPATIBILITY IDEOGRAPH-FA30..CJK COMPATIBILITY IDEOGRAPH-FA6A
+FA70..FAD9 ; NFKC_QC; N # Lo [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COMPATIBILITY IDEOGRAPH-FAD9
+FB00..FB06 ; NFKC_QC; N # L& [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST
+FB13..FB17 ; NFKC_QC; N # L& [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH
+FB1D ; NFKC_QC; N # Lo HEBREW LETTER YOD WITH HIRIQ
+FB1F..FB28 ; NFKC_QC; N # Lo [10] HEBREW LIGATURE YIDDISH YOD YOD PATAH..HEBREW LETTER WIDE TAV
+FB29 ; NFKC_QC; N # Sm HEBREW LETTER ALTERNATIVE PLUS SIGN
+FB2A..FB36 ; NFKC_QC; N # Lo [13] HEBREW LETTER SHIN WITH SHIN DOT..HEBREW LETTER ZAYIN WITH DAGESH
+FB38..FB3C ; NFKC_QC; N # Lo [5] HEBREW LETTER TET WITH DAGESH..HEBREW LETTER LAMED WITH DAGESH
+FB3E ; NFKC_QC; N # Lo HEBREW LETTER MEM WITH DAGESH
+FB40..FB41 ; NFKC_QC; N # Lo [2] HEBREW LETTER NUN WITH DAGESH..HEBREW LETTER SAMEKH WITH DAGESH
+FB43..FB44 ; NFKC_QC; N # Lo [2] HEBREW LETTER FINAL PE WITH DAGESH..HEBREW LETTER PE WITH DAGESH
+FB46..FBB1 ; NFKC_QC; N # Lo [108] HEBREW LETTER TSADI WITH DAGESH..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM
+FBD3..FD3D ; NFKC_QC; N # Lo [363] ARABIC LETTER NG ISOLATED FORM..ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM
+FD50..FD8F ; NFKC_QC; N # Lo [64] ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM..ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM
+FD92..FDC7 ; NFKC_QC; N # Lo [54] ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM..ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM
+FDF0..FDFB ; NFKC_QC; N # Lo [12] ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM..ARABIC LIGATURE JALLAJALALOUHOU
+FDFC ; NFKC_QC; N # Sc RIAL SIGN
+FE10..FE16 ; NFKC_QC; N # Po [7] PRESENTATION FORM FOR VERTICAL COMMA..PRESENTATION FORM FOR VERTICAL QUESTION MARK
+FE17 ; NFKC_QC; N # Ps PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET
+FE18 ; NFKC_QC; N # Pe PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET
+FE19 ; NFKC_QC; N # Po PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS
+FE30 ; NFKC_QC; N # Po PRESENTATION FORM FOR VERTICAL TWO DOT LEADER
+FE31..FE32 ; NFKC_QC; N # Pd [2] PRESENTATION FORM FOR VERTICAL EM DASH..PRESENTATION FORM FOR VERTICAL EN DASH
+FE33..FE34 ; NFKC_QC; N # Pc [2] PRESENTATION FORM FOR VERTICAL LOW LINE..PRESENTATION FORM FOR VERTICAL WAVY LOW LINE
+FE35 ; NFKC_QC; N # Ps PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS
+FE36 ; NFKC_QC; N # Pe PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS
+FE37 ; NFKC_QC; N # Ps PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET
+FE38 ; NFKC_QC; N # Pe PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET
+FE39 ; NFKC_QC; N # Ps PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET
+FE3A ; NFKC_QC; N # Pe PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET
+FE3B ; NFKC_QC; N # Ps PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET
+FE3C ; NFKC_QC; N # Pe PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET
+FE3D ; NFKC_QC; N # Ps PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET
+FE3E ; NFKC_QC; N # Pe PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET
+FE3F ; NFKC_QC; N # Ps PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET
+FE40 ; NFKC_QC; N # Pe PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET
+FE41 ; NFKC_QC; N # Ps PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET
+FE42 ; NFKC_QC; N # Pe PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET
+FE43 ; NFKC_QC; N # Ps PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET
+FE44 ; NFKC_QC; N # Pe PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET
+FE47 ; NFKC_QC; N # Ps PRESENTATION FORM FOR VERTICAL LEFT SQUARE BRACKET
+FE48 ; NFKC_QC; N # Pe PRESENTATION FORM FOR VERTICAL RIGHT SQUARE BRACKET
+FE49..FE4C ; NFKC_QC; N # Po [4] DASHED OVERLINE..DOUBLE WAVY OVERLINE
+FE4D..FE4F ; NFKC_QC; N # Pc [3] DASHED LOW LINE..WAVY LOW LINE
+FE50..FE52 ; NFKC_QC; N # Po [3] SMALL COMMA..SMALL FULL STOP
+FE54..FE57 ; NFKC_QC; N # Po [4] SMALL SEMICOLON..SMALL EXCLAMATION MARK
+FE58 ; NFKC_QC; N # Pd SMALL EM DASH
+FE59 ; NFKC_QC; N # Ps SMALL LEFT PARENTHESIS
+FE5A ; NFKC_QC; N # Pe SMALL RIGHT PARENTHESIS
+FE5B ; NFKC_QC; N # Ps SMALL LEFT CURLY BRACKET
+FE5C ; NFKC_QC; N # Pe SMALL RIGHT CURLY BRACKET
+FE5D ; NFKC_QC; N # Ps SMALL LEFT TORTOISE SHELL BRACKET
+FE5E ; NFKC_QC; N # Pe SMALL RIGHT TORTOISE SHELL BRACKET
+FE5F..FE61 ; NFKC_QC; N # Po [3] SMALL NUMBER SIGN..SMALL ASTERISK
+FE62 ; NFKC_QC; N # Sm SMALL PLUS SIGN
+FE63 ; NFKC_QC; N # Pd SMALL HYPHEN-MINUS
+FE64..FE66 ; NFKC_QC; N # Sm [3] SMALL LESS-THAN SIGN..SMALL EQUALS SIGN
+FE68 ; NFKC_QC; N # Po SMALL REVERSE SOLIDUS
+FE69 ; NFKC_QC; N # Sc SMALL DOLLAR SIGN
+FE6A..FE6B ; NFKC_QC; N # Po [2] SMALL PERCENT SIGN..SMALL COMMERCIAL AT
+FE70..FE72 ; NFKC_QC; N # Lo [3] ARABIC FATHATAN ISOLATED FORM..ARABIC DAMMATAN ISOLATED FORM
+FE74 ; NFKC_QC; N # Lo ARABIC KASRATAN ISOLATED FORM
+FE76..FEFC ; NFKC_QC; N # Lo [135] ARABIC FATHA ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF FINAL FORM
+FF01..FF03 ; NFKC_QC; N # Po [3] FULLWIDTH EXCLAMATION MARK..FULLWIDTH NUMBER SIGN
+FF04 ; NFKC_QC; N # Sc FULLWIDTH DOLLAR SIGN
+FF05..FF07 ; NFKC_QC; N # Po [3] FULLWIDTH PERCENT SIGN..FULLWIDTH APOSTROPHE
+FF08 ; NFKC_QC; N # Ps FULLWIDTH LEFT PARENTHESIS
+FF09 ; NFKC_QC; N # Pe FULLWIDTH RIGHT PARENTHESIS
+FF0A ; NFKC_QC; N # Po FULLWIDTH ASTERISK
+FF0B ; NFKC_QC; N # Sm FULLWIDTH PLUS SIGN
+FF0C ; NFKC_QC; N # Po FULLWIDTH COMMA
+FF0D ; NFKC_QC; N # Pd FULLWIDTH HYPHEN-MINUS
+FF0E..FF0F ; NFKC_QC; N # Po [2] FULLWIDTH FULL STOP..FULLWIDTH SOLIDUS
+FF10..FF19 ; NFKC_QC; N # Nd [10] FULLWIDTH DIGIT ZERO..FULLWIDTH DIGIT NINE
+FF1A..FF1B ; NFKC_QC; N # Po [2] FULLWIDTH COLON..FULLWIDTH SEMICOLON
+FF1C..FF1E ; NFKC_QC; N # Sm [3] FULLWIDTH LESS-THAN SIGN..FULLWIDTH GREATER-THAN SIGN
+FF1F..FF20 ; NFKC_QC; N # Po [2] FULLWIDTH QUESTION MARK..FULLWIDTH COMMERCIAL AT
+FF21..FF3A ; NFKC_QC; N # L& [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z
+FF3B ; NFKC_QC; N # Ps FULLWIDTH LEFT SQUARE BRACKET
+FF3C ; NFKC_QC; N # Po FULLWIDTH REVERSE SOLIDUS
+FF3D ; NFKC_QC; N # Pe FULLWIDTH RIGHT SQUARE BRACKET
+FF3E ; NFKC_QC; N # Sk FULLWIDTH CIRCUMFLEX ACCENT
+FF3F ; NFKC_QC; N # Pc FULLWIDTH LOW LINE
+FF40 ; NFKC_QC; N # Sk FULLWIDTH GRAVE ACCENT
+FF41..FF5A ; NFKC_QC; N # L& [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z
+FF5B ; NFKC_QC; N # Ps FULLWIDTH LEFT CURLY BRACKET
+FF5C ; NFKC_QC; N # Sm FULLWIDTH VERTICAL LINE
+FF5D ; NFKC_QC; N # Pe FULLWIDTH RIGHT CURLY BRACKET
+FF5E ; NFKC_QC; N # Sm FULLWIDTH TILDE
+FF5F ; NFKC_QC; N # Ps FULLWIDTH LEFT WHITE PARENTHESIS
+FF60 ; NFKC_QC; N # Pe FULLWIDTH RIGHT WHITE PARENTHESIS
+FF61 ; NFKC_QC; N # Po HALFWIDTH IDEOGRAPHIC FULL STOP
+FF62 ; NFKC_QC; N # Ps HALFWIDTH LEFT CORNER BRACKET
+FF63 ; NFKC_QC; N # Pe HALFWIDTH RIGHT CORNER BRACKET
+FF64..FF65 ; NFKC_QC; N # Po [2] HALFWIDTH IDEOGRAPHIC COMMA..HALFWIDTH KATAKANA MIDDLE DOT
+FF66..FF6F ; NFKC_QC; N # Lo [10] HALFWIDTH KATAKANA LETTER WO..HALFWIDTH KATAKANA LETTER SMALL TU
+FF70 ; NFKC_QC; N # Lm HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
+FF71..FF9D ; NFKC_QC; N # Lo [45] HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAKANA LETTER N
+FF9E..FF9F ; NFKC_QC; N # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
+FFA0..FFBE ; NFKC_QC; N # Lo [31] HALFWIDTH HANGUL FILLER..HALFWIDTH HANGUL LETTER HIEUH
+FFC2..FFC7 ; NFKC_QC; N # Lo [6] HALFWIDTH HANGUL LETTER A..HALFWIDTH HANGUL LETTER E
+FFCA..FFCF ; NFKC_QC; N # Lo [6] HALFWIDTH HANGUL LETTER YEO..HALFWIDTH HANGUL LETTER OE
+FFD2..FFD7 ; NFKC_QC; N # Lo [6] HALFWIDTH HANGUL LETTER YO..HALFWIDTH HANGUL LETTER YU
+FFDA..FFDC ; NFKC_QC; N # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL LETTER I
+FFE0..FFE1 ; NFKC_QC; N # Sc [2] FULLWIDTH CENT SIGN..FULLWIDTH POUND SIGN
+FFE2 ; NFKC_QC; N # Sm FULLWIDTH NOT SIGN
+FFE3 ; NFKC_QC; N # Sk FULLWIDTH MACRON
+FFE4 ; NFKC_QC; N # So FULLWIDTH BROKEN BAR
+FFE5..FFE6 ; NFKC_QC; N # Sc [2] FULLWIDTH YEN SIGN..FULLWIDTH WON SIGN
+FFE8 ; NFKC_QC; N # So HALFWIDTH FORMS LIGHT VERTICAL
+FFE9..FFEC ; NFKC_QC; N # Sm [4] HALFWIDTH LEFTWARDS ARROW..HALFWIDTH DOWNWARDS ARROW
+FFED..FFEE ; NFKC_QC; N # So [2] HALFWIDTH BLACK SQUARE..HALFWIDTH WHITE CIRCLE
+1D15E..1D164 ; NFKC_QC; N # So [7] MUSICAL SYMBOL HALF NOTE..MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
+1D1BB..1D1C0 ; NFKC_QC; N # So [6] MUSICAL SYMBOL MINIMA..MUSICAL SYMBOL FUSA BLACK
+1D400..1D454 ; NFKC_QC; N # L& [85] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL ITALIC SMALL G
+1D456..1D49C ; NFKC_QC; N # L& [71] MATHEMATICAL ITALIC SMALL I..MATHEMATICAL SCRIPT CAPITAL A
+1D49E..1D49F ; NFKC_QC; N # L& [2] MATHEMATICAL SCRIPT CAPITAL C..MATHEMATICAL SCRIPT CAPITAL D
+1D4A2 ; NFKC_QC; N # L& MATHEMATICAL SCRIPT CAPITAL G
+1D4A5..1D4A6 ; NFKC_QC; N # L& [2] MATHEMATICAL SCRIPT CAPITAL J..MATHEMATICAL SCRIPT CAPITAL K
+1D4A9..1D4AC ; NFKC_QC; N # L& [4] MATHEMATICAL SCRIPT CAPITAL N..MATHEMATICAL SCRIPT CAPITAL Q
+1D4AE..1D4B9 ; NFKC_QC; N # L& [12] MATHEMATICAL SCRIPT CAPITAL S..MATHEMATICAL SCRIPT SMALL D
+1D4BB ; NFKC_QC; N # L& MATHEMATICAL SCRIPT SMALL F
+1D4BD..1D4C3 ; NFKC_QC; N # L& [7] MATHEMATICAL SCRIPT SMALL H..MATHEMATICAL SCRIPT SMALL N
+1D4C5..1D505 ; NFKC_QC; N # L& [65] MATHEMATICAL SCRIPT SMALL P..MATHEMATICAL FRAKTUR CAPITAL B
+1D507..1D50A ; NFKC_QC; N # L& [4] MATHEMATICAL FRAKTUR CAPITAL D..MATHEMATICAL FRAKTUR CAPITAL G
+1D50D..1D514 ; NFKC_QC; N # L& [8] MATHEMATICAL FRAKTUR CAPITAL J..MATHEMATICAL FRAKTUR CAPITAL Q
+1D516..1D51C ; NFKC_QC; N # L& [7] MATHEMATICAL FRAKTUR CAPITAL S..MATHEMATICAL FRAKTUR CAPITAL Y
+1D51E..1D539 ; NFKC_QC; N # L& [28] MATHEMATICAL FRAKTUR SMALL A..MATHEMATICAL DOUBLE-STRUCK CAPITAL B
+1D53B..1D53E ; NFKC_QC; N # L& [4] MATHEMATICAL DOUBLE-STRUCK CAPITAL D..MATHEMATICAL DOUBLE-STRUCK CAPITAL G
+1D540..1D544 ; NFKC_QC; N # L& [5] MATHEMATICAL DOUBLE-STRUCK CAPITAL I..MATHEMATICAL DOUBLE-STRUCK CAPITAL M
+1D546 ; NFKC_QC; N # L& MATHEMATICAL DOUBLE-STRUCK CAPITAL O
+1D54A..1D550 ; NFKC_QC; N # L& [7] MATHEMATICAL DOUBLE-STRUCK CAPITAL S..MATHEMATICAL DOUBLE-STRUCK CAPITAL Y
+1D552..1D6A5 ; NFKC_QC; N # L& [340] MATHEMATICAL DOUBLE-STRUCK SMALL A..MATHEMATICAL ITALIC SMALL DOTLESS J
+1D6A8..1D6C0 ; NFKC_QC; N # L& [25] MATHEMATICAL BOLD CAPITAL ALPHA..MATHEMATICAL BOLD CAPITAL OMEGA
+1D6C1 ; NFKC_QC; N # Sm MATHEMATICAL BOLD NABLA
+1D6C2..1D6DA ; NFKC_QC; N # L& [25] MATHEMATICAL BOLD SMALL ALPHA..MATHEMATICAL BOLD SMALL OMEGA
+1D6DB ; NFKC_QC; N # Sm MATHEMATICAL BOLD PARTIAL DIFFERENTIAL
+1D6DC..1D6FA ; NFKC_QC; N # L& [31] MATHEMATICAL BOLD EPSILON SYMBOL..MATHEMATICAL ITALIC CAPITAL OMEGA
+1D6FB ; NFKC_QC; N # Sm MATHEMATICAL ITALIC NABLA
+1D6FC..1D714 ; NFKC_QC; N # L& [25] MATHEMATICAL ITALIC SMALL ALPHA..MATHEMATICAL ITALIC SMALL OMEGA
+1D715 ; NFKC_QC; N # Sm MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL
+1D716..1D734 ; NFKC_QC; N # L& [31] MATHEMATICAL ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD ITALIC CAPITAL OMEGA
+1D735 ; NFKC_QC; N # Sm MATHEMATICAL BOLD ITALIC NABLA
+1D736..1D74E ; NFKC_QC; N # L& [25] MATHEMATICAL BOLD ITALIC SMALL ALPHA..MATHEMATICAL BOLD ITALIC SMALL OMEGA
+1D74F ; NFKC_QC; N # Sm MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL
+1D750..1D76E ; NFKC_QC; N # L& [31] MATHEMATICAL BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA
+1D76F ; NFKC_QC; N # Sm MATHEMATICAL SANS-SERIF BOLD NABLA
+1D770..1D788 ; NFKC_QC; N # L& [25] MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA
+1D789 ; NFKC_QC; N # Sm MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL
+1D78A..1D7A8 ; NFKC_QC; N # L& [31] MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA
+1D7A9 ; NFKC_QC; N # Sm MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA
+1D7AA..1D7C2 ; NFKC_QC; N # L& [25] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA
+1D7C3 ; NFKC_QC; N # Sm MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL
+1D7C4..1D7CB ; NFKC_QC; N # L& [8] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD SMALL DIGAMMA
+1D7CE..1D7FF ; NFKC_QC; N # Nd [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE
+2F800..2FA1D ; NFKC_QC; N # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
+
+# Total code points: 4486
+
+# ================================================
+
+# NFKC_Quick_Check=Maybe
+
+0300..0304 ; NFKC_QC; M # Mn [5] COMBINING GRAVE ACCENT..COMBINING MACRON
+0306..030C ; NFKC_QC; M # Mn [7] COMBINING BREVE..COMBINING CARON
+030F ; NFKC_QC; M # Mn COMBINING DOUBLE GRAVE ACCENT
+0311 ; NFKC_QC; M # Mn COMBINING INVERTED BREVE
+0313..0314 ; NFKC_QC; M # Mn [2] COMBINING COMMA ABOVE..COMBINING REVERSED COMMA ABOVE
+031B ; NFKC_QC; M # Mn COMBINING HORN
+0323..0328 ; NFKC_QC; M # Mn [6] COMBINING DOT BELOW..COMBINING OGONEK
+032D..032E ; NFKC_QC; M # Mn [2] COMBINING CIRCUMFLEX ACCENT BELOW..COMBINING BREVE BELOW
+0330..0331 ; NFKC_QC; M # Mn [2] COMBINING TILDE BELOW..COMBINING MACRON BELOW
+0338 ; NFKC_QC; M # Mn COMBINING LONG SOLIDUS OVERLAY
+0342 ; NFKC_QC; M # Mn COMBINING GREEK PERISPOMENI
+0345 ; NFKC_QC; M # Mn COMBINING GREEK YPOGEGRAMMENI
+0653..0655 ; NFKC_QC; M # Mn [3] ARABIC MADDAH ABOVE..ARABIC HAMZA BELOW
+093C ; NFKC_QC; M # Mn DEVANAGARI SIGN NUKTA
+09BE ; NFKC_QC; M # Mc BENGALI VOWEL SIGN AA
+09D7 ; NFKC_QC; M # Mc BENGALI AU LENGTH MARK
+0B3E ; NFKC_QC; M # Mc ORIYA VOWEL SIGN AA
+0B56 ; NFKC_QC; M # Mn ORIYA AI LENGTH MARK
+0B57 ; NFKC_QC; M # Mc ORIYA AU LENGTH MARK
+0BBE ; NFKC_QC; M # Mc TAMIL VOWEL SIGN AA
+0BD7 ; NFKC_QC; M # Mc TAMIL AU LENGTH MARK
+0C56 ; NFKC_QC; M # Mn TELUGU AI LENGTH MARK
+0CC2 ; NFKC_QC; M # Mc KANNADA VOWEL SIGN UU
+0CD5..0CD6 ; NFKC_QC; M # Mc [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
+0D3E ; NFKC_QC; M # Mc MALAYALAM VOWEL SIGN AA
+0D57 ; NFKC_QC; M # Mc MALAYALAM AU LENGTH MARK
+0DCA ; NFKC_QC; M # Mn SINHALA SIGN AL-LAKUNA
+0DCF ; NFKC_QC; M # Mc SINHALA VOWEL SIGN AELA-PILLA
+0DDF ; NFKC_QC; M # Mc SINHALA VOWEL SIGN GAYANUKITTA
+102E ; NFKC_QC; M # Mn MYANMAR VOWEL SIGN II
+1161..1175 ; NFKC_QC; M # Lo [21] HANGUL JUNGSEONG A..HANGUL JUNGSEONG I
+11A8..11C2 ; NFKC_QC; M # Lo [27] HANGUL JONGSEONG KIYEOK..HANGUL JONGSEONG HIEUH
+1B35 ; NFKC_QC; M # Mc BALINESE VOWEL SIGN TEDUNG
+3099..309A ; NFKC_QC; M # Mn [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+
+# Total code points: 102
+
+# ================================================
+
+# Derived Property: Expands_On_NFD
+# Generated according to UAX #15.
+# Characters whose normalized length is not one.
+# WARNING: Normalization of STRINGS must use the algorithm in UAX #15 because characters may interact.
+# The length of a normalized string is not necessarily the sum of the lengths of the normalized characters!
+
+00C0..00C5 ; Expands_On_NFD # L& [6] LATIN CAPITAL LETTER A WITH GRAVE..LATIN CAPITAL LETTER A WITH RING ABOVE
+00C7..00CF ; Expands_On_NFD # L& [9] LATIN CAPITAL LETTER C WITH CEDILLA..LATIN CAPITAL LETTER I WITH DIAERESIS
+00D1..00D6 ; Expands_On_NFD # L& [6] LATIN CAPITAL LETTER N WITH TILDE..LATIN CAPITAL LETTER O WITH DIAERESIS
+00D9..00DD ; Expands_On_NFD # L& [5] LATIN CAPITAL LETTER U WITH GRAVE..LATIN CAPITAL LETTER Y WITH ACUTE
+00E0..00E5 ; Expands_On_NFD # L& [6] LATIN SMALL LETTER A WITH GRAVE..LATIN SMALL LETTER A WITH RING ABOVE
+00E7..00EF ; Expands_On_NFD # L& [9] LATIN SMALL LETTER C WITH CEDILLA..LATIN SMALL LETTER I WITH DIAERESIS
+00F1..00F6 ; Expands_On_NFD # L& [6] LATIN SMALL LETTER N WITH TILDE..LATIN SMALL LETTER O WITH DIAERESIS
+00F9..00FD ; Expands_On_NFD # L& [5] LATIN SMALL LETTER U WITH GRAVE..LATIN SMALL LETTER Y WITH ACUTE
+00FF..010F ; Expands_On_NFD # L& [17] LATIN SMALL LETTER Y WITH DIAERESIS..LATIN SMALL LETTER D WITH CARON
+0112..0125 ; Expands_On_NFD # L& [20] LATIN CAPITAL LETTER E WITH MACRON..LATIN SMALL LETTER H WITH CIRCUMFLEX
+0128..0130 ; Expands_On_NFD # L& [9] LATIN CAPITAL LETTER I WITH TILDE..LATIN CAPITAL LETTER I WITH DOT ABOVE
+0134..0137 ; Expands_On_NFD # L& [4] LATIN CAPITAL LETTER J WITH CIRCUMFLEX..LATIN SMALL LETTER K WITH CEDILLA
+0139..013E ; Expands_On_NFD # L& [6] LATIN CAPITAL LETTER L WITH ACUTE..LATIN SMALL LETTER L WITH CARON
+0143..0148 ; Expands_On_NFD # L& [6] LATIN CAPITAL LETTER N WITH ACUTE..LATIN SMALL LETTER N WITH CARON
+014C..0151 ; Expands_On_NFD # L& [6] LATIN CAPITAL LETTER O WITH MACRON..LATIN SMALL LETTER O WITH DOUBLE ACUTE
+0154..0165 ; Expands_On_NFD # L& [18] LATIN CAPITAL LETTER R WITH ACUTE..LATIN SMALL LETTER T WITH CARON
+0168..017E ; Expands_On_NFD # L& [23] LATIN CAPITAL LETTER U WITH TILDE..LATIN SMALL LETTER Z WITH CARON
+01A0..01A1 ; Expands_On_NFD # L& [2] LATIN CAPITAL LETTER O WITH HORN..LATIN SMALL LETTER O WITH HORN
+01AF..01B0 ; Expands_On_NFD # L& [2] LATIN CAPITAL LETTER U WITH HORN..LATIN SMALL LETTER U WITH HORN
+01CD..01DC ; Expands_On_NFD # L& [16] LATIN CAPITAL LETTER A WITH CARON..LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+01DE..01E3 ; Expands_On_NFD # L& [6] LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON..LATIN SMALL LETTER AE WITH MACRON
+01E6..01F0 ; Expands_On_NFD # L& [11] LATIN CAPITAL LETTER G WITH CARON..LATIN SMALL LETTER J WITH CARON
+01F4..01F5 ; Expands_On_NFD # L& [2] LATIN CAPITAL LETTER G WITH ACUTE..LATIN SMALL LETTER G WITH ACUTE
+01F8..021B ; Expands_On_NFD # L& [36] LATIN CAPITAL LETTER N WITH GRAVE..LATIN SMALL LETTER T WITH COMMA BELOW
+021E..021F ; Expands_On_NFD # L& [2] LATIN CAPITAL LETTER H WITH CARON..LATIN SMALL LETTER H WITH CARON
+0226..0233 ; Expands_On_NFD # L& [14] LATIN CAPITAL LETTER A WITH DOT ABOVE..LATIN SMALL LETTER Y WITH MACRON
+0344 ; Expands_On_NFD # Mn COMBINING GREEK DIALYTIKA TONOS
+0385 ; Expands_On_NFD # Sk GREEK DIALYTIKA TONOS
+0386 ; Expands_On_NFD # L& GREEK CAPITAL LETTER ALPHA WITH TONOS
+0388..038A ; Expands_On_NFD # L& [3] GREEK CAPITAL LETTER EPSILON WITH TONOS..GREEK CAPITAL LETTER IOTA WITH TONOS
+038C ; Expands_On_NFD # L& GREEK CAPITAL LETTER OMICRON WITH TONOS
+038E..0390 ; Expands_On_NFD # L& [3] GREEK CAPITAL LETTER UPSILON WITH TONOS..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+03AA..03B0 ; Expands_On_NFD # L& [7] GREEK CAPITAL LETTER IOTA WITH DIALYTIKA..GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+03CA..03CE ; Expands_On_NFD # L& [5] GREEK SMALL LETTER IOTA WITH DIALYTIKA..GREEK SMALL LETTER OMEGA WITH TONOS
+03D3..03D4 ; Expands_On_NFD # L& [2] GREEK UPSILON WITH ACUTE AND HOOK SYMBOL..GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL
+0400..0401 ; Expands_On_NFD # L& [2] CYRILLIC CAPITAL LETTER IE WITH GRAVE..CYRILLIC CAPITAL LETTER IO
+0403 ; Expands_On_NFD # L& CYRILLIC CAPITAL LETTER GJE
+0407 ; Expands_On_NFD # L& CYRILLIC CAPITAL LETTER YI
+040C..040E ; Expands_On_NFD # L& [3] CYRILLIC CAPITAL LETTER KJE..CYRILLIC CAPITAL LETTER SHORT U
+0419 ; Expands_On_NFD # L& CYRILLIC CAPITAL LETTER SHORT I
+0439 ; Expands_On_NFD # L& CYRILLIC SMALL LETTER SHORT I
+0450..0451 ; Expands_On_NFD # L& [2] CYRILLIC SMALL LETTER IE WITH GRAVE..CYRILLIC SMALL LETTER IO
+0453 ; Expands_On_NFD # L& CYRILLIC SMALL LETTER GJE
+0457 ; Expands_On_NFD # L& CYRILLIC SMALL LETTER YI
+045C..045E ; Expands_On_NFD # L& [3] CYRILLIC SMALL LETTER KJE..CYRILLIC SMALL LETTER SHORT U
+0476..0477 ; Expands_On_NFD # L& [2] CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT..CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
+04C1..04C2 ; Expands_On_NFD # L& [2] CYRILLIC CAPITAL LETTER ZHE WITH BREVE..CYRILLIC SMALL LETTER ZHE WITH BREVE
+04D0..04D3 ; Expands_On_NFD # L& [4] CYRILLIC CAPITAL LETTER A WITH BREVE..CYRILLIC SMALL LETTER A WITH DIAERESIS
+04D6..04D7 ; Expands_On_NFD # L& [2] CYRILLIC CAPITAL LETTER IE WITH BREVE..CYRILLIC SMALL LETTER IE WITH BREVE
+04DA..04DF ; Expands_On_NFD # L& [6] CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS..CYRILLIC SMALL LETTER ZE WITH DIAERESIS
+04E2..04E7 ; Expands_On_NFD # L& [6] CYRILLIC CAPITAL LETTER I WITH MACRON..CYRILLIC SMALL LETTER O WITH DIAERESIS
+04EA..04F5 ; Expands_On_NFD # L& [12] CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS..CYRILLIC SMALL LETTER CHE WITH DIAERESIS
+04F8..04F9 ; Expands_On_NFD # L& [2] CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS..CYRILLIC SMALL LETTER YERU WITH DIAERESIS
+0622..0626 ; Expands_On_NFD # Lo [5] ARABIC LETTER ALEF WITH MADDA ABOVE..ARABIC LETTER YEH WITH HAMZA ABOVE
+06C0 ; Expands_On_NFD # Lo ARABIC LETTER HEH WITH YEH ABOVE
+06C2 ; Expands_On_NFD # Lo ARABIC LETTER HEH GOAL WITH HAMZA ABOVE
+06D3 ; Expands_On_NFD # Lo ARABIC LETTER YEH BARREE WITH HAMZA ABOVE
+0929 ; Expands_On_NFD # Lo DEVANAGARI LETTER NNNA
+0931 ; Expands_On_NFD # Lo DEVANAGARI LETTER RRA
+0934 ; Expands_On_NFD # Lo DEVANAGARI LETTER LLLA
+0958..095F ; Expands_On_NFD # Lo [8] DEVANAGARI LETTER QA..DEVANAGARI LETTER YYA
+09CB..09CC ; Expands_On_NFD # Mc [2] BENGALI VOWEL SIGN O..BENGALI VOWEL SIGN AU
+09DC..09DD ; Expands_On_NFD # Lo [2] BENGALI LETTER RRA..BENGALI LETTER RHA
+09DF ; Expands_On_NFD # Lo BENGALI LETTER YYA
+0A33 ; Expands_On_NFD # Lo GURMUKHI LETTER LLA
+0A36 ; Expands_On_NFD # Lo GURMUKHI LETTER SHA
+0A59..0A5B ; Expands_On_NFD # Lo [3] GURMUKHI LETTER KHHA..GURMUKHI LETTER ZA
+0A5E ; Expands_On_NFD # Lo GURMUKHI LETTER FA
+0B48 ; Expands_On_NFD # Mc ORIYA VOWEL SIGN AI
+0B4B..0B4C ; Expands_On_NFD # Mc [2] ORIYA VOWEL SIGN O..ORIYA VOWEL SIGN AU
+0B5C..0B5D ; Expands_On_NFD # Lo [2] ORIYA LETTER RRA..ORIYA LETTER RHA
+0B94 ; Expands_On_NFD # Lo TAMIL LETTER AU
+0BCA..0BCC ; Expands_On_NFD # Mc [3] TAMIL VOWEL SIGN O..TAMIL VOWEL SIGN AU
+0C48 ; Expands_On_NFD # Mn TELUGU VOWEL SIGN AI
+0CC0 ; Expands_On_NFD # Mc KANNADA VOWEL SIGN II
+0CC7..0CC8 ; Expands_On_NFD # Mc [2] KANNADA VOWEL SIGN EE..KANNADA VOWEL SIGN AI
+0CCA..0CCB ; Expands_On_NFD # Mc [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO
+0D4A..0D4C ; Expands_On_NFD # Mc [3] MALAYALAM VOWEL SIGN O..MALAYALAM VOWEL SIGN AU
+0DDA ; Expands_On_NFD # Mc SINHALA VOWEL SIGN DIGA KOMBUVA
+0DDC..0DDE ; Expands_On_NFD # Mc [3] SINHALA VOWEL SIGN KOMBUVA HAA AELA-PILLA..SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA
+0F43 ; Expands_On_NFD # Lo TIBETAN LETTER GHA
+0F4D ; Expands_On_NFD # Lo TIBETAN LETTER DDHA
+0F52 ; Expands_On_NFD # Lo TIBETAN LETTER DHA
+0F57 ; Expands_On_NFD # Lo TIBETAN LETTER BHA
+0F5C ; Expands_On_NFD # Lo TIBETAN LETTER DZHA
+0F69 ; Expands_On_NFD # Lo TIBETAN LETTER KSSA
+0F73 ; Expands_On_NFD # Mn TIBETAN VOWEL SIGN II
+0F75..0F76 ; Expands_On_NFD # Mn [2] TIBETAN VOWEL SIGN UU..TIBETAN VOWEL SIGN VOCALIC R
+0F78 ; Expands_On_NFD # Mn TIBETAN VOWEL SIGN VOCALIC L
+0F81 ; Expands_On_NFD # Mn TIBETAN VOWEL SIGN REVERSED II
+0F93 ; Expands_On_NFD # Mn TIBETAN SUBJOINED LETTER GHA
+0F9D ; Expands_On_NFD # Mn TIBETAN SUBJOINED LETTER DDHA
+0FA2 ; Expands_On_NFD # Mn TIBETAN SUBJOINED LETTER DHA
+0FA7 ; Expands_On_NFD # Mn TIBETAN SUBJOINED LETTER BHA
+0FAC ; Expands_On_NFD # Mn TIBETAN SUBJOINED LETTER DZHA
+0FB9 ; Expands_On_NFD # Mn TIBETAN SUBJOINED LETTER KSSA
+1026 ; Expands_On_NFD # Lo MYANMAR LETTER UU
+1B06 ; Expands_On_NFD # Lo BALINESE LETTER AKARA TEDUNG
+1B08 ; Expands_On_NFD # Lo BALINESE LETTER IKARA TEDUNG
+1B0A ; Expands_On_NFD # Lo BALINESE LETTER UKARA TEDUNG
+1B0C ; Expands_On_NFD # Lo BALINESE LETTER RA REPA TEDUNG
+1B0E ; Expands_On_NFD # Lo BALINESE LETTER LA LENGA TEDUNG
+1B12 ; Expands_On_NFD # Lo BALINESE LETTER OKARA TEDUNG
+1B3B ; Expands_On_NFD # Mc BALINESE VOWEL SIGN RA REPA TEDUNG
+1B3D ; Expands_On_NFD # Mc BALINESE VOWEL SIGN LA LENGA TEDUNG
+1B40..1B41 ; Expands_On_NFD # Mc [2] BALINESE VOWEL SIGN TALING TEDUNG..BALINESE VOWEL SIGN TALING REPA TEDUNG
+1B43 ; Expands_On_NFD # Mc BALINESE VOWEL SIGN PEPET TEDUNG
+1E00..1E99 ; Expands_On_NFD # L& [154] LATIN CAPITAL LETTER A WITH RING BELOW..LATIN SMALL LETTER Y WITH RING ABOVE
+1E9B ; Expands_On_NFD # L& LATIN SMALL LETTER LONG S WITH DOT ABOVE
+1EA0..1EF9 ; Expands_On_NFD # L& [90] LATIN CAPITAL LETTER A WITH DOT BELOW..LATIN SMALL LETTER Y WITH TILDE
+1F00..1F15 ; Expands_On_NFD # L& [22] GREEK SMALL LETTER ALPHA WITH PSILI..GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
+1F18..1F1D ; Expands_On_NFD # L& [6] GREEK CAPITAL LETTER EPSILON WITH PSILI..GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
+1F20..1F45 ; Expands_On_NFD # L& [38] GREEK SMALL LETTER ETA WITH PSILI..GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
+1F48..1F4D ; Expands_On_NFD # L& [6] GREEK CAPITAL LETTER OMICRON WITH PSILI..GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
+1F50..1F57 ; Expands_On_NFD # L& [8] GREEK SMALL LETTER UPSILON WITH PSILI..GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
+1F59 ; Expands_On_NFD # L& GREEK CAPITAL LETTER UPSILON WITH DASIA
+1F5B ; Expands_On_NFD # L& GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
+1F5D ; Expands_On_NFD # L& GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
+1F5F..1F7D ; Expands_On_NFD # L& [31] GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI..GREEK SMALL LETTER OMEGA WITH OXIA
+1F80..1FB4 ; Expands_On_NFD # L& [53] GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI..GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
+1FB6..1FBC ; Expands_On_NFD # L& [7] GREEK SMALL LETTER ALPHA WITH PERISPOMENI..GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI
+1FC1 ; Expands_On_NFD # Sk GREEK DIALYTIKA AND PERISPOMENI
+1FC2..1FC4 ; Expands_On_NFD # L& [3] GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
+1FC6..1FCC ; Expands_On_NFD # L& [7] GREEK SMALL LETTER ETA WITH PERISPOMENI..GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI
+1FCD..1FCF ; Expands_On_NFD # Sk [3] GREEK PSILI AND VARIA..GREEK PSILI AND PERISPOMENI
+1FD0..1FD3 ; Expands_On_NFD # L& [4] GREEK SMALL LETTER IOTA WITH VRACHY..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA
+1FD6..1FDB ; Expands_On_NFD # L& [6] GREEK SMALL LETTER IOTA WITH PERISPOMENI..GREEK CAPITAL LETTER IOTA WITH OXIA
+1FDD..1FDF ; Expands_On_NFD # Sk [3] GREEK DASIA AND VARIA..GREEK DASIA AND PERISPOMENI
+1FE0..1FEC ; Expands_On_NFD # L& [13] GREEK SMALL LETTER UPSILON WITH VRACHY..GREEK CAPITAL LETTER RHO WITH DASIA
+1FED..1FEE ; Expands_On_NFD # Sk [2] GREEK DIALYTIKA AND VARIA..GREEK DIALYTIKA AND OXIA
+1FF2..1FF4 ; Expands_On_NFD # L& [3] GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
+1FF6..1FFC ; Expands_On_NFD # L& [7] GREEK SMALL LETTER OMEGA WITH PERISPOMENI..GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI
+212B ; Expands_On_NFD # L& ANGSTROM SIGN
+219A..219B ; Expands_On_NFD # Sm [2] LEFTWARDS ARROW WITH STROKE..RIGHTWARDS ARROW WITH STROKE
+21AE ; Expands_On_NFD # Sm LEFT RIGHT ARROW WITH STROKE
+21CD ; Expands_On_NFD # So LEFTWARDS DOUBLE ARROW WITH STROKE
+21CE..21CF ; Expands_On_NFD # Sm [2] LEFT RIGHT DOUBLE ARROW WITH STROKE..RIGHTWARDS DOUBLE ARROW WITH STROKE
+2204 ; Expands_On_NFD # Sm THERE DOES NOT EXIST
+2209 ; Expands_On_NFD # Sm NOT AN ELEMENT OF
+220C ; Expands_On_NFD # Sm DOES NOT CONTAIN AS MEMBER
+2224 ; Expands_On_NFD # Sm DOES NOT DIVIDE
+2226 ; Expands_On_NFD # Sm NOT PARALLEL TO
+2241 ; Expands_On_NFD # Sm NOT TILDE
+2244 ; Expands_On_NFD # Sm NOT ASYMPTOTICALLY EQUAL TO
+2247 ; Expands_On_NFD # Sm NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO
+2249 ; Expands_On_NFD # Sm NOT ALMOST EQUAL TO
+2260 ; Expands_On_NFD # Sm NOT EQUAL TO
+2262 ; Expands_On_NFD # Sm NOT IDENTICAL TO
+226D..2271 ; Expands_On_NFD # Sm [5] NOT EQUIVALENT TO..NEITHER GREATER-THAN NOR EQUAL TO
+2274..2275 ; Expands_On_NFD # Sm [2] NEITHER LESS-THAN NOR EQUIVALENT TO..NEITHER GREATER-THAN NOR EQUIVALENT TO
+2278..2279 ; Expands_On_NFD # Sm [2] NEITHER LESS-THAN NOR GREATER-THAN..NEITHER GREATER-THAN NOR LESS-THAN
+2280..2281 ; Expands_On_NFD # Sm [2] DOES NOT PRECEDE..DOES NOT SUCCEED
+2284..2285 ; Expands_On_NFD # Sm [2] NOT A SUBSET OF..NOT A SUPERSET OF
+2288..2289 ; Expands_On_NFD # Sm [2] NEITHER A SUBSET OF NOR EQUAL TO..NEITHER A SUPERSET OF NOR EQUAL TO
+22AC..22AF ; Expands_On_NFD # Sm [4] DOES NOT PROVE..NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE
+22E0..22E3 ; Expands_On_NFD # Sm [4] DOES NOT PRECEDE OR EQUAL..NOT SQUARE ORIGINAL OF OR EQUAL TO
+22EA..22ED ; Expands_On_NFD # Sm [4] NOT NORMAL SUBGROUP OF..DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL
+2ADC ; Expands_On_NFD # Sm FORKING
+304C ; Expands_On_NFD # Lo HIRAGANA LETTER GA
+304E ; Expands_On_NFD # Lo HIRAGANA LETTER GI
+3050 ; Expands_On_NFD # Lo HIRAGANA LETTER GU
+3052 ; Expands_On_NFD # Lo HIRAGANA LETTER GE
+3054 ; Expands_On_NFD # Lo HIRAGANA LETTER GO
+3056 ; Expands_On_NFD # Lo HIRAGANA LETTER ZA
+3058 ; Expands_On_NFD # Lo HIRAGANA LETTER ZI
+305A ; Expands_On_NFD # Lo HIRAGANA LETTER ZU
+305C ; Expands_On_NFD # Lo HIRAGANA LETTER ZE
+305E ; Expands_On_NFD # Lo HIRAGANA LETTER ZO
+3060 ; Expands_On_NFD # Lo HIRAGANA LETTER DA
+3062 ; Expands_On_NFD # Lo HIRAGANA LETTER DI
+3065 ; Expands_On_NFD # Lo HIRAGANA LETTER DU
+3067 ; Expands_On_NFD # Lo HIRAGANA LETTER DE
+3069 ; Expands_On_NFD # Lo HIRAGANA LETTER DO
+3070..3071 ; Expands_On_NFD # Lo [2] HIRAGANA LETTER BA..HIRAGANA LETTER PA
+3073..3074 ; Expands_On_NFD # Lo [2] HIRAGANA LETTER BI..HIRAGANA LETTER PI
+3076..3077 ; Expands_On_NFD # Lo [2] HIRAGANA LETTER BU..HIRAGANA LETTER PU
+3079..307A ; Expands_On_NFD # Lo [2] HIRAGANA LETTER BE..HIRAGANA LETTER PE
+307C..307D ; Expands_On_NFD # Lo [2] HIRAGANA LETTER BO..HIRAGANA LETTER PO
+3094 ; Expands_On_NFD # Lo HIRAGANA LETTER VU
+309E ; Expands_On_NFD # Lm HIRAGANA VOICED ITERATION MARK
+30AC ; Expands_On_NFD # Lo KATAKANA LETTER GA
+30AE ; Expands_On_NFD # Lo KATAKANA LETTER GI
+30B0 ; Expands_On_NFD # Lo KATAKANA LETTER GU
+30B2 ; Expands_On_NFD # Lo KATAKANA LETTER GE
+30B4 ; Expands_On_NFD # Lo KATAKANA LETTER GO
+30B6 ; Expands_On_NFD # Lo KATAKANA LETTER ZA
+30B8 ; Expands_On_NFD # Lo KATAKANA LETTER ZI
+30BA ; Expands_On_NFD # Lo KATAKANA LETTER ZU
+30BC ; Expands_On_NFD # Lo KATAKANA LETTER ZE
+30BE ; Expands_On_NFD # Lo KATAKANA LETTER ZO
+30C0 ; Expands_On_NFD # Lo KATAKANA LETTER DA
+30C2 ; Expands_On_NFD # Lo KATAKANA LETTER DI
+30C5 ; Expands_On_NFD # Lo KATAKANA LETTER DU
+30C7 ; Expands_On_NFD # Lo KATAKANA LETTER DE
+30C9 ; Expands_On_NFD # Lo KATAKANA LETTER DO
+30D0..30D1 ; Expands_On_NFD # Lo [2] KATAKANA LETTER BA..KATAKANA LETTER PA
+30D3..30D4 ; Expands_On_NFD # Lo [2] KATAKANA LETTER BI..KATAKANA LETTER PI
+30D6..30D7 ; Expands_On_NFD # Lo [2] KATAKANA LETTER BU..KATAKANA LETTER PU
+30D9..30DA ; Expands_On_NFD # Lo [2] KATAKANA LETTER BE..KATAKANA LETTER PE
+30DC..30DD ; Expands_On_NFD # Lo [2] KATAKANA LETTER BO..KATAKANA LETTER PO
+30F4 ; Expands_On_NFD # Lo KATAKANA LETTER VU
+30F7..30FA ; Expands_On_NFD # Lo [4] KATAKANA LETTER VA..KATAKANA LETTER VO
+30FE ; Expands_On_NFD # Lm KATAKANA VOICED ITERATION MARK
+AC00..D7A3 ; Expands_On_NFD # Lo [11172] HANGUL SYLLABLE GA..HANGUL SYLLABLE HIH
+FB1D ; Expands_On_NFD # Lo HEBREW LETTER YOD WITH HIRIQ
+FB1F ; Expands_On_NFD # Lo HEBREW LIGATURE YIDDISH YOD YOD PATAH
+FB2A..FB36 ; Expands_On_NFD # Lo [13] HEBREW LETTER SHIN WITH SHIN DOT..HEBREW LETTER ZAYIN WITH DAGESH
+FB38..FB3C ; Expands_On_NFD # Lo [5] HEBREW LETTER TET WITH DAGESH..HEBREW LETTER LAMED WITH DAGESH
+FB3E ; Expands_On_NFD # Lo HEBREW LETTER MEM WITH DAGESH
+FB40..FB41 ; Expands_On_NFD # Lo [2] HEBREW LETTER NUN WITH DAGESH..HEBREW LETTER SAMEKH WITH DAGESH
+FB43..FB44 ; Expands_On_NFD # Lo [2] HEBREW LETTER FINAL PE WITH DAGESH..HEBREW LETTER PE WITH DAGESH
+FB46..FB4E ; Expands_On_NFD # Lo [9] HEBREW LETTER TSADI WITH DAGESH..HEBREW LETTER PE WITH RAFE
+1D15E..1D164 ; Expands_On_NFD # So [7] MUSICAL SYMBOL HALF NOTE..MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
+1D1BB..1D1C0 ; Expands_On_NFD # So [6] MUSICAL SYMBOL MINIMA..MUSICAL SYMBOL FUSA BLACK
+
+# Total code points: 12203
+
+# ================================================
+
+# Derived Property: Expands_On_NFC
+# Generated according to UAX #15.
+# Characters whose normalized length is not one.
+# WARNING: Normalization of STRINGS must use the algorithm in UAX #15 because characters may interact.
+# The length of a normalized string is not necessarily the sum of the lengths of the normalized characters!
+
+0344 ; Expands_On_NFC # Mn COMBINING GREEK DIALYTIKA TONOS
+0958..095F ; Expands_On_NFC # Lo [8] DEVANAGARI LETTER QA..DEVANAGARI LETTER YYA
+09DC..09DD ; Expands_On_NFC # Lo [2] BENGALI LETTER RRA..BENGALI LETTER RHA
+09DF ; Expands_On_NFC # Lo BENGALI LETTER YYA
+0A33 ; Expands_On_NFC # Lo GURMUKHI LETTER LLA
+0A36 ; Expands_On_NFC # Lo GURMUKHI LETTER SHA
+0A59..0A5B ; Expands_On_NFC # Lo [3] GURMUKHI LETTER KHHA..GURMUKHI LETTER ZA
+0A5E ; Expands_On_NFC # Lo GURMUKHI LETTER FA
+0B5C..0B5D ; Expands_On_NFC # Lo [2] ORIYA LETTER RRA..ORIYA LETTER RHA
+0F43 ; Expands_On_NFC # Lo TIBETAN LETTER GHA
+0F4D ; Expands_On_NFC # Lo TIBETAN LETTER DDHA
+0F52 ; Expands_On_NFC # Lo TIBETAN LETTER DHA
+0F57 ; Expands_On_NFC # Lo TIBETAN LETTER BHA
+0F5C ; Expands_On_NFC # Lo TIBETAN LETTER DZHA
+0F69 ; Expands_On_NFC # Lo TIBETAN LETTER KSSA
+0F73 ; Expands_On_NFC # Mn TIBETAN VOWEL SIGN II
+0F75..0F76 ; Expands_On_NFC # Mn [2] TIBETAN VOWEL SIGN UU..TIBETAN VOWEL SIGN VOCALIC R
+0F78 ; Expands_On_NFC # Mn TIBETAN VOWEL SIGN VOCALIC L
+0F81 ; Expands_On_NFC # Mn TIBETAN VOWEL SIGN REVERSED II
+0F93 ; Expands_On_NFC # Mn TIBETAN SUBJOINED LETTER GHA
+0F9D ; Expands_On_NFC # Mn TIBETAN SUBJOINED LETTER DDHA
+0FA2 ; Expands_On_NFC # Mn TIBETAN SUBJOINED LETTER DHA
+0FA7 ; Expands_On_NFC # Mn TIBETAN SUBJOINED LETTER BHA
+0FAC ; Expands_On_NFC # Mn TIBETAN SUBJOINED LETTER DZHA
+0FB9 ; Expands_On_NFC # Mn TIBETAN SUBJOINED LETTER KSSA
+2ADC ; Expands_On_NFC # Sm FORKING
+FB1D ; Expands_On_NFC # Lo HEBREW LETTER YOD WITH HIRIQ
+FB1F ; Expands_On_NFC # Lo HEBREW LIGATURE YIDDISH YOD YOD PATAH
+FB2A..FB36 ; Expands_On_NFC # Lo [13] HEBREW LETTER SHIN WITH SHIN DOT..HEBREW LETTER ZAYIN WITH DAGESH
+FB38..FB3C ; Expands_On_NFC # Lo [5] HEBREW LETTER TET WITH DAGESH..HEBREW LETTER LAMED WITH DAGESH
+FB3E ; Expands_On_NFC # Lo HEBREW LETTER MEM WITH DAGESH
+FB40..FB41 ; Expands_On_NFC # Lo [2] HEBREW LETTER NUN WITH DAGESH..HEBREW LETTER SAMEKH WITH DAGESH
+FB43..FB44 ; Expands_On_NFC # Lo [2] HEBREW LETTER FINAL PE WITH DAGESH..HEBREW LETTER PE WITH DAGESH
+FB46..FB4E ; Expands_On_NFC # Lo [9] HEBREW LETTER TSADI WITH DAGESH..HEBREW LETTER PE WITH RAFE
+1D15E..1D164 ; Expands_On_NFC # So [7] MUSICAL SYMBOL HALF NOTE..MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
+1D1BB..1D1C0 ; Expands_On_NFC # So [6] MUSICAL SYMBOL MINIMA..MUSICAL SYMBOL FUSA BLACK
+
+# Total code points: 85
+
+# ================================================
+
+# Derived Property: Expands_On_NFKD
+# Generated according to UAX #15.
+# Characters whose normalized length is not one.
+# WARNING: Normalization of STRINGS must use the algorithm in UAX #15 because characters may interact.
+# The length of a normalized string is not necessarily the sum of the lengths of the normalized characters!
+
+00A8 ; Expands_On_NFKD # Sk DIAERESIS
+00AF ; Expands_On_NFKD # Sk MACRON
+00B4 ; Expands_On_NFKD # Sk ACUTE ACCENT
+00B8 ; Expands_On_NFKD # Sk CEDILLA
+00BC..00BE ; Expands_On_NFKD # No [3] VULGAR FRACTION ONE QUARTER..VULGAR FRACTION THREE QUARTERS
+00C0..00C5 ; Expands_On_NFKD # L& [6] LATIN CAPITAL LETTER A WITH GRAVE..LATIN CAPITAL LETTER A WITH RING ABOVE
+00C7..00CF ; Expands_On_NFKD # L& [9] LATIN CAPITAL LETTER C WITH CEDILLA..LATIN CAPITAL LETTER I WITH DIAERESIS
+00D1..00D6 ; Expands_On_NFKD # L& [6] LATIN CAPITAL LETTER N WITH TILDE..LATIN CAPITAL LETTER O WITH DIAERESIS
+00D9..00DD ; Expands_On_NFKD # L& [5] LATIN CAPITAL LETTER U WITH GRAVE..LATIN CAPITAL LETTER Y WITH ACUTE
+00E0..00E5 ; Expands_On_NFKD # L& [6] LATIN SMALL LETTER A WITH GRAVE..LATIN SMALL LETTER A WITH RING ABOVE
+00E7..00EF ; Expands_On_NFKD # L& [9] LATIN SMALL LETTER C WITH CEDILLA..LATIN SMALL LETTER I WITH DIAERESIS
+00F1..00F6 ; Expands_On_NFKD # L& [6] LATIN SMALL LETTER N WITH TILDE..LATIN SMALL LETTER O WITH DIAERESIS
+00F9..00FD ; Expands_On_NFKD # L& [5] LATIN SMALL LETTER U WITH GRAVE..LATIN SMALL LETTER Y WITH ACUTE
+00FF..010F ; Expands_On_NFKD # L& [17] LATIN SMALL LETTER Y WITH DIAERESIS..LATIN SMALL LETTER D WITH CARON
+0112..0125 ; Expands_On_NFKD # L& [20] LATIN CAPITAL LETTER E WITH MACRON..LATIN SMALL LETTER H WITH CIRCUMFLEX
+0128..0130 ; Expands_On_NFKD # L& [9] LATIN CAPITAL LETTER I WITH TILDE..LATIN CAPITAL LETTER I WITH DOT ABOVE
+0132..0137 ; Expands_On_NFKD # L& [6] LATIN CAPITAL LIGATURE IJ..LATIN SMALL LETTER K WITH CEDILLA
+0139..0140 ; Expands_On_NFKD # L& [8] LATIN CAPITAL LETTER L WITH ACUTE..LATIN SMALL LETTER L WITH MIDDLE DOT
+0143..0149 ; Expands_On_NFKD # L& [7] LATIN CAPITAL LETTER N WITH ACUTE..LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
+014C..0151 ; Expands_On_NFKD # L& [6] LATIN CAPITAL LETTER O WITH MACRON..LATIN SMALL LETTER O WITH DOUBLE ACUTE
+0154..0165 ; Expands_On_NFKD # L& [18] LATIN CAPITAL LETTER R WITH ACUTE..LATIN SMALL LETTER T WITH CARON
+0168..017E ; Expands_On_NFKD # L& [23] LATIN CAPITAL LETTER U WITH TILDE..LATIN SMALL LETTER Z WITH CARON
+01A0..01A1 ; Expands_On_NFKD # L& [2] LATIN CAPITAL LETTER O WITH HORN..LATIN SMALL LETTER O WITH HORN
+01AF..01B0 ; Expands_On_NFKD # L& [2] LATIN CAPITAL LETTER U WITH HORN..LATIN SMALL LETTER U WITH HORN
+01C4..01DC ; Expands_On_NFKD # L& [25] LATIN CAPITAL LETTER DZ WITH CARON..LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+01DE..01E3 ; Expands_On_NFKD # L& [6] LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON..LATIN SMALL LETTER AE WITH MACRON
+01E6..01F5 ; Expands_On_NFKD # L& [16] LATIN CAPITAL LETTER G WITH CARON..LATIN SMALL LETTER G WITH ACUTE
+01F8..021B ; Expands_On_NFKD # L& [36] LATIN CAPITAL LETTER N WITH GRAVE..LATIN SMALL LETTER T WITH COMMA BELOW
+021E..021F ; Expands_On_NFKD # L& [2] LATIN CAPITAL LETTER H WITH CARON..LATIN SMALL LETTER H WITH CARON
+0226..0233 ; Expands_On_NFKD # L& [14] LATIN CAPITAL LETTER A WITH DOT ABOVE..LATIN SMALL LETTER Y WITH MACRON
+02D8..02DD ; Expands_On_NFKD # Sk [6] BREVE..DOUBLE ACUTE ACCENT
+0344 ; Expands_On_NFKD # Mn COMBINING GREEK DIALYTIKA TONOS
+037A ; Expands_On_NFKD # Lm GREEK YPOGEGRAMMENI
+0384..0385 ; Expands_On_NFKD # Sk [2] GREEK TONOS..GREEK DIALYTIKA TONOS
+0386 ; Expands_On_NFKD # L& GREEK CAPITAL LETTER ALPHA WITH TONOS
+0388..038A ; Expands_On_NFKD # L& [3] GREEK CAPITAL LETTER EPSILON WITH TONOS..GREEK CAPITAL LETTER IOTA WITH TONOS
+038C ; Expands_On_NFKD # L& GREEK CAPITAL LETTER OMICRON WITH TONOS
+038E..0390 ; Expands_On_NFKD # L& [3] GREEK CAPITAL LETTER UPSILON WITH TONOS..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+03AA..03B0 ; Expands_On_NFKD # L& [7] GREEK CAPITAL LETTER IOTA WITH DIALYTIKA..GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+03CA..03CE ; Expands_On_NFKD # L& [5] GREEK SMALL LETTER IOTA WITH DIALYTIKA..GREEK SMALL LETTER OMEGA WITH TONOS
+03D3..03D4 ; Expands_On_NFKD # L& [2] GREEK UPSILON WITH ACUTE AND HOOK SYMBOL..GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL
+0400..0401 ; Expands_On_NFKD # L& [2] CYRILLIC CAPITAL LETTER IE WITH GRAVE..CYRILLIC CAPITAL LETTER IO
+0403 ; Expands_On_NFKD # L& CYRILLIC CAPITAL LETTER GJE
+0407 ; Expands_On_NFKD # L& CYRILLIC CAPITAL LETTER YI
+040C..040E ; Expands_On_NFKD # L& [3] CYRILLIC CAPITAL LETTER KJE..CYRILLIC CAPITAL LETTER SHORT U
+0419 ; Expands_On_NFKD # L& CYRILLIC CAPITAL LETTER SHORT I
+0439 ; Expands_On_NFKD # L& CYRILLIC SMALL LETTER SHORT I
+0450..0451 ; Expands_On_NFKD # L& [2] CYRILLIC SMALL LETTER IE WITH GRAVE..CYRILLIC SMALL LETTER IO
+0453 ; Expands_On_NFKD # L& CYRILLIC SMALL LETTER GJE
+0457 ; Expands_On_NFKD # L& CYRILLIC SMALL LETTER YI
+045C..045E ; Expands_On_NFKD # L& [3] CYRILLIC SMALL LETTER KJE..CYRILLIC SMALL LETTER SHORT U
+0476..0477 ; Expands_On_NFKD # L& [2] CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT..CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
+04C1..04C2 ; Expands_On_NFKD # L& [2] CYRILLIC CAPITAL LETTER ZHE WITH BREVE..CYRILLIC SMALL LETTER ZHE WITH BREVE
+04D0..04D3 ; Expands_On_NFKD # L& [4] CYRILLIC CAPITAL LETTER A WITH BREVE..CYRILLIC SMALL LETTER A WITH DIAERESIS
+04D6..04D7 ; Expands_On_NFKD # L& [2] CYRILLIC CAPITAL LETTER IE WITH BREVE..CYRILLIC SMALL LETTER IE WITH BREVE
+04DA..04DF ; Expands_On_NFKD # L& [6] CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS..CYRILLIC SMALL LETTER ZE WITH DIAERESIS
+04E2..04E7 ; Expands_On_NFKD # L& [6] CYRILLIC CAPITAL LETTER I WITH MACRON..CYRILLIC SMALL LETTER O WITH DIAERESIS
+04EA..04F5 ; Expands_On_NFKD # L& [12] CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS..CYRILLIC SMALL LETTER CHE WITH DIAERESIS
+04F8..04F9 ; Expands_On_NFKD # L& [2] CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS..CYRILLIC SMALL LETTER YERU WITH DIAERESIS
+0587 ; Expands_On_NFKD # L& ARMENIAN SMALL LIGATURE ECH YIWN
+0622..0626 ; Expands_On_NFKD # Lo [5] ARABIC LETTER ALEF WITH MADDA ABOVE..ARABIC LETTER YEH WITH HAMZA ABOVE
+0675..0678 ; Expands_On_NFKD # Lo [4] ARABIC LETTER HIGH HAMZA ALEF..ARABIC LETTER HIGH HAMZA YEH
+06C0 ; Expands_On_NFKD # Lo ARABIC LETTER HEH WITH YEH ABOVE
+06C2 ; Expands_On_NFKD # Lo ARABIC LETTER HEH GOAL WITH HAMZA ABOVE
+06D3 ; Expands_On_NFKD # Lo ARABIC LETTER YEH BARREE WITH HAMZA ABOVE
+0929 ; Expands_On_NFKD # Lo DEVANAGARI LETTER NNNA
+0931 ; Expands_On_NFKD # Lo DEVANAGARI LETTER RRA
+0934 ; Expands_On_NFKD # Lo DEVANAGARI LETTER LLLA
+0958..095F ; Expands_On_NFKD # Lo [8] DEVANAGARI LETTER QA..DEVANAGARI LETTER YYA
+09CB..09CC ; Expands_On_NFKD # Mc [2] BENGALI VOWEL SIGN O..BENGALI VOWEL SIGN AU
+09DC..09DD ; Expands_On_NFKD # Lo [2] BENGALI LETTER RRA..BENGALI LETTER RHA
+09DF ; Expands_On_NFKD # Lo BENGALI LETTER YYA
+0A33 ; Expands_On_NFKD # Lo GURMUKHI LETTER LLA
+0A36 ; Expands_On_NFKD # Lo GURMUKHI LETTER SHA
+0A59..0A5B ; Expands_On_NFKD # Lo [3] GURMUKHI LETTER KHHA..GURMUKHI LETTER ZA
+0A5E ; Expands_On_NFKD # Lo GURMUKHI LETTER FA
+0B48 ; Expands_On_NFKD # Mc ORIYA VOWEL SIGN AI
+0B4B..0B4C ; Expands_On_NFKD # Mc [2] ORIYA VOWEL SIGN O..ORIYA VOWEL SIGN AU
+0B5C..0B5D ; Expands_On_NFKD # Lo [2] ORIYA LETTER RRA..ORIYA LETTER RHA
+0B94 ; Expands_On_NFKD # Lo TAMIL LETTER AU
+0BCA..0BCC ; Expands_On_NFKD # Mc [3] TAMIL VOWEL SIGN O..TAMIL VOWEL SIGN AU
+0C48 ; Expands_On_NFKD # Mn TELUGU VOWEL SIGN AI
+0CC0 ; Expands_On_NFKD # Mc KANNADA VOWEL SIGN II
+0CC7..0CC8 ; Expands_On_NFKD # Mc [2] KANNADA VOWEL SIGN EE..KANNADA VOWEL SIGN AI
+0CCA..0CCB ; Expands_On_NFKD # Mc [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO
+0D4A..0D4C ; Expands_On_NFKD # Mc [3] MALAYALAM VOWEL SIGN O..MALAYALAM VOWEL SIGN AU
+0DDA ; Expands_On_NFKD # Mc SINHALA VOWEL SIGN DIGA KOMBUVA
+0DDC..0DDE ; Expands_On_NFKD # Mc [3] SINHALA VOWEL SIGN KOMBUVA HAA AELA-PILLA..SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA
+0E33 ; Expands_On_NFKD # Lo THAI CHARACTER SARA AM
+0EB3 ; Expands_On_NFKD # Lo LAO VOWEL SIGN AM
+0EDC..0EDD ; Expands_On_NFKD # Lo [2] LAO HO NO..LAO HO MO
+0F43 ; Expands_On_NFKD # Lo TIBETAN LETTER GHA
+0F4D ; Expands_On_NFKD # Lo TIBETAN LETTER DDHA
+0F52 ; Expands_On_NFKD # Lo TIBETAN LETTER DHA
+0F57 ; Expands_On_NFKD # Lo TIBETAN LETTER BHA
+0F5C ; Expands_On_NFKD # Lo TIBETAN LETTER DZHA
+0F69 ; Expands_On_NFKD # Lo TIBETAN LETTER KSSA
+0F73 ; Expands_On_NFKD # Mn TIBETAN VOWEL SIGN II
+0F75..0F79 ; Expands_On_NFKD # Mn [5] TIBETAN VOWEL SIGN UU..TIBETAN VOWEL SIGN VOCALIC LL
+0F81 ; Expands_On_NFKD # Mn TIBETAN VOWEL SIGN REVERSED II
+0F93 ; Expands_On_NFKD # Mn TIBETAN SUBJOINED LETTER GHA
+0F9D ; Expands_On_NFKD # Mn TIBETAN SUBJOINED LETTER DDHA
+0FA2 ; Expands_On_NFKD # Mn TIBETAN SUBJOINED LETTER DHA
+0FA7 ; Expands_On_NFKD # Mn TIBETAN SUBJOINED LETTER BHA
+0FAC ; Expands_On_NFKD # Mn TIBETAN SUBJOINED LETTER DZHA
+0FB9 ; Expands_On_NFKD # Mn TIBETAN SUBJOINED LETTER KSSA
+1026 ; Expands_On_NFKD # Lo MYANMAR LETTER UU
+1B06 ; Expands_On_NFKD # Lo BALINESE LETTER AKARA TEDUNG
+1B08 ; Expands_On_NFKD # Lo BALINESE LETTER IKARA TEDUNG
+1B0A ; Expands_On_NFKD # Lo BALINESE LETTER UKARA TEDUNG
+1B0C ; Expands_On_NFKD # Lo BALINESE LETTER RA REPA TEDUNG
+1B0E ; Expands_On_NFKD # Lo BALINESE LETTER LA LENGA TEDUNG
+1B12 ; Expands_On_NFKD # Lo BALINESE LETTER OKARA TEDUNG
+1B3B ; Expands_On_NFKD # Mc BALINESE VOWEL SIGN RA REPA TEDUNG
+1B3D ; Expands_On_NFKD # Mc BALINESE VOWEL SIGN LA LENGA TEDUNG
+1B40..1B41 ; Expands_On_NFKD # Mc [2] BALINESE VOWEL SIGN TALING TEDUNG..BALINESE VOWEL SIGN TALING REPA TEDUNG
+1B43 ; Expands_On_NFKD # Mc BALINESE VOWEL SIGN PEPET TEDUNG
+1E00..1E9B ; Expands_On_NFKD # L& [156] LATIN CAPITAL LETTER A WITH RING BELOW..LATIN SMALL LETTER LONG S WITH DOT ABOVE
+1EA0..1EF9 ; Expands_On_NFKD # L& [90] LATIN CAPITAL LETTER A WITH DOT BELOW..LATIN SMALL LETTER Y WITH TILDE
+1F00..1F15 ; Expands_On_NFKD # L& [22] GREEK SMALL LETTER ALPHA WITH PSILI..GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
+1F18..1F1D ; Expands_On_NFKD # L& [6] GREEK CAPITAL LETTER EPSILON WITH PSILI..GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
+1F20..1F45 ; Expands_On_NFKD # L& [38] GREEK SMALL LETTER ETA WITH PSILI..GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
+1F48..1F4D ; Expands_On_NFKD # L& [6] GREEK CAPITAL LETTER OMICRON WITH PSILI..GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
+1F50..1F57 ; Expands_On_NFKD # L& [8] GREEK SMALL LETTER UPSILON WITH PSILI..GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
+1F59 ; Expands_On_NFKD # L& GREEK CAPITAL LETTER UPSILON WITH DASIA
+1F5B ; Expands_On_NFKD # L& GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
+1F5D ; Expands_On_NFKD # L& GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
+1F5F..1F7D ; Expands_On_NFKD # L& [31] GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI..GREEK SMALL LETTER OMEGA WITH OXIA
+1F80..1FB4 ; Expands_On_NFKD # L& [53] GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI..GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
+1FB6..1FBC ; Expands_On_NFKD # L& [7] GREEK SMALL LETTER ALPHA WITH PERISPOMENI..GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI
+1FBD ; Expands_On_NFKD # Sk GREEK KORONIS
+1FBF..1FC1 ; Expands_On_NFKD # Sk [3] GREEK PSILI..GREEK DIALYTIKA AND PERISPOMENI
+1FC2..1FC4 ; Expands_On_NFKD # L& [3] GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
+1FC6..1FCC ; Expands_On_NFKD # L& [7] GREEK SMALL LETTER ETA WITH PERISPOMENI..GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI
+1FCD..1FCF ; Expands_On_NFKD # Sk [3] GREEK PSILI AND VARIA..GREEK PSILI AND PERISPOMENI
+1FD0..1FD3 ; Expands_On_NFKD # L& [4] GREEK SMALL LETTER IOTA WITH VRACHY..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA
+1FD6..1FDB ; Expands_On_NFKD # L& [6] GREEK SMALL LETTER IOTA WITH PERISPOMENI..GREEK CAPITAL LETTER IOTA WITH OXIA
+1FDD..1FDF ; Expands_On_NFKD # Sk [3] GREEK DASIA AND VARIA..GREEK DASIA AND PERISPOMENI
+1FE0..1FEC ; Expands_On_NFKD # L& [13] GREEK SMALL LETTER UPSILON WITH VRACHY..GREEK CAPITAL LETTER RHO WITH DASIA
+1FED..1FEE ; Expands_On_NFKD # Sk [2] GREEK DIALYTIKA AND VARIA..GREEK DIALYTIKA AND OXIA
+1FF2..1FF4 ; Expands_On_NFKD # L& [3] GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
+1FF6..1FFC ; Expands_On_NFKD # L& [7] GREEK SMALL LETTER OMEGA WITH PERISPOMENI..GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI
+1FFD..1FFE ; Expands_On_NFKD # Sk [2] GREEK OXIA..GREEK DASIA
+2017 ; Expands_On_NFKD # Po DOUBLE LOW LINE
+2025..2026 ; Expands_On_NFKD # Po [2] TWO DOT LEADER..HORIZONTAL ELLIPSIS
+2033..2034 ; Expands_On_NFKD # Po [2] DOUBLE PRIME..TRIPLE PRIME
+2036..2037 ; Expands_On_NFKD # Po [2] REVERSED DOUBLE PRIME..REVERSED TRIPLE PRIME
+203C ; Expands_On_NFKD # Po DOUBLE EXCLAMATION MARK
+203E ; Expands_On_NFKD # Po OVERLINE
+2047..2049 ; Expands_On_NFKD # Po [3] DOUBLE QUESTION MARK..EXCLAMATION QUESTION MARK
+2057 ; Expands_On_NFKD # Po QUADRUPLE PRIME
+20A8 ; Expands_On_NFKD # Sc RUPEE SIGN
+2100..2101 ; Expands_On_NFKD # So [2] ACCOUNT OF..ADDRESSED TO THE SUBJECT
+2103 ; Expands_On_NFKD # So DEGREE CELSIUS
+2105..2106 ; Expands_On_NFKD # So [2] CARE OF..CADA UNA
+2109 ; Expands_On_NFKD # So DEGREE FAHRENHEIT
+2116 ; Expands_On_NFKD # So NUMERO SIGN
+2120..2122 ; Expands_On_NFKD # So [3] SERVICE MARK..TRADE MARK SIGN
+212B ; Expands_On_NFKD # L& ANGSTROM SIGN
+213B ; Expands_On_NFKD # So FACSIMILE SIGN
+2153..215F ; Expands_On_NFKD # No [13] VULGAR FRACTION ONE THIRD..FRACTION NUMERATOR ONE
+2161..2163 ; Expands_On_NFKD # Nl [3] ROMAN NUMERAL TWO..ROMAN NUMERAL FOUR
+2165..2168 ; Expands_On_NFKD # Nl [4] ROMAN NUMERAL SIX..ROMAN NUMERAL NINE
+216A..216B ; Expands_On_NFKD # Nl [2] ROMAN NUMERAL ELEVEN..ROMAN NUMERAL TWELVE
+2171..2173 ; Expands_On_NFKD # Nl [3] SMALL ROMAN NUMERAL TWO..SMALL ROMAN NUMERAL FOUR
+2175..2178 ; Expands_On_NFKD # Nl [4] SMALL ROMAN NUMERAL SIX..SMALL ROMAN NUMERAL NINE
+217A..217B ; Expands_On_NFKD # Nl [2] SMALL ROMAN NUMERAL ELEVEN..SMALL ROMAN NUMERAL TWELVE
+219A..219B ; Expands_On_NFKD # Sm [2] LEFTWARDS ARROW WITH STROKE..RIGHTWARDS ARROW WITH STROKE
+21AE ; Expands_On_NFKD # Sm LEFT RIGHT ARROW WITH STROKE
+21CD ; Expands_On_NFKD # So LEFTWARDS DOUBLE ARROW WITH STROKE
+21CE..21CF ; Expands_On_NFKD # Sm [2] LEFT RIGHT DOUBLE ARROW WITH STROKE..RIGHTWARDS DOUBLE ARROW WITH STROKE
+2204 ; Expands_On_NFKD # Sm THERE DOES NOT EXIST
+2209 ; Expands_On_NFKD # Sm NOT AN ELEMENT OF
+220C ; Expands_On_NFKD # Sm DOES NOT CONTAIN AS MEMBER
+2224 ; Expands_On_NFKD # Sm DOES NOT DIVIDE
+2226 ; Expands_On_NFKD # Sm NOT PARALLEL TO
+222C..222D ; Expands_On_NFKD # Sm [2] DOUBLE INTEGRAL..TRIPLE INTEGRAL
+222F..2230 ; Expands_On_NFKD # Sm [2] SURFACE INTEGRAL..VOLUME INTEGRAL
+2241 ; Expands_On_NFKD # Sm NOT TILDE
+2244 ; Expands_On_NFKD # Sm NOT ASYMPTOTICALLY EQUAL TO
+2247 ; Expands_On_NFKD # Sm NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO
+2249 ; Expands_On_NFKD # Sm NOT ALMOST EQUAL TO
+2260 ; Expands_On_NFKD # Sm NOT EQUAL TO
+2262 ; Expands_On_NFKD # Sm NOT IDENTICAL TO
+226D..2271 ; Expands_On_NFKD # Sm [5] NOT EQUIVALENT TO..NEITHER GREATER-THAN NOR EQUAL TO
+2274..2275 ; Expands_On_NFKD # Sm [2] NEITHER LESS-THAN NOR EQUIVALENT TO..NEITHER GREATER-THAN NOR EQUIVALENT TO
+2278..2279 ; Expands_On_NFKD # Sm [2] NEITHER LESS-THAN NOR GREATER-THAN..NEITHER GREATER-THAN NOR LESS-THAN
+2280..2281 ; Expands_On_NFKD # Sm [2] DOES NOT PRECEDE..DOES NOT SUCCEED
+2284..2285 ; Expands_On_NFKD # Sm [2] NOT A SUBSET OF..NOT A SUPERSET OF
+2288..2289 ; Expands_On_NFKD # Sm [2] NEITHER A SUBSET OF NOR EQUAL TO..NEITHER A SUPERSET OF NOR EQUAL TO
+22AC..22AF ; Expands_On_NFKD # Sm [4] DOES NOT PROVE..NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE
+22E0..22E3 ; Expands_On_NFKD # Sm [4] DOES NOT PRECEDE OR EQUAL..NOT SQUARE ORIGINAL OF OR EQUAL TO
+22EA..22ED ; Expands_On_NFKD # Sm [4] NOT NORMAL SUBGROUP OF..DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL
+2469..249B ; Expands_On_NFKD # No [51] CIRCLED NUMBER TEN..NUMBER TWENTY FULL STOP
+249C..24B5 ; Expands_On_NFKD # So [26] PARENTHESIZED LATIN SMALL LETTER A..PARENTHESIZED LATIN SMALL LETTER Z
+2A0C ; Expands_On_NFKD # Sm QUADRUPLE INTEGRAL OPERATOR
+2A74..2A76 ; Expands_On_NFKD # Sm [3] DOUBLE COLON EQUAL..THREE CONSECUTIVE EQUALS SIGNS
+2ADC ; Expands_On_NFKD # Sm FORKING
+304C ; Expands_On_NFKD # Lo HIRAGANA LETTER GA
+304E ; Expands_On_NFKD # Lo HIRAGANA LETTER GI
+3050 ; Expands_On_NFKD # Lo HIRAGANA LETTER GU
+3052 ; Expands_On_NFKD # Lo HIRAGANA LETTER GE
+3054 ; Expands_On_NFKD # Lo HIRAGANA LETTER GO
+3056 ; Expands_On_NFKD # Lo HIRAGANA LETTER ZA
+3058 ; Expands_On_NFKD # Lo HIRAGANA LETTER ZI
+305A ; Expands_On_NFKD # Lo HIRAGANA LETTER ZU
+305C ; Expands_On_NFKD # Lo HIRAGANA LETTER ZE
+305E ; Expands_On_NFKD # Lo HIRAGANA LETTER ZO
+3060 ; Expands_On_NFKD # Lo HIRAGANA LETTER DA
+3062 ; Expands_On_NFKD # Lo HIRAGANA LETTER DI
+3065 ; Expands_On_NFKD # Lo HIRAGANA LETTER DU
+3067 ; Expands_On_NFKD # Lo HIRAGANA LETTER DE
+3069 ; Expands_On_NFKD # Lo HIRAGANA LETTER DO
+3070..3071 ; Expands_On_NFKD # Lo [2] HIRAGANA LETTER BA..HIRAGANA LETTER PA
+3073..3074 ; Expands_On_NFKD # Lo [2] HIRAGANA LETTER BI..HIRAGANA LETTER PI
+3076..3077 ; Expands_On_NFKD # Lo [2] HIRAGANA LETTER BU..HIRAGANA LETTER PU
+3079..307A ; Expands_On_NFKD # Lo [2] HIRAGANA LETTER BE..HIRAGANA LETTER PE
+307C..307D ; Expands_On_NFKD # Lo [2] HIRAGANA LETTER BO..HIRAGANA LETTER PO
+3094 ; Expands_On_NFKD # Lo HIRAGANA LETTER VU
+309B..309C ; Expands_On_NFKD # Sk [2] KATAKANA-HIRAGANA VOICED SOUND MARK..KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+309E ; Expands_On_NFKD # Lm HIRAGANA VOICED ITERATION MARK
+309F ; Expands_On_NFKD # Lo HIRAGANA DIGRAPH YORI
+30AC ; Expands_On_NFKD # Lo KATAKANA LETTER GA
+30AE ; Expands_On_NFKD # Lo KATAKANA LETTER GI
+30B0 ; Expands_On_NFKD # Lo KATAKANA LETTER GU
+30B2 ; Expands_On_NFKD # Lo KATAKANA LETTER GE
+30B4 ; Expands_On_NFKD # Lo KATAKANA LETTER GO
+30B6 ; Expands_On_NFKD # Lo KATAKANA LETTER ZA
+30B8 ; Expands_On_NFKD # Lo KATAKANA LETTER ZI
+30BA ; Expands_On_NFKD # Lo KATAKANA LETTER ZU
+30BC ; Expands_On_NFKD # Lo KATAKANA LETTER ZE
+30BE ; Expands_On_NFKD # Lo KATAKANA LETTER ZO
+30C0 ; Expands_On_NFKD # Lo KATAKANA LETTER DA
+30C2 ; Expands_On_NFKD # Lo KATAKANA LETTER DI
+30C5 ; Expands_On_NFKD # Lo KATAKANA LETTER DU
+30C7 ; Expands_On_NFKD # Lo KATAKANA LETTER DE
+30C9 ; Expands_On_NFKD # Lo KATAKANA LETTER DO
+30D0..30D1 ; Expands_On_NFKD # Lo [2] KATAKANA LETTER BA..KATAKANA LETTER PA
+30D3..30D4 ; Expands_On_NFKD # Lo [2] KATAKANA LETTER BI..KATAKANA LETTER PI
+30D6..30D7 ; Expands_On_NFKD # Lo [2] KATAKANA LETTER BU..KATAKANA LETTER PU
+30D9..30DA ; Expands_On_NFKD # Lo [2] KATAKANA LETTER BE..KATAKANA LETTER PE
+30DC..30DD ; Expands_On_NFKD # Lo [2] KATAKANA LETTER BO..KATAKANA LETTER PO
+30F4 ; Expands_On_NFKD # Lo KATAKANA LETTER VU
+30F7..30FA ; Expands_On_NFKD # Lo [4] KATAKANA LETTER VA..KATAKANA LETTER VO
+30FE ; Expands_On_NFKD # Lm KATAKANA VOICED ITERATION MARK
+30FF ; Expands_On_NFKD # Lo KATAKANA DIGRAPH KOTO
+3200..321E ; Expands_On_NFKD # So [31] PARENTHESIZED HANGUL KIYEOK..PARENTHESIZED KOREAN CHARACTER O HU
+3220..3229 ; Expands_On_NFKD # No [10] PARENTHESIZED IDEOGRAPH ONE..PARENTHESIZED IDEOGRAPH TEN
+322A..3243 ; Expands_On_NFKD # So [26] PARENTHESIZED IDEOGRAPH MOON..PARENTHESIZED IDEOGRAPH REACH
+3250 ; Expands_On_NFKD # So PARTNERSHIP SIGN
+3251..325F ; Expands_On_NFKD # No [15] CIRCLED NUMBER TWENTY ONE..CIRCLED NUMBER THIRTY FIVE
+326E..327E ; Expands_On_NFKD # So [17] CIRCLED HANGUL KIYEOK A..CIRCLED HANGUL IEUNG U
+32B1..32BF ; Expands_On_NFKD # No [15] CIRCLED NUMBER THIRTY SIX..CIRCLED NUMBER FIFTY
+32C0..32CF ; Expands_On_NFKD # So [16] IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY..LIMITED LIABILITY SIGN
+3300..33FF ; Expands_On_NFKD # So [256] SQUARE APAATO..SQUARE GAL
+AC00..D7A3 ; Expands_On_NFKD # Lo [11172] HANGUL SYLLABLE GA..HANGUL SYLLABLE HIH
+FB00..FB06 ; Expands_On_NFKD # L& [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST
+FB13..FB17 ; Expands_On_NFKD # L& [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH
+FB1D ; Expands_On_NFKD # Lo HEBREW LETTER YOD WITH HIRIQ
+FB1F ; Expands_On_NFKD # Lo HEBREW LIGATURE YIDDISH YOD YOD PATAH
+FB2A..FB36 ; Expands_On_NFKD # Lo [13] HEBREW LETTER SHIN WITH SHIN DOT..HEBREW LETTER ZAYIN WITH DAGESH
+FB38..FB3C ; Expands_On_NFKD # Lo [5] HEBREW LETTER TET WITH DAGESH..HEBREW LETTER LAMED WITH DAGESH
+FB3E ; Expands_On_NFKD # Lo HEBREW LETTER MEM WITH DAGESH
+FB40..FB41 ; Expands_On_NFKD # Lo [2] HEBREW LETTER NUN WITH DAGESH..HEBREW LETTER SAMEKH WITH DAGESH
+FB43..FB44 ; Expands_On_NFKD # Lo [2] HEBREW LETTER FINAL PE WITH DAGESH..HEBREW LETTER PE WITH DAGESH
+FB46..FB4F ; Expands_On_NFKD # Lo [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW LIGATURE ALEF LAMED
+FBA4..FBA5 ; Expands_On_NFKD # Lo [2] ARABIC LETTER HEH WITH YEH ABOVE ISOLATED FORM..ARABIC LETTER HEH WITH YEH ABOVE FINAL FORM
+FBB0..FBB1 ; Expands_On_NFKD # Lo [2] ARABIC LETTER YEH BARREE WITH HAMZA ABOVE ISOLATED FORM..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM
+FBDD ; Expands_On_NFKD # Lo ARABIC LETTER U WITH HAMZA ABOVE ISOLATED FORM
+FBEA..FBFB ; Expands_On_NFKD # Lo [18] ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF ISOLATED FORM..ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA INITIAL FORM
+FC00..FD3D ; Expands_On_NFKD # Lo [318] ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM ISOLATED FORM..ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM
+FD50..FD8F ; Expands_On_NFKD # Lo [64] ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM..ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM
+FD92..FDC7 ; Expands_On_NFKD # Lo [54] ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM..ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM
+FDF0..FDFB ; Expands_On_NFKD # Lo [12] ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM..ARABIC LIGATURE JALLAJALALOUHOU
+FDFC ; Expands_On_NFKD # Sc RIAL SIGN
+FE19 ; Expands_On_NFKD # Po PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS
+FE30 ; Expands_On_NFKD # Po PRESENTATION FORM FOR VERTICAL TWO DOT LEADER
+FE49..FE4C ; Expands_On_NFKD # Po [4] DASHED OVERLINE..DOUBLE WAVY OVERLINE
+FE70..FE72 ; Expands_On_NFKD # Lo [3] ARABIC FATHATAN ISOLATED FORM..ARABIC DAMMATAN ISOLATED FORM
+FE74 ; Expands_On_NFKD # Lo ARABIC KASRATAN ISOLATED FORM
+FE76..FE7F ; Expands_On_NFKD # Lo [10] ARABIC FATHA ISOLATED FORM..ARABIC SUKUN MEDIAL FORM
+FE81..FE8C ; Expands_On_NFKD # Lo [12] ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM..ARABIC LETTER YEH WITH HAMZA ABOVE MEDIAL FORM
+FEF5..FEFC ; Expands_On_NFKD # Lo [8] ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF FINAL FORM
+FFE3 ; Expands_On_NFKD # Sk FULLWIDTH MACRON
+1D15E..1D164 ; Expands_On_NFKD # So [7] MUSICAL SYMBOL HALF NOTE..MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
+1D1BB..1D1C0 ; Expands_On_NFKD # So [6] MUSICAL SYMBOL MINIMA..MUSICAL SYMBOL FUSA BLACK
+
+# Total code points: 13310
+
+# ================================================
+
+# Derived Property: Expands_On_NFKC
+# Generated according to UAX #15.
+# Characters whose normalized length is not one.
+# WARNING: Normalization of STRINGS must use the algorithm in UAX #15 because characters may interact.
+# The length of a normalized string is not necessarily the sum of the lengths of the normalized characters!
+
+00A8 ; Expands_On_NFKC # Sk DIAERESIS
+00AF ; Expands_On_NFKC # Sk MACRON
+00B4 ; Expands_On_NFKC # Sk ACUTE ACCENT
+00B8 ; Expands_On_NFKC # Sk CEDILLA
+00BC..00BE ; Expands_On_NFKC # No [3] VULGAR FRACTION ONE QUARTER..VULGAR FRACTION THREE QUARTERS
+0132..0133 ; Expands_On_NFKC # L& [2] LATIN CAPITAL LIGATURE IJ..LATIN SMALL LIGATURE IJ
+013F..0140 ; Expands_On_NFKC # L& [2] LATIN CAPITAL LETTER L WITH MIDDLE DOT..LATIN SMALL LETTER L WITH MIDDLE DOT
+0149 ; Expands_On_NFKC # L& LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
+01C4..01CC ; Expands_On_NFKC # L& [9] LATIN CAPITAL LETTER DZ WITH CARON..LATIN SMALL LETTER NJ
+01F1..01F3 ; Expands_On_NFKC # L& [3] LATIN CAPITAL LETTER DZ..LATIN SMALL LETTER DZ
+02D8..02DD ; Expands_On_NFKC # Sk [6] BREVE..DOUBLE ACUTE ACCENT
+0344 ; Expands_On_NFKC # Mn COMBINING GREEK DIALYTIKA TONOS
+037A ; Expands_On_NFKC # Lm GREEK YPOGEGRAMMENI
+0384..0385 ; Expands_On_NFKC # Sk [2] GREEK TONOS..GREEK DIALYTIKA TONOS
+0587 ; Expands_On_NFKC # L& ARMENIAN SMALL LIGATURE ECH YIWN
+0675..0678 ; Expands_On_NFKC # Lo [4] ARABIC LETTER HIGH HAMZA ALEF..ARABIC LETTER HIGH HAMZA YEH
+0958..095F ; Expands_On_NFKC # Lo [8] DEVANAGARI LETTER QA..DEVANAGARI LETTER YYA
+09DC..09DD ; Expands_On_NFKC # Lo [2] BENGALI LETTER RRA..BENGALI LETTER RHA
+09DF ; Expands_On_NFKC # Lo BENGALI LETTER YYA
+0A33 ; Expands_On_NFKC # Lo GURMUKHI LETTER LLA
+0A36 ; Expands_On_NFKC # Lo GURMUKHI LETTER SHA
+0A59..0A5B ; Expands_On_NFKC # Lo [3] GURMUKHI LETTER KHHA..GURMUKHI LETTER ZA
+0A5E ; Expands_On_NFKC # Lo GURMUKHI LETTER FA
+0B5C..0B5D ; Expands_On_NFKC # Lo [2] ORIYA LETTER RRA..ORIYA LETTER RHA
+0E33 ; Expands_On_NFKC # Lo THAI CHARACTER SARA AM
+0EB3 ; Expands_On_NFKC # Lo LAO VOWEL SIGN AM
+0EDC..0EDD ; Expands_On_NFKC # Lo [2] LAO HO NO..LAO HO MO
+0F43 ; Expands_On_NFKC # Lo TIBETAN LETTER GHA
+0F4D ; Expands_On_NFKC # Lo TIBETAN LETTER DDHA
+0F52 ; Expands_On_NFKC # Lo TIBETAN LETTER DHA
+0F57 ; Expands_On_NFKC # Lo TIBETAN LETTER BHA
+0F5C ; Expands_On_NFKC # Lo TIBETAN LETTER DZHA
+0F69 ; Expands_On_NFKC # Lo TIBETAN LETTER KSSA
+0F73 ; Expands_On_NFKC # Mn TIBETAN VOWEL SIGN II
+0F75..0F79 ; Expands_On_NFKC # Mn [5] TIBETAN VOWEL SIGN UU..TIBETAN VOWEL SIGN VOCALIC LL
+0F81 ; Expands_On_NFKC # Mn TIBETAN VOWEL SIGN REVERSED II
+0F93 ; Expands_On_NFKC # Mn TIBETAN SUBJOINED LETTER GHA
+0F9D ; Expands_On_NFKC # Mn TIBETAN SUBJOINED LETTER DDHA
+0FA2 ; Expands_On_NFKC # Mn TIBETAN SUBJOINED LETTER DHA
+0FA7 ; Expands_On_NFKC # Mn TIBETAN SUBJOINED LETTER BHA
+0FAC ; Expands_On_NFKC # Mn TIBETAN SUBJOINED LETTER DZHA
+0FB9 ; Expands_On_NFKC # Mn TIBETAN SUBJOINED LETTER KSSA
+1E9A ; Expands_On_NFKC # L& LATIN SMALL LETTER A WITH RIGHT HALF RING
+1FBD ; Expands_On_NFKC # Sk GREEK KORONIS
+1FBF..1FC1 ; Expands_On_NFKC # Sk [3] GREEK PSILI..GREEK DIALYTIKA AND PERISPOMENI
+1FCD..1FCF ; Expands_On_NFKC # Sk [3] GREEK PSILI AND VARIA..GREEK PSILI AND PERISPOMENI
+1FDD..1FDF ; Expands_On_NFKC # Sk [3] GREEK DASIA AND VARIA..GREEK DASIA AND PERISPOMENI
+1FED..1FEE ; Expands_On_NFKC # Sk [2] GREEK DIALYTIKA AND VARIA..GREEK DIALYTIKA AND OXIA
+1FFD..1FFE ; Expands_On_NFKC # Sk [2] GREEK OXIA..GREEK DASIA
+2017 ; Expands_On_NFKC # Po DOUBLE LOW LINE
+2025..2026 ; Expands_On_NFKC # Po [2] TWO DOT LEADER..HORIZONTAL ELLIPSIS
+2033..2034 ; Expands_On_NFKC # Po [2] DOUBLE PRIME..TRIPLE PRIME
+2036..2037 ; Expands_On_NFKC # Po [2] REVERSED DOUBLE PRIME..REVERSED TRIPLE PRIME
+203C ; Expands_On_NFKC # Po DOUBLE EXCLAMATION MARK
+203E ; Expands_On_NFKC # Po OVERLINE
+2047..2049 ; Expands_On_NFKC # Po [3] DOUBLE QUESTION MARK..EXCLAMATION QUESTION MARK
+2057 ; Expands_On_NFKC # Po QUADRUPLE PRIME
+20A8 ; Expands_On_NFKC # Sc RUPEE SIGN
+2100..2101 ; Expands_On_NFKC # So [2] ACCOUNT OF..ADDRESSED TO THE SUBJECT
+2103 ; Expands_On_NFKC # So DEGREE CELSIUS
+2105..2106 ; Expands_On_NFKC # So [2] CARE OF..CADA UNA
+2109 ; Expands_On_NFKC # So DEGREE FAHRENHEIT
+2116 ; Expands_On_NFKC # So NUMERO SIGN
+2120..2122 ; Expands_On_NFKC # So [3] SERVICE MARK..TRADE MARK SIGN
+213B ; Expands_On_NFKC # So FACSIMILE SIGN
+2153..215F ; Expands_On_NFKC # No [13] VULGAR FRACTION ONE THIRD..FRACTION NUMERATOR ONE
+2161..2163 ; Expands_On_NFKC # Nl [3] ROMAN NUMERAL TWO..ROMAN NUMERAL FOUR
+2165..2168 ; Expands_On_NFKC # Nl [4] ROMAN NUMERAL SIX..ROMAN NUMERAL NINE
+216A..216B ; Expands_On_NFKC # Nl [2] ROMAN NUMERAL ELEVEN..ROMAN NUMERAL TWELVE
+2171..2173 ; Expands_On_NFKC # Nl [3] SMALL ROMAN NUMERAL TWO..SMALL ROMAN NUMERAL FOUR
+2175..2178 ; Expands_On_NFKC # Nl [4] SMALL ROMAN NUMERAL SIX..SMALL ROMAN NUMERAL NINE
+217A..217B ; Expands_On_NFKC # Nl [2] SMALL ROMAN NUMERAL ELEVEN..SMALL ROMAN NUMERAL TWELVE
+222C..222D ; Expands_On_NFKC # Sm [2] DOUBLE INTEGRAL..TRIPLE INTEGRAL
+222F..2230 ; Expands_On_NFKC # Sm [2] SURFACE INTEGRAL..VOLUME INTEGRAL
+2469..249B ; Expands_On_NFKC # No [51] CIRCLED NUMBER TEN..NUMBER TWENTY FULL STOP
+249C..24B5 ; Expands_On_NFKC # So [26] PARENTHESIZED LATIN SMALL LETTER A..PARENTHESIZED LATIN SMALL LETTER Z
+2A0C ; Expands_On_NFKC # Sm QUADRUPLE INTEGRAL OPERATOR
+2A74..2A76 ; Expands_On_NFKC # Sm [3] DOUBLE COLON EQUAL..THREE CONSECUTIVE EQUALS SIGNS
+2ADC ; Expands_On_NFKC # Sm FORKING
+309B..309C ; Expands_On_NFKC # Sk [2] KATAKANA-HIRAGANA VOICED SOUND MARK..KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+309F ; Expands_On_NFKC # Lo HIRAGANA DIGRAPH YORI
+30FF ; Expands_On_NFKC # Lo KATAKANA DIGRAPH KOTO
+3200..321E ; Expands_On_NFKC # So [31] PARENTHESIZED HANGUL KIYEOK..PARENTHESIZED KOREAN CHARACTER O HU
+3220..3229 ; Expands_On_NFKC # No [10] PARENTHESIZED IDEOGRAPH ONE..PARENTHESIZED IDEOGRAPH TEN
+322A..3243 ; Expands_On_NFKC # So [26] PARENTHESIZED IDEOGRAPH MOON..PARENTHESIZED IDEOGRAPH REACH
+3250 ; Expands_On_NFKC # So PARTNERSHIP SIGN
+3251..325F ; Expands_On_NFKC # No [15] CIRCLED NUMBER TWENTY ONE..CIRCLED NUMBER THIRTY FIVE
+327C..327D ; Expands_On_NFKC # So [2] CIRCLED KOREAN CHARACTER CHAMKO..CIRCLED KOREAN CHARACTER JUEUI
+32B1..32BF ; Expands_On_NFKC # No [15] CIRCLED NUMBER THIRTY SIX..CIRCLED NUMBER FIFTY
+32C0..32CF ; Expands_On_NFKC # So [16] IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY..LIMITED LIABILITY SIGN
+3300..33FF ; Expands_On_NFKC # So [256] SQUARE APAATO..SQUARE GAL
+FB00..FB06 ; Expands_On_NFKC # L& [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST
+FB13..FB17 ; Expands_On_NFKC # L& [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH
+FB1D ; Expands_On_NFKC # Lo HEBREW LETTER YOD WITH HIRIQ
+FB1F ; Expands_On_NFKC # Lo HEBREW LIGATURE YIDDISH YOD YOD PATAH
+FB2A..FB36 ; Expands_On_NFKC # Lo [13] HEBREW LETTER SHIN WITH SHIN DOT..HEBREW LETTER ZAYIN WITH DAGESH
+FB38..FB3C ; Expands_On_NFKC # Lo [5] HEBREW LETTER TET WITH DAGESH..HEBREW LETTER LAMED WITH DAGESH
+FB3E ; Expands_On_NFKC # Lo HEBREW LETTER MEM WITH DAGESH
+FB40..FB41 ; Expands_On_NFKC # Lo [2] HEBREW LETTER NUN WITH DAGESH..HEBREW LETTER SAMEKH WITH DAGESH
+FB43..FB44 ; Expands_On_NFKC # Lo [2] HEBREW LETTER FINAL PE WITH DAGESH..HEBREW LETTER PE WITH DAGESH
+FB46..FB4F ; Expands_On_NFKC # Lo [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW LIGATURE ALEF LAMED
+FBDD ; Expands_On_NFKC # Lo ARABIC LETTER U WITH HAMZA ABOVE ISOLATED FORM
+FBEA..FBFB ; Expands_On_NFKC # Lo [18] ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF ISOLATED FORM..ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA INITIAL FORM
+FC00..FD3D ; Expands_On_NFKC # Lo [318] ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM ISOLATED FORM..ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM
+FD50..FD8F ; Expands_On_NFKC # Lo [64] ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM..ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM
+FD92..FDC7 ; Expands_On_NFKC # Lo [54] ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM..ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM
+FDF0..FDFB ; Expands_On_NFKC # Lo [12] ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM..ARABIC LIGATURE JALLAJALALOUHOU
+FDFC ; Expands_On_NFKC # Sc RIAL SIGN
+FE19 ; Expands_On_NFKC # Po PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS
+FE30 ; Expands_On_NFKC # Po PRESENTATION FORM FOR VERTICAL TWO DOT LEADER
+FE49..FE4C ; Expands_On_NFKC # Po [4] DASHED OVERLINE..DOUBLE WAVY OVERLINE
+FE70..FE72 ; Expands_On_NFKC # Lo [3] ARABIC FATHATAN ISOLATED FORM..ARABIC DAMMATAN ISOLATED FORM
+FE74 ; Expands_On_NFKC # Lo ARABIC KASRATAN ISOLATED FORM
+FE76..FE7F ; Expands_On_NFKC # Lo [10] ARABIC FATHA ISOLATED FORM..ARABIC SUKUN MEDIAL FORM
+FEF5..FEFC ; Expands_On_NFKC # Lo [8] ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF FINAL FORM
+FFE3 ; Expands_On_NFKC # Sk FULLWIDTH MACRON
+1D15E..1D164 ; Expands_On_NFKC # So [7] MUSICAL SYMBOL HALF NOTE..MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
+1D1BB..1D1C0 ; Expands_On_NFKC # So [6] MUSICAL SYMBOL MINIMA..MUSICAL SYMBOL FUSA BLACK
+
+# Total code points: 1171
+
+# EOF