From 782ceb4b16c4ad6bc6a194edd38775e39b282d5e Mon Sep 17 00:00:00 2001 From: Nicholas Yang Date: Thu, 31 Jan 2019 17:44:19 -0500 Subject: [PATCH] Added a Object.prototype.propertyIsEnumerable check to __rest to prevent enumerable symbols from sneaking through. --- src/compiler/transformers/destructuring.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/compiler/transformers/destructuring.ts b/src/compiler/transformers/destructuring.ts index cde5ee290a357..ab247b52555e1 100644 --- a/src/compiler/transformers/destructuring.ts +++ b/src/compiler/transformers/destructuring.ts @@ -521,8 +521,10 @@ namespace ts { for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; if (s != null && typeof Object.getOwnPropertySymbols === "function") - for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0) - t[p[i]] = s[p[i]]; + for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { + if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable(p[i])) + t[p[i]] = s[p[i]]; + } return t; };` };