Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 56af125

Browse filesBrowse files
aduh95danielleadams
authored andcommitted
lib: make safe primordials safe to construct
PR-URL: #36428 Reviewed-By: Rich Trott <rtrott@gmail.com>
1 parent 82393ae commit 56af125
Copy full SHA for 56af125

File tree

Expand file treeCollapse file tree

1 file changed

+14
-4
lines changed
Open diff view settings
Filter options
Expand file treeCollapse file tree

1 file changed

+14
-4
lines changed
Open diff view settings
Collapse file

‎lib/internal/per_context/primordials.js‎

Copy file name to clipboardExpand all lines: lib/internal/per_context/primordials.js
+14-4Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -146,21 +146,31 @@ primordials.makeSafe = makeSafe;
146146

147147
// Subclass the constructors because we need to use their prototype
148148
// methods later.
149+
// Defining the `constructor` is necessary here to avoid the default
150+
// constructor which uses the user-mutable `%ArrayIteratorPrototype%.next`.
149151
primordials.SafeMap = makeSafe(
150152
Map,
151-
class SafeMap extends Map {}
153+
class SafeMap extends Map {
154+
constructor(i) { super(i); } // eslint-disable-line no-useless-constructor
155+
}
152156
);
153157
primordials.SafeWeakMap = makeSafe(
154158
WeakMap,
155-
class SafeWeakMap extends WeakMap {}
159+
class SafeWeakMap extends WeakMap {
160+
constructor(i) { super(i); } // eslint-disable-line no-useless-constructor
161+
}
156162
);
157163
primordials.SafeSet = makeSafe(
158164
Set,
159-
class SafeSet extends Set {}
165+
class SafeSet extends Set {
166+
constructor(i) { super(i); } // eslint-disable-line no-useless-constructor
167+
}
160168
);
161169
primordials.SafeWeakSet = makeSafe(
162170
WeakSet,
163-
class SafeWeakSet extends WeakSet {}
171+
class SafeWeakSet extends WeakSet {
172+
constructor(i) { super(i); } // eslint-disable-line no-useless-constructor
173+
}
164174
);
165175

166176
// Create copies of the namespace objects

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.