blob: f384e2bccd62e93423192ca5866bf64ffb8bf1a5 [file] [log] [blame]
Tim van der Lippefdbd42e2020-04-07 14:14:361'use strict';
2
Nikolay Vitkovd76576c2024-12-02 14:10:153var $TypeError = require('es-errors/type');
Tim van der Lippefdbd42e2020-04-07 14:14:364
5var CreateDataProperty = require('./CreateDataProperty');
6var IsPropertyKey = require('./IsPropertyKey');
7var Type = require('./Type');
8
Nikolay Vitkovd76576c2024-12-02 14:10:159// // https://262.ecma-international.org/6.0/#sec-createdatapropertyorthrow
Tim van der Lippefdbd42e2020-04-07 14:14:3610
11module.exports = function CreateDataPropertyOrThrow(O, P, V) {
12 if (Type(O) !== 'Object') {
13 throw new $TypeError('Assertion failed: Type(O) is not Object');
14 }
15 if (!IsPropertyKey(P)) {
16 throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true');
17 }
18 var success = CreateDataProperty(O, P, V);
19 if (!success) {
20 throw new $TypeError('unable to create data property');
21 }
22 return success;
23};