mirror of https://github.com/tc39/test262.git
Correct tests for native functions' toString value (#580)
Modify the regular expression for native functions' toString value to satisfy all test cases. Correct the test file's reference to the harness file. Re-format the test file's assertions to aid debugging in the event of failure.
This commit is contained in:
parent
38329a7038
commit
ba3dacbe5a
|
@ -1 +1,5 @@
|
||||||
const NATIVE_FUNCTION_RE = /\bfunction\b[\s\S]+\b\w+\b[\s\S]*\([\s\S]*\)[\s\S]*\{[\s\S]*\[[\s\S]*\bnative\b[\s\S]+\bcode\b[\s\S]*\][\s\S]*\}/;
|
/**
|
||||||
|
* This regex makes a best-effort determination that the tested string matches
|
||||||
|
* the NativeFunction grammar production without requiring a correct tokeniser.
|
||||||
|
*/
|
||||||
|
const NATIVE_FUNCTION_RE = /\bfunction\b[\s\S]*\([\s\S]*\)[\s\S]*\{[\s\S]*\[[\s\S]*\bnative\b[\s\S]+\bcode\b[\s\S]*\][\s\S]*\}/;
|
||||||
|
|
|
@ -3,21 +3,47 @@
|
||||||
|
|
||||||
/*---
|
/*---
|
||||||
description: >
|
description: >
|
||||||
Provides a regex that makes a best-effort determination that the tested
|
Ensure that the regular expression generally distinguishes between valid
|
||||||
string matches the NativeFunction grammar production without requiring a
|
and invalid forms of the NativeFunction grammar production.
|
||||||
correct tokeniser
|
includes: [nativeFunctionMatcher.js]
|
||||||
includes: [nativeFunctionHelper.js]
|
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
if (!(
|
if (!NATIVE_FUNCTION_RE.test('function(){[native code]}')) {
|
||||||
NATIVE_FUNCTION_RE.test('function(){[native function]}') &&
|
$ERROR('expected string to pass: "function(){[native code]}"');
|
||||||
NATIVE_FUNCTION_RE.test('function(){ [native function] }') &&
|
}
|
||||||
NATIVE_FUNCTION_RE.test('function ( ) { [ native function ] }') &&
|
|
||||||
NATIVE_FUNCTION_RE.test('function a(){ [native function] }') &&
|
if (!NATIVE_FUNCTION_RE.test('function(){ [native code] }')) {
|
||||||
NATIVE_FUNCTION_RE.test('function a(){ /* } */ [native function] }') &&
|
$ERROR('expected string to pass: "function(){ [native code] }"');
|
||||||
!NATIVE_FUNCTION_RE.test('') &&
|
}
|
||||||
!NATIVE_FUNCTION_RE.test('native function') &&
|
|
||||||
!NATIVE_FUNCTION_RE.test('function(){}') &&
|
if (!NATIVE_FUNCTION_RE.test('function ( ) { [ native code ] }')) {
|
||||||
!NATIVE_FUNCTION_RE.test('function(){ "native function" }') &&
|
$ERROR('expected string to pass: "function ( ) { [ native code ] }"');
|
||||||
!NATIVE_FUNCTION_RE.test('function(){ [] native function }')
|
}
|
||||||
)) $ERROR('NATIVE_FUNCTION_RE failed');
|
|
||||||
|
if (!NATIVE_FUNCTION_RE.test('function a(){ [native code] }')) {
|
||||||
|
$ERROR('expected string to pass: "function a(){ [native code] }"');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!NATIVE_FUNCTION_RE.test('function a(){ /* } */ [native code] }')) {
|
||||||
|
$ERROR('expected string to pass: "function a(){ /* } */ [native code] }"');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (NATIVE_FUNCTION_RE.test('')) {
|
||||||
|
$ERROR('expected string to fail: ""');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (NATIVE_FUNCTION_RE.test('native code')) {
|
||||||
|
$ERROR('expected string to fail: "native code"');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (NATIVE_FUNCTION_RE.test('function(){}')) {
|
||||||
|
$ERROR('expected string to fail: "function(){}"');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (NATIVE_FUNCTION_RE.test('function(){ "native code" }')) {
|
||||||
|
$ERROR('expected string to fail: "function(){ "native code" }"');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (NATIVE_FUNCTION_RE.test('function(){ [] native code }')) {
|
||||||
|
$ERROR('expected string to fail: "function(){ [] native code }"');
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue