mirror of
https://github.com/Samsung/escargot.git
synced 2026-06-22 10:01:50 +00:00
Add YarrSyntaxChecker to test RegExp pattern and flag
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
This commit is contained in:
parent
9c09d721af
commit
b3deb87407
9 changed files with 205 additions and 193 deletions
|
|
@ -1984,7 +1984,11 @@ void Scanner::scanRegExp(Scanner::ScannerResult* token)
|
|||
|
||||
String* body = this->scanRegExpBody();
|
||||
String* flags = this->scanRegExpFlags();
|
||||
// const value = this->testRegExp(body.value, flags.value);
|
||||
|
||||
auto error = RegExpObject::checkRegExpSyntax(body, flags);
|
||||
if (UNLIKELY(error)) {
|
||||
ErrorHandler::throwError(this->index, this->lineNumber, this->index - this->lineStart + 1, error.value(), ErrorCode::SyntaxError);
|
||||
}
|
||||
|
||||
ScanRegExpResult result;
|
||||
result.body = body;
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@
|
|||
#include "Yarr.h"
|
||||
#include "YarrPattern.h"
|
||||
#include "YarrInterpreter.h"
|
||||
#include "YarrSyntaxChecker.h"
|
||||
|
||||
namespace Escargot {
|
||||
|
||||
|
|
@ -578,6 +579,16 @@ Value RegExpObject::regexpFlagsValue(ExecutionState& state, Object* obj)
|
|||
}
|
||||
}
|
||||
|
||||
Optional<String*> RegExpObject::checkRegExpSyntax(String* pattern, String* flags)
|
||||
{
|
||||
JSC::Yarr::ErrorCode errorCode = JSC::Yarr::checkSyntax(pattern, flags);
|
||||
if (errorCode != JSC::Yarr::ErrorCode::NoError) {
|
||||
auto str = JSC::Yarr::errorMessage(errorCode);
|
||||
return String::fromASCII(str, strlen(str));
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
String* RegExpObject::computeRegExpOptionString(ExecutionState& state, Object* obj)
|
||||
{
|
||||
char flags[8] = { 0 };
|
||||
|
|
|
|||
|
|
@ -173,6 +173,8 @@ public:
|
|||
static String* computeRegExpOptionString(ExecutionState& state, Object* obj);
|
||||
static String* regexpSourceValue(ExecutionState& state, Object* obj);
|
||||
static Value regexpFlagsValue(ExecutionState& state, Object* obj);
|
||||
// returns error string if there is error
|
||||
static Optional<String*> checkRegExpSyntax(String* pattern, String* flags);
|
||||
|
||||
protected:
|
||||
explicit RegExpObject(ExecutionState& state, Object* proto, bool hasLastIndex = true);
|
||||
|
|
|
|||
18
third_party/yarr/OptionSet.h
vendored
18
third_party/yarr/OptionSet.h
vendored
|
|
@ -94,6 +94,24 @@ public:
|
|||
constexpr iterator begin() const { return m_storage; }
|
||||
constexpr iterator end() const { return 0; }
|
||||
|
||||
void add(OptionSet optionSet)
|
||||
{
|
||||
m_storage |= optionSet.m_storage;
|
||||
}
|
||||
|
||||
void remove(OptionSet optionSet)
|
||||
{
|
||||
m_storage &= ~optionSet.m_storage;
|
||||
}
|
||||
|
||||
void set(OptionSet optionSet, bool value)
|
||||
{
|
||||
if (value)
|
||||
add(optionSet);
|
||||
else
|
||||
remove(optionSet);
|
||||
}
|
||||
|
||||
constexpr bool contains(OptionSet optionSet) const
|
||||
{
|
||||
return m_storage & optionSet.m_storage;
|
||||
|
|
|
|||
61
third_party/yarr/YarrFlags.cpp
vendored
Normal file
61
third_party/yarr/YarrFlags.cpp
vendored
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
/*
|
||||
* Copyright (C) 2019 Sony Interactive Entertainment Inc.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
|
||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
|
||||
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
* THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include "WTFBridge.h"
|
||||
#include "YarrFlags.h"
|
||||
|
||||
namespace JSC { namespace Yarr {
|
||||
|
||||
Optional<OptionSet<Flags>> parseFlags(StringView string)
|
||||
{
|
||||
OptionSet<Flags> flags;
|
||||
|
||||
for (size_t i = 0; i < string.length(); i ++) {
|
||||
char16_t character = string[i];
|
||||
switch (character) {
|
||||
#define JSC_HANDLE_REGEXP_FLAG(key, name, lowerCaseName, _) \
|
||||
case key: \
|
||||
if (flags.contains(Flags::name)) \
|
||||
return nullptr; \
|
||||
flags.add(Flags::name); \
|
||||
break;
|
||||
|
||||
JSC_REGEXP_FLAGS(JSC_HANDLE_REGEXP_FLAG)
|
||||
|
||||
#undef JSC_HANDLE_REGEXP_FLAG
|
||||
|
||||
default:
|
||||
return nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
// Can only specify one of 'u' and 'v' flags.
|
||||
if (flags.contains(Flags::Unicode) && flags.contains(Flags::UnicodeSets))
|
||||
return nullptr;
|
||||
|
||||
return flags;
|
||||
}
|
||||
|
||||
} } // namespace JSC::Yarr
|
||||
2
third_party/yarr/YarrFlags.h
vendored
2
third_party/yarr/YarrFlags.h
vendored
|
|
@ -50,4 +50,6 @@ enum class Flags : uint16_t {
|
|||
DeletedValue = 1 << numberOfFlags,
|
||||
};
|
||||
|
||||
JS_EXPORT_PRIVATE Optional<OptionSet<Flags>> parseFlags(StringView);
|
||||
|
||||
} } // namespace JSC::Yarr
|
||||
|
|
|
|||
72
third_party/yarr/YarrSyntaxChecker.cpp
vendored
Normal file
72
third_party/yarr/YarrSyntaxChecker.cpp
vendored
Normal file
|
|
@ -0,0 +1,72 @@
|
|||
/*
|
||||
* Copyright (C) 2011, 2016 Apple Inc. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
|
||||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
|
||||
* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include "WTFBridge.h"
|
||||
#include "YarrSyntaxChecker.h"
|
||||
|
||||
#include "YarrFlags.h"
|
||||
#include "YarrParser.h"
|
||||
|
||||
namespace JSC { namespace Yarr {
|
||||
|
||||
class SyntaxChecker {
|
||||
public:
|
||||
void assertionBOL() { }
|
||||
void assertionEOL() { }
|
||||
void assertionWordBoundary(bool) { }
|
||||
void atomPatternCharacter(char32_t) { }
|
||||
void atomBuiltInCharacterClass(BuiltInCharacterClassID, bool) { }
|
||||
void atomCharacterClassBegin(bool = false) { }
|
||||
void atomCharacterClassAtom(UChar) { }
|
||||
void atomCharacterClassRange(UChar, UChar) { }
|
||||
void atomCharacterClassBuiltIn(BuiltInCharacterClassID, bool) { }
|
||||
void atomClassStringDisjunction(Vector<Vector<char32_t>>&) { }
|
||||
void atomCharacterClassSetOp(CharacterClassSetOp) { }
|
||||
void atomCharacterClassPushNested() { }
|
||||
void atomCharacterClassPopNested() { }
|
||||
void atomCharacterClassEnd() { }
|
||||
void atomParenthesesSubpatternBegin(bool = true, Optional<String> = nullptr) { }
|
||||
void atomParentheticalAssertionBegin(bool, MatchDirection) { }
|
||||
void atomParenthesesEnd() { }
|
||||
void atomBackReference(unsigned) { }
|
||||
void atomNamedBackReference(const String&) { }
|
||||
void atomNamedForwardReference(const String&) { }
|
||||
void quantifyAtom(unsigned, unsigned, bool) { }
|
||||
void disjunction(CreateDisjunctionPurpose) { }
|
||||
void resetForReparsing() { }
|
||||
};
|
||||
|
||||
ErrorCode checkSyntax(StringView pattern, StringView flags)
|
||||
{
|
||||
SyntaxChecker syntaxChecker;
|
||||
|
||||
auto parsedFlags = parseFlags(flags);
|
||||
if (!parsedFlags)
|
||||
return ErrorCode::InvalidRegularExpressionFlags;
|
||||
|
||||
return parse(syntaxChecker, pattern, compileMode(parsedFlags));
|
||||
}
|
||||
|
||||
}} // JSC::Yarr
|
||||
34
third_party/yarr/YarrSyntaxChecker.h
vendored
Normal file
34
third_party/yarr/YarrSyntaxChecker.h
vendored
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
/*
|
||||
* Copyright (C) 2011 Apple Inc. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
|
||||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
|
||||
* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "YarrErrorCode.h"
|
||||
|
||||
namespace JSC { namespace Yarr {
|
||||
|
||||
ErrorCode checkSyntax(StringView pattern, StringView flags);
|
||||
|
||||
}} // JSC::Yarr
|
||||
|
|
@ -587,169 +587,6 @@
|
|||
<test id="built-ins/RegExp/named-groups/duplicate-names-replaceall"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/named-groups/non-unicode-property-names-valid"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/named-groups/unicode-property-names-valid"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_F"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_F-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_Invalid"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_Invalid-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_N"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_N-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_No"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_No-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_T"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_T-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_Y"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_Y-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_Yes"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_Yes-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/character-class-range-end"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/character-class-range-no-dash-end"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/character-class-range-no-dash-start"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/character-class-range-start"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/generated/strings/Basic_Emoji-negative-CharacterClass"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/generated/strings/Basic_Emoji-negative-P"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/generated/strings/Basic_Emoji-negative-u"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/generated/strings/Emoji_Keycap_Sequence-negative-CharacterClass"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/generated/strings/Emoji_Keycap_Sequence-negative-P"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/generated/strings/Emoji_Keycap_Sequence-negative-u"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji-negative-CharacterClass"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji-negative-P"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji-negative-u"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji_Flag_Sequence-negative-CharacterClass"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji_Flag_Sequence-negative-P"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji_Flag_Sequence-negative-u"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji_Modifier_Sequence-negative-CharacterClass"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji_Modifier_Sequence-negative-P"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji_Modifier_Sequence-negative-u"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji_Tag_Sequence-negative-CharacterClass"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji_Tag_Sequence-negative-P"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji_Tag_Sequence-negative-u"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji_ZWJ_Sequence-negative-CharacterClass"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji_ZWJ_Sequence-negative-P"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji_ZWJ_Sequence-negative-u"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/grammar-extension-In-prefix-Block-implicit"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/grammar-extension-In-prefix-Block-implicit-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/grammar-extension-In-prefix-Script"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/grammar-extension-In-prefix-Script-implicit"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/grammar-extension-In-prefix-Script-implicit-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/grammar-extension-In-prefix-Script-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/grammar-extension-Is-prefix-Script"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/grammar-extension-Is-prefix-Script-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/grammar-extension-circumflex-negation"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/grammar-extension-circumflex-negation-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/grammar-extension-empty"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/grammar-extension-empty-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/grammar-extension-invalid"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/grammar-extension-invalid-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/grammar-extension-no-braces"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/grammar-extension-no-braces-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/grammar-extension-no-braces-value"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/grammar-extension-no-braces-value-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/grammar-extension-separator"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/grammar-extension-separator-and-value-only"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/grammar-extension-separator-and-value-only-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/grammar-extension-separator-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/grammar-extension-separator-only"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/grammar-extension-separator-only-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/grammar-extension-unclosed"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/grammar-extension-unclosed-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/grammar-extension-unopened"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/grammar-extension-unopened-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/loose-matching-01"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/loose-matching-01-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/loose-matching-02"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/loose-matching-02-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/loose-matching-03"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/loose-matching-03-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/loose-matching-04"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/loose-matching-04-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/loose-matching-05"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/loose-matching-05-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/loose-matching-06"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/loose-matching-06-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/loose-matching-07"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/loose-matching-07-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/loose-matching-08"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/loose-matching-08-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/loose-matching-09"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/loose-matching-09-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/loose-matching-10"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/loose-matching-10-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/loose-matching-11"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/loose-matching-11-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/loose-matching-12"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/loose-matching-12-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/loose-matching-13"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/loose-matching-13-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/loose-matching-14"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/loose-matching-14-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/non-binary-property-without-value-General_Category"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/non-binary-property-without-value-General_Category-equals"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/non-binary-property-without-value-General_Category-equals-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/non-binary-property-without-value-General_Category-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/non-binary-property-without-value-Script"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/non-binary-property-without-value-Script-equals"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/non-binary-property-without-value-Script-equals-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/non-binary-property-without-value-Script-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/non-binary-property-without-value-Script_Extensions"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/non-binary-property-without-value-Script_Extensions-equals"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/non-binary-property-without-value-Script_Extensions-equals-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/non-binary-property-without-value-Script_Extensions-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/non-existent-binary-property"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/non-existent-binary-property-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/non-existent-property-and-value"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/non-existent-property-and-value-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/non-existent-property-existing-value"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/non-existent-property-existing-value-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/non-existent-property-value-General_Category-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/non-existent-property-value-Script"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/non-existent-property-value-Script-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/non-existent-property-value-Script_Extensions"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/non-existent-property-value-Script_Extensions-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/non-existent-property-value-general-category"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/unsupported-binary-property-Composition_Exclusion"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/unsupported-binary-property-Composition_Exclusion-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/unsupported-binary-property-Expands_On_NFC"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/unsupported-binary-property-Expands_On_NFC-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/unsupported-binary-property-Expands_On_NFD"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/unsupported-binary-property-Expands_On_NFD-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/unsupported-binary-property-Expands_On_NFKC"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/unsupported-binary-property-Expands_On_NFKC-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/unsupported-binary-property-Expands_On_NFKD"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/unsupported-binary-property-Expands_On_NFKD-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/unsupported-binary-property-FC_NFKC_Closure"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/unsupported-binary-property-FC_NFKC_Closure-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/unsupported-binary-property-Full_Composition_Exclusion"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/unsupported-binary-property-Full_Composition_Exclusion-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/unsupported-binary-property-Grapheme_Link"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/unsupported-binary-property-Grapheme_Link-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/unsupported-binary-property-Hyphen"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/unsupported-binary-property-Hyphen-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Alphabetic"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Alphabetic-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Default_Ignorable_Code_Point"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Default_Ignorable_Code_Point-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Grapheme_Extend"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Grapheme_Extend-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/unsupported-binary-property-Other_ID_Continue"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/unsupported-binary-property-Other_ID_Continue-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/unsupported-binary-property-Other_ID_Start"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/unsupported-binary-property-Other_ID_Start-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Lowercase"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Lowercase-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Math"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Math-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Uppercase"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Uppercase-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/unsupported-binary-property-Prepended_Concatenation_Mark"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/unsupported-binary-property-Prepended_Concatenation_Mark-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/unsupported-property-Block-with-value"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/unsupported-property-Block-with-value-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/unsupported-property-FC_NFKC_Closure"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/unsupported-property-FC_NFKC_Closure-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/unsupported-property-Line_Break"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/unsupported-property-Line_Break-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/unsupported-property-Line_Break-with-value"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/property-escapes/unsupported-property-Line_Break-with-value-negated"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/prototype/Symbol.match/builtin-infer-unicode"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/prototype/Symbol.match/flags-tostring-error"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/prototype/Symbol.match/get-flags-err"><reason>TODO</reason></test>
|
||||
|
|
@ -763,34 +600,6 @@
|
|||
<test id="built-ins/RegExp/prototype/exec/duplicate-named-indices-groups-properties"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/prototype/exec/u-lastindex-adv"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/prototype/source/value-line-terminator"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/prototype/unicodeSets/breaking-change-from-u-to-v-01"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/prototype/unicodeSets/breaking-change-from-u-to-v-02"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/prototype/unicodeSets/breaking-change-from-u-to-v-03"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/prototype/unicodeSets/breaking-change-from-u-to-v-04"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/prototype/unicodeSets/breaking-change-from-u-to-v-05"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/prototype/unicodeSets/breaking-change-from-u-to-v-06"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/prototype/unicodeSets/breaking-change-from-u-to-v-07"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/prototype/unicodeSets/breaking-change-from-u-to-v-08"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/prototype/unicodeSets/breaking-change-from-u-to-v-09"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/prototype/unicodeSets/breaking-change-from-u-to-v-10"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/prototype/unicodeSets/breaking-change-from-u-to-v-11"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/prototype/unicodeSets/breaking-change-from-u-to-v-12"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/prototype/unicodeSets/breaking-change-from-u-to-v-13"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/prototype/unicodeSets/breaking-change-from-u-to-v-14"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/prototype/unicodeSets/breaking-change-from-u-to-v-15"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/prototype/unicodeSets/breaking-change-from-u-to-v-16"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/prototype/unicodeSets/breaking-change-from-u-to-v-17"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/prototype/unicodeSets/breaking-change-from-u-to-v-18"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/prototype/unicodeSets/breaking-change-from-u-to-v-19"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/prototype/unicodeSets/breaking-change-from-u-to-v-20"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/prototype/unicodeSets/breaking-change-from-u-to-v-21"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/prototype/unicodeSets/breaking-change-from-u-to-v-22"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/prototype/unicodeSets/breaking-change-from-u-to-v-23"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/prototype/unicodeSets/breaking-change-from-u-to-v-24"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/prototype/unicodeSets/breaking-change-from-u-to-v-25"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/prototype/unicodeSets/breaking-change-from-u-to-v-26"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/prototype/unicodeSets/breaking-change-from-u-to-v-27"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/prototype/unicodeSets/breaking-change-from-u-to-v-28"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/prototype/unicodeSets/cross-realm"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/prototype/unicodeSets/length"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/prototype/unicodeSets/name"><reason>TODO</reason></test>
|
||||
|
|
@ -799,7 +608,6 @@
|
|||
<test id="built-ins/RegExp/prototype/unicodeSets/this-val-non-obj"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/prototype/unicodeSets/this-val-regexp"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/prototype/unicodeSets/this-val-regexp-prototype"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/prototype/unicodeSets/uv-flags"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/prototype/unicodeSets/uv-flags-constructor"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/quantifier-integer-limit"><reason>TODO</reason></test>
|
||||
<test id="built-ins/RegExp/unicodeSets/generated/rgi-emoji-15.1"><reason>TODO</reason></test>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue