UNPKG

3.54 kBJavaScriptView Raw
1import { DEBUG } from '@glimmer/env';
2import { HAS_NATIVE_PROXY } from './platform-utils';
3export default function buildUntouchableThis(source) {
4 var context = null;
5
6 if (DEBUG && HAS_NATIVE_PROXY) {
7 var assertOnProperty = function assertOnProperty(property) {
8 throw new Error("You accessed `this." + String(property) + "` from a function passed to the " + source + ", but the function itself was not bound to a valid `this` context. Consider updating to use a bound function (for instance, use an arrow function, `() => {}`).");
9 };
10
11 context = new Proxy({}, {
12 get: function get(_target, property) {
13 assertOnProperty(property);
14 },
15 set: function set(_target, property) {
16 assertOnProperty(property);
17 return false;
18 },
19 has: function has(_target, property) {
20 assertOnProperty(property);
21 return false;
22 }
23 });
24 }
25
26 return context;
27}
28//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3V0aWwvbGliL3VudG91Y2hhYmxlLXRoaXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsU0FBQSxLQUFBLFFBQUEsY0FBQTtBQUNBLFNBQUEsZ0JBQUEsUUFBQSxrQkFBQTtBQUVBLGVBQWMsU0FBQSxvQkFBQSxDQUFBLE1BQUEsRUFBNkM7QUFDekQsTUFBSSxPQUFPLEdBQVgsSUFBQTs7QUFDQSxNQUFJLEtBQUssSUFBVCxnQkFBQSxFQUErQjtBQUM3QixRQUFJLGdCQUFnQixHQUFJLFNBQXBCLGdCQUFvQixDQUFBLFFBQUQsRUFBdUM7QUFDNUQsWUFBTSxJQUFBLEtBQUEseUJBQ21CLE1BQU0sQ0FBQSxRQUFBLENBRHpCLHdDQUFOLE1BQU0scUtBQU47QUFERixLQUFBOztBQVFBLElBQUEsT0FBTyxHQUFHLElBQUEsS0FBQSxDQUFBLEVBQUEsRUFFUjtBQUNFLE1BQUEsR0FERixlQUNLLE9BREwsRUFDSyxRQURMLEVBQzRDO0FBQ3hDLFFBQUEsZ0JBQWdCLENBQWhCLFFBQWdCLENBQWhCO0FBRkosT0FBQTtBQUtFLE1BQUEsR0FMRixlQUtLLE9BTEwsRUFLSyxRQUxMLEVBSzRDO0FBQ3hDLFFBQUEsZ0JBQWdCLENBQWhCLFFBQWdCLENBQWhCO0FBRUEsZUFBQSxLQUFBO0FBUkosT0FBQTtBQVdFLE1BQUEsR0FYRixlQVdLLE9BWEwsRUFXSyxRQVhMLEVBVzRDO0FBQ3hDLFFBQUEsZ0JBQWdCLENBQWhCLFFBQWdCLENBQWhCO0FBRUEsZUFBQSxLQUFBO0FBQ0Q7QUFmSCxLQUZRLENBQVY7QUFvQkQ7O0FBRUQsU0FBQSxPQUFBO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBERUJVRyB9IGZyb20gJ0BnbGltbWVyL2Vudic7XG5pbXBvcnQgeyBIQVNfTkFUSVZFX1BST1hZIH0gZnJvbSAnLi9wbGF0Zm9ybS11dGlscyc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGJ1aWxkVW50b3VjaGFibGVUaGlzKHNvdXJjZTogc3RyaW5nKTogbnVsbCB8IG9iamVjdCB7XG4gIGxldCBjb250ZXh0OiBudWxsIHwgb2JqZWN0ID0gbnVsbDtcbiAgaWYgKERFQlVHICYmIEhBU19OQVRJVkVfUFJPWFkpIHtcbiAgICBsZXQgYXNzZXJ0T25Qcm9wZXJ0eSA9IChwcm9wZXJ0eTogc3RyaW5nIHwgbnVtYmVyIHwgc3ltYm9sKSA9PiB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBZb3UgYWNjZXNzZWQgXFxgdGhpcy4ke1N0cmluZyhcbiAgICAgICAgICBwcm9wZXJ0eVxuICAgICAgICApfVxcYCBmcm9tIGEgZnVuY3Rpb24gcGFzc2VkIHRvIHRoZSAke3NvdXJjZX0sIGJ1dCB0aGUgZnVuY3Rpb24gaXRzZWxmIHdhcyBub3QgYm91bmQgdG8gYSB2YWxpZCBcXGB0aGlzXFxgIGNvbnRleHQuIENvbnNpZGVyIHVwZGF0aW5nIHRvIHVzZSBhIGJvdW5kIGZ1bmN0aW9uIChmb3IgaW5zdGFuY2UsIHVzZSBhbiBhcnJvdyBmdW5jdGlvbiwgXFxgKCkgPT4ge31cXGApLmBcbiAgICAgICk7XG4gICAgfTtcblxuICAgIGNvbnRleHQgPSBuZXcgUHJveHkoXG4gICAgICB7fSxcbiAgICAgIHtcbiAgICAgICAgZ2V0KF90YXJnZXQ6IHt9LCBwcm9wZXJ0eTogc3RyaW5nIHwgc3ltYm9sKSB7XG4gICAgICAgICAgYXNzZXJ0T25Qcm9wZXJ0eShwcm9wZXJ0eSk7XG4gICAgICAgIH0sXG5cbiAgICAgICAgc2V0KF90YXJnZXQ6IHt9LCBwcm9wZXJ0eTogc3RyaW5nIHwgc3ltYm9sKSB7XG4gICAgICAgICAgYXNzZXJ0T25Qcm9wZXJ0eShwcm9wZXJ0eSk7XG5cbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH0sXG5cbiAgICAgICAgaGFzKF90YXJnZXQ6IHt9LCBwcm9wZXJ0eTogc3RyaW5nIHwgc3ltYm9sKSB7XG4gICAgICAgICAgYXNzZXJ0T25Qcm9wZXJ0eShwcm9wZXJ0eSk7XG5cbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH0sXG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBjb250ZXh0O1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==
\No newline at end of file