Skip to content
Snippets Groups Projects
Commit cdcd91c8 authored by Leonardo Balter's avatar Leonardo Balter
Browse files

Map.prototype.values

parent 1ddb99ee
No related branches found
No related tags found
No related merge requests found
// Copyright (C) 2015 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
es6id: 23.1.3.11
description: >
Throws a TypeError if `this` is a Set object.
info: >
Map.prototype.values ()
1. Let M be the this value.
2. Return CreateMapIterator(M, "value").
23.1.5.1 CreateMapIterator Abstract Operation
...
2. If map does not have a [[MapData]] internal slot, throw a TypeError
exception.
...
features: [Set]
---*/
assert.throws(TypeError, function() {
Map.prototype.values.call(new Set());
});
assert.throws(TypeError, function() {
var m = new Map();
m.values.call(new Set());
});
// Copyright (C) 2015 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
es6id: 23.1.3.11
description: >
Throws a TypeError if `this` is a WeakMap object.
info: >
Map.prototype.values ()
1. Let M be the this value.
2. Return CreateMapIterator(M, "value").
23.1.5.1 CreateMapIterator Abstract Operation
...
2. If map does not have a [[MapData]] internal slot, throw a TypeError
exception.
...
features: [WeakMap]
---*/
assert.throws(TypeError, function() {
Map.prototype.values.call(new WeakMap());
});
assert.throws(TypeError, function() {
var m = new Map();
m.values.call(new WeakMap());
});
// Copyright (C) 2015 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
es6id: 23.1.3.11
description: >
Throws a TypeError if `this` object does not have a [[MapData]] internal slot.
info: >
Map.prototype.values ()
1. Let M be the this value.
2. Return CreateMapIterator(M, "value").
23.1.5.1 CreateMapIterator Abstract Operation
...
2. If map does not have a [[MapData]] internal slot, throw a TypeError
exception.
...
---*/
var m = new Map();
assert.throws(TypeError, function() {
Map.prototype.values.call([]);
});
assert.throws(TypeError, function() {
m.values.call([]);
});
assert.throws(TypeError, function() {
Map.prototype.values.call({});
});
assert.throws(TypeError, function() {
m.values.call({});
});
// Copyright (C) 2015 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
es6id: 23.1.3.11
description: >
Map.prototype.values.length value and descriptor.
info: >
Map.prototype.values ()
17 ECMAScript Standard Built-in Objects
includes: [propertyHelper.js]
---*/
assert.sameValue(
Map.prototype.values.length, 0,
'The value of `Map.prototype.values.length` is `0`'
);
verifyNotEnumerable(Map.prototype.values, 'length');
verifyNotWritable(Map.prototype.values, 'length');
verifyConfigurable(Map.prototype.values, 'length');
// Copyright (C) 2015 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
es6id: 23.1.3.11
description: >
Map.prototype.values.name value and descriptor.
info: >
Map.prototype.values ()
17 ECMAScript Standard Built-in Objects
includes: [propertyHelper.js]
---*/
assert.sameValue(
Map.prototype.values.name, 'values',
'The value of `Map.prototype.values.name` is `"values"`'
);
verifyNotEnumerable(Map.prototype.values, 'name');
verifyNotWritable(Map.prototype.values, 'name');
verifyConfigurable(Map.prototype.values, 'name');
// Copyright (C) 2015 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
es6id: 23.1.3.11
description: >
Returns an iterator on an empty Map object.
info: >
Map.prototype.values ()
...
2. Return CreateMapIterator(M, "value").
23.1.5.1 CreateMapIterator Abstract Operation
...
7. Return iterator.
---*/
var map = new Map();
var iterator = map.values();
var result = iterator.next();
assert.sameValue(
result.value, undefined,
'The value of `result.value` is `undefined`'
);
assert.sameValue(result.done, true, 'The value of `result.done` is `true`');
// Copyright (C) 2015 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
es6id: 23.1.3.11
description: >
Returns an iterator.
info: >
Map.prototype.values ( )
...
2. Return CreateMapIterator(M, "value").
23.1.5.1 CreateMapIterator Abstract Operation
...
7. Return iterator.
---*/
var obj = {};
var map = new Map();
map.set(1, 'foo');
map.set(2, obj);
map.set(3, map);
var iterator = map.values();
var result;
result = iterator.next();
assert.sameValue(result.value, 'foo', 'First result `value` ("value")');
assert.sameValue(result.done, false, 'First result `done` flag');
result = iterator.next();
assert.sameValue(result.value, obj, 'Second result `value` ("value")');
assert.sameValue(result.done, false, 'Second result `done` flag');
result = iterator.next();
assert.sameValue(result.value, map, 'Third result `value` ("value")');
assert.sameValue(result.done, false, 'Third result `done` flag');
result = iterator.next();
assert.sameValue(result.value, undefined, 'Exhausted result `value`');
assert.sameValue(result.done, true, 'Exhausted result `done` flag');
result = iterator.next();
assert.sameValue(
result.value, undefined, 'Exhausted result `value` (repeated request)'
);
assert.sameValue(
result.done, true, 'Exhausted result `done` flag (repeated request)'
);
// Copyright (C) 2015 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
es6id: 23.1.3.11
description: >
Throws a TypeError if `this` is not an Object.
info: >
Map.prototype.values ()
...
2. Return CreateMapIterator(M, "values").
23.1.5.1 CreateMapIterator Abstract Operation
1. If Type(map) is not Object, throw a TypeError exception.
...
features: [Symbol]
---*/
assert.throws(TypeError, function() {
Map.prototype.values.call(false);
});
assert.throws(TypeError, function() {
Map.prototype.values.call(1);
});
assert.throws(TypeError, function() {
Map.prototype.values.call('');
});
assert.throws(TypeError, function() {
Map.prototype.values.call(undefined);
});
assert.throws(TypeError, function() {
Map.prototype.values.call(null);
});
assert.throws(TypeError, function() {
Map.prototype.values.call(Symbol());
});
assert.throws(TypeError, function() {
var map = new Map();
map.values.call(false);
});
// Copyright (C) 2015 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
es6id: 23.1.3.11
description: >
Property type and descriptor.
info: >
Map.prototype.values ()
17 ECMAScript Standard Built-in Objects
includes: [propertyHelper.js]
---*/
assert.sameValue(
typeof Map.prototype.values,
'function',
'`typeof Map.prototype.values` is `function`'
);
verifyNotEnumerable(Map.prototype, 'values');
verifyWritable(Map.prototype, 'values');
verifyConfigurable(Map.prototype, 'values');
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