diff options
author | Shane Kearns <shane.kearns@sosco.com> | 2009-08-24 09:36:20 +0200 |
---|---|---|
committer | Shane Kearns <shane.kearns@sosco.com> | 2009-08-24 09:36:20 +0200 |
commit | 898cba2245b6fafa3820b44203442fedd9f7ed73 (patch) | |
tree | c7545af2a15396c7c5d79612d7073de9b4274d43 /src/3rdparty/webkit/JavaScriptCore/runtime/RegExp.cpp | |
parent | 6dade01b24f3fd314cb6ec9c2979348e78740a52 (diff) | |
parent | 028655065de7f989a35b63bcab583767aba9c048 (diff) |
Merge branch 'master' of git@scm.dev.nokia.troll.no:qt/qt-s60-public
Diffstat (limited to 'src/3rdparty/webkit/JavaScriptCore/runtime/RegExp.cpp')
-rw-r--r-- | src/3rdparty/webkit/JavaScriptCore/runtime/RegExp.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/3rdparty/webkit/JavaScriptCore/runtime/RegExp.cpp b/src/3rdparty/webkit/JavaScriptCore/runtime/RegExp.cpp index 7dd4a8ffd..b366b58e0 100644 --- a/src/3rdparty/webkit/JavaScriptCore/runtime/RegExp.cpp +++ b/src/3rdparty/webkit/JavaScriptCore/runtime/RegExp.cpp @@ -72,12 +72,35 @@ inline RegExp::RegExp(JSGlobalData* globalData, const UString& pattern, const US { // NOTE: The global flag is handled on a case-by-case basis by functions like // String::match and RegExpObject::match. +#ifndef QT_BUILD_SCRIPT_LIB if (flags.find('g') != -1) m_flagBits |= Global; if (flags.find('i') != -1) m_flagBits |= IgnoreCase; if (flags.find('m') != -1) m_flagBits |= Multiline; +#else //Invalid flags should throw a SyntaxError (ECMA Script 15.10.4.1) + static const char flagError[] = "invalid regular expression flag"; + for (int i = 0; i < flags.size(); i++) { + switch (flags.data()[i]) { + case 'g': + m_flagBits |= Global; + break; + case 'i': + m_flagBits |= IgnoreCase; + break; + case 'm': + m_flagBits |= Multiline; + break; + default: + m_constructionError = flagError; +#if !ENABLE(YARR) + m_regExp = 0; +#endif + return; + } + } +#endif compile(globalData); } |