Projekt

Obecné

Profil

Stáhnout (705 Bajtů) Statistiky
| Větev: | Revize:
1 3a515b92 cagy
'use strict';
2
3
var GetIntrinsic = require('../GetIntrinsic');
4
5
var $TypeError = GetIntrinsic('%TypeError%');
6
7
var IsPropertyKey = require('./IsPropertyKey');
8
var Type = require('./Type');
9
10
// https://www.ecma-international.org/ecma-262/6.0/#sec-deletepropertyorthrow
11
12
module.exports = function DeletePropertyOrThrow(O, P) {
13
	if (Type(O) !== 'Object') {
14
		throw new $TypeError('Assertion failed: Type(O) is not Object');
15
	}
16
17
	if (!IsPropertyKey(P)) {
18
		throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true');
19
	}
20
21
	// eslint-disable-next-line no-param-reassign
22
	var success = delete O[P];
23
	if (!success) {
24
		throw new $TypeError('Attempt to delete property failed.');
25
	}
26
	return success;
27
};