From 36d22d82aa202bb199967e9512281e9a53db42c9 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 21:33:14 +0200 Subject: Adding upstream version 115.7.0esr. Signed-off-by: Daniel Baumann --- .../prototype/search/invoke-builtin-search.js | 43 ++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 js/src/tests/test262/built-ins/String/prototype/search/invoke-builtin-search.js (limited to 'js/src/tests/test262/built-ins/String/prototype/search/invoke-builtin-search.js') diff --git a/js/src/tests/test262/built-ins/String/prototype/search/invoke-builtin-search.js b/js/src/tests/test262/built-ins/String/prototype/search/invoke-builtin-search.js new file mode 100644 index 0000000000..6eec9da7fd --- /dev/null +++ b/js/src/tests/test262/built-ins/String/prototype/search/invoke-builtin-search.js @@ -0,0 +1,43 @@ +// Copyright (C) 2015 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: Invocation of @@search property of internally-created RegExps +es6id: 21.1.3.15 +info: | + [...] + 6. Let rx be RegExpCreate(regexp, undefined) (see 21.2.3.2.3). + 7. ReturnIfAbrupt(rx). + 8. Return Invoke(rx, @@search, «S»). +features: [Symbol.search] +---*/ + +var originalSearch = RegExp.prototype[Symbol.search]; +var returnVal = {}; +var result, thisVal, args; + +// Fail early if the method is undefined. This test's cleanup logic would +// otherwise install the value `undefined` to the `Symbol.search` property of +// the built-in prototype. +assert.notSameValue(originalSearch, undefined); + +RegExp.prototype[Symbol.search] = function() { + thisVal = this; + args = arguments; + return returnVal; +}; + +try { + result = 'target'.search('string source'); + + assert(thisVal instanceof RegExp); + assert.sameValue(thisVal.source, 'string source'); + assert.sameValue(thisVal.flags, ''); + assert.sameValue(args.length, 1); + assert.sameValue(args[0], 'target'); + assert.sameValue(result, returnVal); +} finally { + RegExp.prototype[Symbol.search] = originalSearch; +} + +reportCompare(0, 0); -- cgit v1.2.3