Nightfall
Nightfall

Reputation: 137

Removing most default objects and functions from JavaScript

I am currently working on a stripped down sandbox for people to write JavaScript in. I do not want users to have features like Reflect.defineProperty, eval or WebAssembly.Module.

Currently the way I go about this is by going over this, and disabling the objects manually. i.e.

globalThis = {};
eval = () => {};
etc..

I want to disable all default JavaScript features and manually re-enable/add them back when I need them. How do I go about this?

Upvotes: 1

Views: 65

Answers (1)

IT goldman
IT goldman

Reputation: 19493

I didn't know you can override default functions like this. Nice.

var original = alert;
alert = function (str) {
  console.log(str)
}
alert(13)

// afterwards
alert = original;
alert(12)

Upvotes: 1

Related Questions