Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(425)

Side by Side Diff: test/mjsunit/es6/string-split.js

Issue 2845153002: [string] Fix null handling in MaybeCallFunctionAtSymbol (Closed)
Patch Set: Clarify comments Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « test/mjsunit/es6/string-replace.js ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 the V8 project authors. All rights reserved. 1 // Copyright 2015 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 var pattern = {}; 5 var pattern = {toString: () => ""};
6 var limit = { value: 3 }; 6 var limit = { value: 3 };
7 pattern[Symbol.split] = function(string, limit) { 7 pattern[Symbol.split] = function(string, limit) {
8 return string.length * limit.value; 8 return string.length * limit.value;
9 }; 9 };
10 // Check object coercible fails. 10 // Check object coercible fails.
11 assertThrows(() => String.prototype.split.call(null, pattern, limit), 11 assertThrows(() => String.prototype.split.call(null, pattern, limit),
12 TypeError); 12 TypeError);
13 // Override is called. 13 // Override is called.
14 assertEquals(15, "abcde".split(pattern, limit)); 14 assertEquals(15, "abcde".split(pattern, limit));
15 // Non-callable override. 15 // Non-callable override.
16 pattern[Symbol.split] = "dumdidum"; 16 pattern[Symbol.split] = "dumdidum";
17 assertThrows(() => "abcde".split(pattern, limit), TypeError); 17 assertThrows(() => "abcde".split(pattern, limit), TypeError);
18 // Null override.
19 pattern[Symbol.split] = null;
20 assertEquals(["a", "b", "c", "d", "e"], "abcde".split(pattern));
18 21
19 assertEquals("[Symbol.split]", RegExp.prototype[Symbol.split].name); 22 assertEquals("[Symbol.split]", RegExp.prototype[Symbol.split].name);
OLDNEW
« no previous file with comments | « test/mjsunit/es6/string-replace.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698