Skip to content

Commit aec459f

Browse files
committed
Only freeze helper args if weakmap present
1 parent 2f4e846 commit aec459f

File tree

3 files changed

+15
-7
lines changed

3 files changed

+15
-7
lines changed

packages/ember-glimmer/lib/utils/references.js

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { symbol, EmptyObject } from 'ember-utils';
22
import {
3+
HAS_NATIVE_WEAKMAP,
34
get,
45
set,
56
tagForProperty,
@@ -289,8 +290,10 @@ export class SimpleHelperReference extends CachedReference {
289290
let namedValue = named.value();
290291

291292
runInDebug(() => {
292-
Object.freeze(positionalValue);
293-
Object.freeze(namedValue);
293+
if (HAS_NATIVE_WEAKMAP) {
294+
Object.freeze(positionalValue);
295+
Object.freeze(namedValue);
296+
}
294297
});
295298

296299
let result = helper(positionalValue, namedValue);
@@ -324,8 +327,10 @@ export class SimpleHelperReference extends CachedReference {
324327
let namedValue = named.value();
325328

326329
runInDebug(() => {
327-
Object.freeze(positionalValue);
328-
Object.freeze(namedValue);
330+
if (HAS_NATIVE_WEAKMAP) {
331+
Object.freeze(positionalValue);
332+
Object.freeze(namedValue);
333+
}
329334
});
330335

331336
return helper(positionalValue, namedValue);
@@ -354,8 +359,10 @@ export class ClassBasedHelperReference extends CachedReference {
354359
let namedValue = named.value();
355360

356361
runInDebug(() => {
357-
Object.freeze(positionalValue);
358-
Object.freeze(namedValue);
362+
if (HAS_NATIVE_WEAKMAP) {
363+
Object.freeze(positionalValue);
364+
Object.freeze(namedValue);
365+
}
359366
});
360367

361368
return instance.compute(positionalValue, namedValue);

packages/ember-metal/lib/index.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ export {
4343
setDispatchOverride
4444
} from './error_handler';
4545
export {
46+
HAS_NATIVE_WEAKMAP,
4647
META_DESC,
4748
meta,
4849
peekMeta

packages/ember-metal/lib/meta.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -460,7 +460,7 @@ if (isEnabled('mandatory-setter')) {
460460
};
461461
}
462462

463-
const HAS_NATIVE_WEAKMAP = (function() {
463+
export const HAS_NATIVE_WEAKMAP = (function() {
464464
// detect if `WeakMap` is even present
465465
let hasWeakMap = typeof WeakMap === 'function';
466466
if (!hasWeakMap) { return false; }

0 commit comments

Comments
 (0)