Skip to content
Snippets Groups Projects
Commit f554f68a authored by jugglinmike's avatar jugglinmike Committed by Tom Care
Browse files

Improve coverage for section 21: String (#712)

This changeset increases coverage for section 21, specifically "21.1 String
Objects".

* Add tests for "this" validation of String methods

* Add tests for ToNumber as used by String methods

* Add test for `length` prop of exotic String objs

* fixup! Add test for `length` prop of exotic String objs
parent 021d4482
No related branches found
No related tags found
No related merge requests found
// Copyright (C) 2016 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-string.prototype.tolocaleuppercase
es6id: 21.1.3.21
description: The "this" value must be object-coercible
info: |
This function works exactly the same as toUpperCase except that its result is
intended to yield the correct result for the host environment's current
locale, rather than a locale-independent result.
21.1.3.26 String.prototype.toUpperCase
This function behaves in exactly the same way as
String.prototype.toLowerCase, except that code points are mapped to their
uppercase equivalents as specified in the Unicode Character Database.
21.1.3.24 String.prototype.toLowerCase
1. Let O be ? RequireObjectCoercible(this value).
---*/
var toLocaleUpperCase = String.prototype.toLocaleUpperCase;
assert.sameValue(typeof toLocaleUpperCase, 'function');
assert.throws(TypeError, function() {
toLocaleUpperCase.call(undefined);
}, 'undefined');
assert.throws(TypeError, function() {
toLocaleUpperCase.call(null);
}, 'null');
// Copyright (C) 2016 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-string.prototype.tolowercase
es6id: 21.1.3.22
description: The "this" value must be object-coercible
info: |
1. Let O be ? RequireObjectCoercible(this value).
---*/
var toLowerCase = String.prototype.toLowerCase;
assert.sameValue(typeof toLowerCase, 'function');
assert.throws(TypeError, function() {
toLowerCase.call(undefined);
}, 'undefined');
assert.throws(TypeError, function() {
toLowerCase.call(null);
}, 'null');
// Copyright (C) 2016 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-string.prototype.touppercase
es6id: 21.1.3.24
description: The "this" value must be object-coercible
info: |
This function behaves in exactly the same way as
String.prototype.toLowerCase, except that code points are mapped to their
uppercase equivalents as specified in the Unicode Character Database.
21.1.3.24 String.prototype.toLowerCase
1. Let O be ? RequireObjectCoercible(this value).
---*/
var toUpperCase = String.prototype.toUpperCase;
assert.sameValue(typeof toUpperCase, 'function');
assert.throws(TypeError, function() {
toUpperCase.call(undefined);
}, 'undefined');
assert.throws(TypeError, function() {
toUpperCase.call(null);
}, 'null');
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment