Skip to content

Commit

Permalink
[Refactor] update spec from tc39/ecma262#3306
Browse files Browse the repository at this point in the history
  • Loading branch information
ljharb committed Apr 6, 2024
1 parent 56b26f7 commit 4f1b73f
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 13 deletions.
3 changes: 1 addition & 2 deletions .eslintrc
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,7 @@
"GetIteratorFromMethod",
"GetSetRecord",
"IteratorClose",
"IteratorStep",
"IteratorValue",
"IteratorStepValue",
"NormalCompletion",

// GetSetRecord
Expand Down
20 changes: 9 additions & 11 deletions implementation.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,14 @@ var $Set = require('es-set/polyfill')();
var GetIteratorFromMethod = require('es-abstract/2024/GetIteratorFromMethod');
var GetSetRecord = require('./aos/GetSetRecord');
var IteratorClose = require('es-abstract/2024/IteratorClose');
var IteratorStep = require('es-abstract/2024/IteratorStep');
var IteratorValue = require('es-abstract/2024/IteratorValue');
var IteratorStepValue = require('es-abstract/2024/IteratorStepValue');
var NormalCompletion = require('es-abstract/2024/NormalCompletion');

var isSet = require('is-set');

var tools = require('es-set/tools');
var $setHas = tools.has;
var setSize = tools.size;
var $setSize = tools.size;

module.exports = function isSupersetOf(other) {
var O = this; // step 1
Expand All @@ -27,21 +26,20 @@ module.exports = function isSupersetOf(other) {

var otherRec = GetSetRecord(other); // step 3

var thisSize = setSize(O); // step 4
var thisSize = $setSize(O); // SetDataSize(O.[[SetData]]) // step 4

if (thisSize < otherRec['[[Size]]']) {
return false; // step 5
}

var keysIter = GetIteratorFromMethod(otherRec['[[Set]]'], otherRec['[[Keys]]']); // step 6
var next = true; // step 7
while (next) { // step 8
next = IteratorStep(keysIter); // step 8.a
if (next) { // step 8.b
var nextValue = IteratorValue(next); // step 8.b.i
// if (!SetDataHas(O.[[SetData]], nextValue)) { // step 8.b.ii
if (!$setHas(O, nextValue)) {
IteratorClose(keysIter, NormalCompletion()); // step 8.b.ii.1
while (!keysIter['[[Done]]']) { // step 8
next = IteratorStepValue(keysIter); // step 8.a
if (!keysIter['[[Done]]']) { // step 8.b
// if (!SetDataHas(O.[[SetData]], next)) { // step 8.b.i
if (!$setHas(O, next)) {
IteratorClose(keysIter, NormalCompletion()); // step 8.b.i.1
return false; // step 8.b.ii.2
}
}
Expand Down

0 comments on commit 4f1b73f

Please sign in to comment.