You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
251 lines
14 KiB
251 lines
14 KiB
3 years ago
|
diff --git a/node_modules/typescript/lib/typescript.js b/node_modules/typescript/lib/typescript.js
|
||
|
index 323de6f..367063a 100644
|
||
|
--- a/node_modules/typescript/lib/typescript.js
|
||
|
+++ b/node_modules/typescript/lib/typescript.js
|
||
|
@@ -24,11 +24,58 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
||
|
return to.concat(ar || Array.prototype.slice.call(from));
|
||
|
};
|
||
|
var __assign = (this && this.__assign) || function () {
|
||
|
- __assign = Object.assign || function(t) {
|
||
|
+ __assign = function(t) {
|
||
|
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
||
|
s = arguments[i];
|
||
|
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
||
|
- t[p] = s[p];
|
||
|
+ for (var p in s) {
|
||
|
+ if (Object.prototype.hasOwnProperty.call(s, p)) {
|
||
|
+ /**
|
||
|
+ * In the original version of this package, this was:
|
||
|
+ *
|
||
|
+ * t[p] = s[p]
|
||
|
+ *
|
||
|
+ * Unfortunately LavaMoat trips up on this, so we have to change
|
||
|
+ * it.
|
||
|
+ *
|
||
|
+ * Internally LavaMoat uses `lockdown` (part of SES, which is
|
||
|
+ * part of Endo) to freeze modifications to "intrinsics" — core
|
||
|
+ * things like `Object.prototype`, `Function.prototype`, etc.
|
||
|
+ * This will cause code which is responsible for said
|
||
|
+ * modifications to fail at runtime, because it makes the
|
||
|
+ * properties of these intrinsics non-writable.
|
||
|
+ *
|
||
|
+ * The reason we have to change *this* code is that later on,
|
||
|
+ * this `__assign` function is used to merge two objects, and
|
||
|
+ * one of those objects contains a `constructor` property. As we
|
||
|
+ * know, `constructor` is a special property, as it's a property
|
||
|
+ * on `Object.prototype` that stores the constructor used to
|
||
|
+ * create that object. But when used in this context, there is
|
||
|
+ * nothing inherently special about it – it's just a property on
|
||
|
+ * an object we're setting. Unfortunately, that's not how it's
|
||
|
+ * being treated. Because `lockdown` freezes `Object.prototype`,
|
||
|
+ * `Object.prototype.constructor` is non-writable, and due to a
|
||
|
+ * "mistake" in the ES5 spec [1], that means `constructor` on
|
||
|
+ * *any* object is non-writable too. So an error is thrown when
|
||
|
+ * this code is executed.
|
||
|
+ *
|
||
|
+ * There is a way to get around this, which is to configure
|
||
|
+ * `lockdown` with the option `overrideTaming: 'severe'`.
|
||
|
+ * The mechanics of this option, as well as more information
|
||
|
+ * about the "mistake" this option solves, are explained here
|
||
|
+ * [2]. Unfortunately, we cannot enable this option because
|
||
|
+ * LavaMoat is the one running `lockdown` here [3]. So to work
|
||
|
+ * around this, we use `Object.defineProperty` to define the
|
||
|
+ * property we want. As this does not use property assignment
|
||
|
+ * (`object[key] = value`) but rather defines the property more
|
||
|
+ * directly, this bypasses the "override mistake".
|
||
|
+ *
|
||
|
+ * [1]: https://web.archive.org/web/20141230041441/http://wiki.ecmascript.org/doku.php?id=strawman:fixing_override_mistake
|
||
|
+ * [2]: https://github.com/endojs/endo/blob/864f086f87e1e7ef78a401a7550ff0aeb664bba0/packages/ses/src/enable-property-overrides.js#L28
|
||
|
+ * [3]: https://github.com/LavaMoat/LavaMoat/blob/7c15bf8ba34ba1a9ceb3ffe591b1b2bfb084bead/packages/core/src/kernelTemplate.js#L32-L43
|
||
|
+ */
|
||
|
+ Object.defineProperty(t, p, Object.getOwnPropertyDescriptor(s, p))
|
||
|
+ }
|
||
|
+ }
|
||
|
}
|
||
|
return t;
|
||
|
};
|
||
|
@@ -9820,87 +9867,94 @@ var ts;
|
||
|
}
|
||
|
ts.tokenIsIdentifierOrKeywordOrGreaterThan = tokenIsIdentifierOrKeywordOrGreaterThan;
|
||
|
/** @internal */
|
||
|
- ts.textToKeywordObj = (_a = {
|
||
|
- abstract: 126 /* AbstractKeyword */,
|
||
|
- any: 129 /* AnyKeyword */,
|
||
|
- as: 127 /* AsKeyword */,
|
||
|
- asserts: 128 /* AssertsKeyword */,
|
||
|
- bigint: 156 /* BigIntKeyword */,
|
||
|
- boolean: 132 /* BooleanKeyword */,
|
||
|
- break: 81 /* BreakKeyword */,
|
||
|
- case: 82 /* CaseKeyword */,
|
||
|
- catch: 83 /* CatchKeyword */,
|
||
|
- class: 84 /* ClassKeyword */,
|
||
|
- continue: 86 /* ContinueKeyword */,
|
||
|
- const: 85 /* ConstKeyword */
|
||
|
- },
|
||
|
- _a["" + "constructor"] = 133 /* ConstructorKeyword */,
|
||
|
- _a.debugger = 87 /* DebuggerKeyword */,
|
||
|
- _a.declare = 134 /* DeclareKeyword */,
|
||
|
- _a.default = 88 /* DefaultKeyword */,
|
||
|
- _a.delete = 89 /* DeleteKeyword */,
|
||
|
- _a.do = 90 /* DoKeyword */,
|
||
|
- _a.else = 91 /* ElseKeyword */,
|
||
|
- _a.enum = 92 /* EnumKeyword */,
|
||
|
- _a.export = 93 /* ExportKeyword */,
|
||
|
- _a.extends = 94 /* ExtendsKeyword */,
|
||
|
- _a.false = 95 /* FalseKeyword */,
|
||
|
- _a.finally = 96 /* FinallyKeyword */,
|
||
|
- _a.for = 97 /* ForKeyword */,
|
||
|
- _a.from = 154 /* FromKeyword */,
|
||
|
- _a.function = 98 /* FunctionKeyword */,
|
||
|
- _a.get = 135 /* GetKeyword */,
|
||
|
- _a.if = 99 /* IfKeyword */,
|
||
|
- _a.implements = 117 /* ImplementsKeyword */,
|
||
|
- _a.import = 100 /* ImportKeyword */,
|
||
|
- _a.in = 101 /* InKeyword */,
|
||
|
- _a.infer = 136 /* InferKeyword */,
|
||
|
- _a.instanceof = 102 /* InstanceOfKeyword */,
|
||
|
- _a.interface = 118 /* InterfaceKeyword */,
|
||
|
- _a.intrinsic = 137 /* IntrinsicKeyword */,
|
||
|
- _a.is = 138 /* IsKeyword */,
|
||
|
- _a.keyof = 139 /* KeyOfKeyword */,
|
||
|
- _a.let = 119 /* LetKeyword */,
|
||
|
- _a.module = 140 /* ModuleKeyword */,
|
||
|
- _a.namespace = 141 /* NamespaceKeyword */,
|
||
|
- _a.never = 142 /* NeverKeyword */,
|
||
|
- _a.new = 103 /* NewKeyword */,
|
||
|
- _a.null = 104 /* NullKeyword */,
|
||
|
- _a.number = 145 /* NumberKeyword */,
|
||
|
- _a.object = 146 /* ObjectKeyword */,
|
||
|
- _a.package = 120 /* PackageKeyword */,
|
||
|
- _a.private = 121 /* PrivateKeyword */,
|
||
|
- _a.protected = 122 /* ProtectedKeyword */,
|
||
|
- _a.public = 123 /* PublicKeyword */,
|
||
|
- _a.override = 157 /* OverrideKeyword */,
|
||
|
- _a.readonly = 143 /* ReadonlyKeyword */,
|
||
|
- _a.require = 144 /* RequireKeyword */,
|
||
|
- _a.global = 155 /* GlobalKeyword */,
|
||
|
- _a.return = 105 /* ReturnKeyword */,
|
||
|
- _a.set = 147 /* SetKeyword */,
|
||
|
- _a.static = 124 /* StaticKeyword */,
|
||
|
- _a.string = 148 /* StringKeyword */,
|
||
|
- _a.super = 106 /* SuperKeyword */,
|
||
|
- _a.switch = 107 /* SwitchKeyword */,
|
||
|
- _a.symbol = 149 /* SymbolKeyword */,
|
||
|
- _a.this = 108 /* ThisKeyword */,
|
||
|
- _a.throw = 109 /* ThrowKeyword */,
|
||
|
- _a.true = 110 /* TrueKeyword */,
|
||
|
- _a.try = 111 /* TryKeyword */,
|
||
|
- _a.type = 150 /* TypeKeyword */,
|
||
|
- _a.typeof = 112 /* TypeOfKeyword */,
|
||
|
- _a.undefined = 151 /* UndefinedKeyword */,
|
||
|
- _a.unique = 152 /* UniqueKeyword */,
|
||
|
- _a.unknown = 153 /* UnknownKeyword */,
|
||
|
- _a.var = 113 /* VarKeyword */,
|
||
|
- _a.void = 114 /* VoidKeyword */,
|
||
|
- _a.while = 115 /* WhileKeyword */,
|
||
|
- _a.with = 116 /* WithKeyword */,
|
||
|
- _a.yield = 125 /* YieldKeyword */,
|
||
|
- _a.async = 130 /* AsyncKeyword */,
|
||
|
- _a.await = 131 /* AwaitKeyword */,
|
||
|
- _a.of = 158 /* OfKeyword */,
|
||
|
- _a);
|
||
|
+ /**
|
||
|
+ * In the original version of this package, this object was built by
|
||
|
+ * initializing one object and then adding more properties to that object.
|
||
|
+ * This ends up throwing an error when this code is executed due to
|
||
|
+ * the same issue as explained at the top of this file: essentially,
|
||
|
+ * the `constructor` property of any object cannot be set due to the
|
||
|
+ * "override mistake". The fix for this is to just build one big object.
|
||
|
+ */
|
||
|
+ ts.textToKeywordObj = {
|
||
|
+ abstract: 126 /* AbstractKeyword */,
|
||
|
+ any: 129 /* AnyKeyword */,
|
||
|
+ as: 127 /* AsKeyword */,
|
||
|
+ asserts: 128 /* AssertsKeyword */,
|
||
|
+ bigint: 156 /* BigIntKeyword */,
|
||
|
+ boolean: 132 /* BooleanKeyword */,
|
||
|
+ break: 81 /* BreakKeyword */,
|
||
|
+ case: 82 /* CaseKeyword */,
|
||
|
+ catch: 83 /* CatchKeyword */,
|
||
|
+ class: 84 /* ClassKeyword */,
|
||
|
+ continue: 86 /* ContinueKeyword */,
|
||
|
+ const: 85 /* ConstKeyword */,
|
||
|
+ ["constructor"]: 133 /* ConstructorKeyword */,
|
||
|
+ debugger: 87 /* DebuggerKeyword */,
|
||
|
+ declare: 134 /* DeclareKeyword */,
|
||
|
+ default: 88 /* DefaultKeyword */,
|
||
|
+ delete: 89 /* DeleteKeyword */,
|
||
|
+ do: 90 /* DoKeyword */,
|
||
|
+ else: 91 /* ElseKeyword */,
|
||
|
+ enum: 92 /* EnumKeyword */,
|
||
|
+ export: 93 /* ExportKeyword */,
|
||
|
+ extends: 94 /* ExtendsKeyword */,
|
||
|
+ false: 95 /* FalseKeyword */,
|
||
|
+ finally: 96 /* FinallyKeyword */,
|
||
|
+ for: 97 /* ForKeyword */,
|
||
|
+ from: 154 /* FromKeyword */,
|
||
|
+ function: 98 /* FunctionKeyword */,
|
||
|
+ get: 135 /* GetKeyword */,
|
||
|
+ if: 99 /* IfKeyword */,
|
||
|
+ implements: 117 /* ImplementsKeyword */,
|
||
|
+ import: 100 /* ImportKeyword */,
|
||
|
+ in: 101 /* InKeyword */,
|
||
|
+ infer: 136 /* InferKeyword */,
|
||
|
+ instanceof: 102 /* InstanceOfKeyword */,
|
||
|
+ interface: 118 /* InterfaceKeyword */,
|
||
|
+ intrinsic: 137 /* IntrinsicKeyword */,
|
||
|
+ is: 138 /* IsKeyword */,
|
||
|
+ keyof: 139 /* KeyOfKeyword */,
|
||
|
+ let: 119 /* LetKeyword */,
|
||
|
+ module: 140 /* ModuleKeyword */,
|
||
|
+ namespace: 141 /* NamespaceKeyword */,
|
||
|
+ never: 142 /* NeverKeyword */,
|
||
|
+ new: 103 /* NewKeyword */,
|
||
|
+ null: 104 /* NullKeyword */,
|
||
|
+ number: 145 /* NumberKeyword */,
|
||
|
+ object: 146 /* ObjectKeyword */,
|
||
|
+ package: 120 /* PackageKeyword */,
|
||
|
+ private: 121 /* PrivateKeyword */,
|
||
|
+ protected: 122 /* ProtectedKeyword */,
|
||
|
+ public: 123 /* PublicKeyword */,
|
||
|
+ override: 157 /* OverrideKeyword */,
|
||
|
+ readonly: 143 /* ReadonlyKeyword */,
|
||
|
+ require: 144 /* RequireKeyword */,
|
||
|
+ global: 155 /* GlobalKeyword */,
|
||
|
+ return: 105 /* ReturnKeyword */,
|
||
|
+ set: 147 /* SetKeyword */,
|
||
|
+ static: 124 /* StaticKeyword */,
|
||
|
+ string: 148 /* StringKeyword */,
|
||
|
+ super: 106 /* SuperKeyword */,
|
||
|
+ switch: 107 /* SwitchKeyword */,
|
||
|
+ symbol: 149 /* SymbolKeyword */,
|
||
|
+ this: 108 /* ThisKeyword */,
|
||
|
+ throw: 109 /* ThrowKeyword */,
|
||
|
+ true: 110 /* TrueKeyword */,
|
||
|
+ try: 111 /* TryKeyword */,
|
||
|
+ type: 150 /* TypeKeyword */,
|
||
|
+ typeof: 112 /* TypeOfKeyword */,
|
||
|
+ undefined: 151 /* UndefinedKeyword */,
|
||
|
+ unique: 152 /* UniqueKeyword */,
|
||
|
+ unknown: 153 /* UnknownKeyword */,
|
||
|
+ var: 113 /* VarKeyword */,
|
||
|
+ void: 114 /* VoidKeyword */,
|
||
|
+ while: 115 /* WhileKeyword */,
|
||
|
+ with: 116 /* WithKeyword */,
|
||
|
+ yield: 125 /* YieldKeyword */,
|
||
|
+ async: 130 /* AsyncKeyword */,
|
||
|
+ await: 131 /* AwaitKeyword */,
|
||
|
+ of: 158 /* OfKeyword */
|
||
|
+ };
|
||
|
var textToKeyword = new ts.Map(ts.getEntries(ts.textToKeywordObj));
|
||
|
var textToToken = new ts.Map(ts.getEntries(__assign(__assign({}, ts.textToKeywordObj), { "{": 18 /* OpenBraceToken */, "}": 19 /* CloseBraceToken */, "(": 20 /* OpenParenToken */, ")": 21 /* CloseParenToken */, "[": 22 /* OpenBracketToken */, "]": 23 /* CloseBracketToken */, ".": 24 /* DotToken */, "...": 25 /* DotDotDotToken */, ";": 26 /* SemicolonToken */, ",": 27 /* CommaToken */, "<": 29 /* LessThanToken */, ">": 31 /* GreaterThanToken */, "<=": 32 /* LessThanEqualsToken */, ">=": 33 /* GreaterThanEqualsToken */, "==": 34 /* EqualsEqualsToken */, "!=": 35 /* ExclamationEqualsToken */, "===": 36 /* EqualsEqualsEqualsToken */, "!==": 37 /* ExclamationEqualsEqualsToken */, "=>": 38 /* EqualsGreaterThanToken */, "+": 39 /* PlusToken */, "-": 40 /* MinusToken */, "**": 42 /* AsteriskAsteriskToken */, "*": 41 /* AsteriskToken */, "/": 43 /* SlashToken */, "%": 44 /* PercentToken */, "++": 45 /* PlusPlusToken */, "--": 46 /* MinusMinusToken */, "<<": 47 /* LessThanLessThanToken */, "</": 30 /* LessThanSlashToken */, ">>": 48 /* GreaterThanGreaterThanToken */, ">>>": 49 /* GreaterThanGreaterThanGreaterThanToken */, "&": 50 /* AmpersandToken */, "|": 51 /* BarToken */, "^": 52 /* CaretToken */, "!": 53 /* ExclamationToken */, "~": 54 /* TildeToken */, "&&": 55 /* AmpersandAmpersandToken */, "||": 56 /* BarBarToken */, "?": 57 /* QuestionToken */, "??": 60 /* QuestionQuestionToken */, "?.": 28 /* QuestionDotToken */, ":": 58 /* ColonToken */, "=": 63 /* EqualsToken */, "+=": 64 /* PlusEqualsToken */, "-=": 65 /* MinusEqualsToken */, "*=": 66 /* AsteriskEqualsToken */, "**=": 67 /* AsteriskAsteriskEqualsToken */, "/=": 68 /* SlashEqualsToken */, "%=": 69 /* PercentEqualsToken */, "<<=": 70 /* LessThanLessThanEqualsToken */, ">>=": 71 /* GreaterThanGreaterThanEqualsToken */, ">>>=": 72 /* GreaterThanGreaterThanGreaterThanEqualsToken */, "&=": 73 /* AmpersandEqualsToken */, "|=": 74 /* BarEqualsToken */, "^=": 78 /* CaretEqualsToken */, "||=": 75 /* BarBarEqualsToken */, "&&=": 76 /* AmpersandAmpersandEqualsToken */, "??=": 77 /* QuestionQuestionEqualsToken */, "@": 59 /* AtToken */, "#": 62 /* HashToken */, "`": 61 /* BacktickToken */ })));
|
||
|
/*
|
||
|
@@ -159858,6 +159912,7 @@ var ts;
|
||
|
delete Object.prototype.__magic__;
|
||
|
}
|
||
|
catch (error) {
|
||
|
+ throw error;
|
||
|
// In IE8, Object.defineProperty only works on DOM objects.
|
||
|
// If we hit this code path, assume `window` exists.
|
||
|
//@ts-ignore
|