first commit
This commit is contained in:
73
build/node_modules/prepack/lib/intrinsics/dom/document.js
generated
vendored
Normal file
73
build/node_modules/prepack/lib/intrinsics/dom/document.js
generated
vendored
Normal file
@@ -0,0 +1,73 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
|
||||
exports.default = function (realm) {
|
||||
// document object
|
||||
var document = new _index.ObjectValue(realm, realm.intrinsics.ObjectPrototype, "document", false);
|
||||
|
||||
// check if we can use abstracts
|
||||
if (realm.useAbstractInterpretation) {
|
||||
// common methods on document
|
||||
var _iteratorNormalCompletion = true;
|
||||
var _didIteratorError = false;
|
||||
var _iteratorError = undefined;
|
||||
|
||||
try {
|
||||
for (var _iterator = functions[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
||||
var name = _step.value;
|
||||
|
||||
var func = (0, _utils.createAbstract)(realm, "function", "document." + name);
|
||||
_singletons.Properties.Set(realm, document, name, func, false);
|
||||
}
|
||||
|
||||
// document.body
|
||||
} catch (err) {
|
||||
_didIteratorError = true;
|
||||
_iteratorError = err;
|
||||
} finally {
|
||||
try {
|
||||
if (!_iteratorNormalCompletion && _iterator.return) {
|
||||
_iterator.return();
|
||||
}
|
||||
} finally {
|
||||
if (_didIteratorError) {
|
||||
throw _iteratorError;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var body = new _index.ObjectValue(realm, realm.intrinsics.ObjectPrototype, "document.body");
|
||||
_singletons.Properties.Set(realm, document, "body", body, false);
|
||||
|
||||
// make abstract
|
||||
var abstractObject = (0, _utils.createAbstract)(realm, document, "document");
|
||||
(0, _invariant2.default)(abstractObject instanceof _index.AbstractObjectValue);
|
||||
return abstractObject;
|
||||
}
|
||||
return document;
|
||||
};
|
||||
|
||||
var _index = require("../../values/index.js");
|
||||
|
||||
var _utils = require("../prepack/utils.js");
|
||||
|
||||
var _singletons = require("../../singletons.js");
|
||||
|
||||
var _invariant = require("../../invariant");
|
||||
|
||||
var _invariant2 = _interopRequireDefault(_invariant);
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
|
||||
var functions = ["getElementById", "getElementByTag", "getElementByClassName", "getElementByName", "getElementByTagName", "getElementByTagNameNS", "querySelector", "querySelectorAll", "createElement", "createDocumentFragment", "createTextNode"]; /**
|
||||
* Copyright (c) 2017-present, Facebook, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This source code is licensed under the BSD-style license found in the
|
||||
* LICENSE file in the root directory of this source tree. An additional grant
|
||||
* of patent rights can be found in the PATENTS file in the same directory.
|
||||
*/
|
||||
//# sourceMappingURL=document.js.map
|
||||
1
build/node_modules/prepack/lib/intrinsics/dom/document.js.map
generated
vendored
Normal file
1
build/node_modules/prepack/lib/intrinsics/dom/document.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"sources":["../../../src/intrinsics/dom/document.js"],"names":["realm","document","intrinsics","ObjectPrototype","useAbstractInterpretation","functions","name","func","Set","body","abstractObject"],"mappings":";;;;;;kBA+Be,UAASA,KAAT,EAA4C;AACzD;AACA,MAAIC,WAAW,uBAAgBD,KAAhB,EAAuBA,MAAME,UAAN,CAAiBC,eAAxC,EAAyD,UAAzD,EAAqE,KAArE,CAAf;;AAEA;AACA,MAAIH,MAAMI,yBAAV,EAAqC;AACnC;AADmC;AAAA;AAAA;;AAAA;AAEnC,2BAAiBC,SAAjB,8HAA4B;AAAA,YAAnBC,IAAmB;;AAC1B,YAAIC,OAAO,2BAAeP,KAAf,EAAsB,UAAtB,gBAA8CM,IAA9C,CAAX;AACA,+BAAWE,GAAX,CAAeR,KAAf,EAAsBC,QAAtB,EAAgCK,IAAhC,EAAsCC,IAAtC,EAA4C,KAA5C;AACD;;AAED;AAPmC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAQnC,QAAIE,OAAO,uBAAgBT,KAAhB,EAAuBA,MAAME,UAAN,CAAiBC,eAAxC,EAAyD,eAAzD,CAAX;AACA,2BAAWK,GAAX,CAAeR,KAAf,EAAsBC,QAAtB,EAAgC,MAAhC,EAAwCQ,IAAxC,EAA8C,KAA9C;;AAEA;AACA,QAAIC,iBAAiB,2BAAeV,KAAf,EAAsBC,QAAtB,EAAgC,UAAhC,CAArB;AACA,6BAAUS,oDAAV;AACA,WAAOA,cAAP;AACD;AACD,SAAOT,QAAP;AACD,C;;AAzCD;;AACA;;AACA;;AACA;;;;;;AAEA,IAAMI,YAAY,CAChB,gBADgB,EAEhB,iBAFgB,EAGhB,uBAHgB,EAIhB,kBAJgB,EAKhB,qBALgB,EAMhB,uBANgB,EAOhB,eAPgB,EAQhB,kBARgB,EAShB,eATgB,EAUhB,wBAVgB,EAWhB,gBAXgB,CAAlB,C,CAjBA","file":"document.js","sourcesContent":["/**\n * Copyright (c) 2017-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n/* @flow */\n\nimport type { Realm } from \"../../realm.js\";\nimport { ObjectValue, AbstractObjectValue } from \"../../values/index.js\";\nimport { createAbstract } from \"../prepack/utils.js\";\nimport { Properties } from \"../../singletons.js\";\nimport invariant from \"../../invariant\";\n\nconst functions = [\n \"getElementById\",\n \"getElementByTag\",\n \"getElementByClassName\",\n \"getElementByName\",\n \"getElementByTagName\",\n \"getElementByTagNameNS\",\n \"querySelector\",\n \"querySelectorAll\",\n \"createElement\",\n \"createDocumentFragment\",\n \"createTextNode\",\n];\n\nexport default function(realm: Realm): AbstractObjectValue {\n // document object\n let document = new ObjectValue(realm, realm.intrinsics.ObjectPrototype, \"document\", false);\n\n // check if we can use abstracts\n if (realm.useAbstractInterpretation) {\n // common methods on document\n for (let name of functions) {\n let func = createAbstract(realm, \"function\", `document.${name}`);\n Properties.Set(realm, document, name, func, false);\n }\n\n // document.body\n let body = new ObjectValue(realm, realm.intrinsics.ObjectPrototype, \"document.body\");\n Properties.Set(realm, document, \"body\", body, false);\n\n // make abstract\n let abstractObject = createAbstract(realm, document, \"document\");\n invariant(abstractObject instanceof AbstractObjectValue);\n return abstractObject;\n }\n return document;\n}\n"]}
|
||||
120
build/node_modules/prepack/lib/intrinsics/dom/global.js
generated
vendored
Normal file
120
build/node_modules/prepack/lib/intrinsics/dom/global.js
generated
vendored
Normal file
@@ -0,0 +1,120 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
|
||||
exports.default = function (realm) {
|
||||
var global = realm.$GlobalObject;
|
||||
|
||||
global.$DefineOwnProperty("console", {
|
||||
value: (0, _console2.default)(realm),
|
||||
writable: true,
|
||||
enumerable: false,
|
||||
configurable: true
|
||||
});
|
||||
|
||||
global.$DefineOwnProperty("self", {
|
||||
value: global,
|
||||
writable: true,
|
||||
enumerable: true,
|
||||
configurable: true
|
||||
});
|
||||
|
||||
global.$DefineOwnProperty("window", {
|
||||
value: global,
|
||||
writable: true,
|
||||
enumerable: true,
|
||||
configurable: true
|
||||
});
|
||||
|
||||
global.$DefineOwnProperty("document", {
|
||||
value: (0, _document2.default)(realm),
|
||||
writable: true,
|
||||
enumerable: false,
|
||||
configurable: true
|
||||
});
|
||||
|
||||
global.$DefineOwnProperty("setTimeout", {
|
||||
value: new _index.NativeFunctionValue(realm, "global.setTimeout", "", 2, function (context, args) {
|
||||
var callback = args[0].throwIfNotConcrete();
|
||||
if (!(callback instanceof _index.FunctionValue)) throw realm.createErrorThrowCompletion(realm.intrinsics.TypeError, "callback arguments must be function");
|
||||
if (!realm.useAbstractInterpretation) throw new _errors.FatalError("TODO #1003: implement global.setTimeout");
|
||||
(0, _invariant2.default)(realm.generator !== undefined);
|
||||
var generator = realm.generator;
|
||||
return generator.emitCallAndCaptureResult(_index2.TypesDomain.topVal, _index2.ValuesDomain.topVal, function () {
|
||||
return generator.preludeGenerator.memoizeReference("global.setTimeout");
|
||||
}, args);
|
||||
}),
|
||||
writable: true,
|
||||
enumerable: true,
|
||||
configurable: true
|
||||
});
|
||||
|
||||
global.$DefineOwnProperty("clearTimeout", {
|
||||
value: new _index.NativeFunctionValue(realm, "global.clearTimeout", "", 2, function (context, args) {
|
||||
if (!realm.useAbstractInterpretation) throw new _errors.FatalError("TODO #1003: implement global.clearTimeout");
|
||||
(0, _invariant2.default)(realm.generator !== undefined);
|
||||
var generator = realm.generator;
|
||||
generator.emitCall(function () {
|
||||
return generator.preludeGenerator.memoizeReference("global.clearTimeout");
|
||||
}, args);
|
||||
return realm.intrinsics.undefined;
|
||||
}),
|
||||
writable: true,
|
||||
enumerable: true,
|
||||
configurable: true
|
||||
});
|
||||
|
||||
global.$DefineOwnProperty("setInterval", {
|
||||
value: new _index.NativeFunctionValue(realm, "global.setInterval", "", 2, function (context, args) {
|
||||
if (!realm.useAbstractInterpretation) throw new _errors.FatalError("TODO #1003: implement global.setInterval");
|
||||
var callback = args[0].throwIfNotConcrete();
|
||||
if (!(callback instanceof _index.FunctionValue)) throw realm.createErrorThrowCompletion(realm.intrinsics.TypeError, "callback arguments must be function");
|
||||
(0, _invariant2.default)(realm.generator !== undefined);
|
||||
var generator = realm.generator;
|
||||
return generator.emitCallAndCaptureResult(_index2.TypesDomain.topVal, _index2.ValuesDomain.topVal, function () {
|
||||
return generator.preludeGenerator.memoizeReference("global.setInterval");
|
||||
}, args);
|
||||
}),
|
||||
writable: true,
|
||||
enumerable: true,
|
||||
configurable: true
|
||||
});
|
||||
|
||||
global.$DefineOwnProperty("clearInterval", {
|
||||
value: new _index.NativeFunctionValue(realm, "global.clearInterval", "", 2, function (context, args) {
|
||||
if (!realm.useAbstractInterpretation) throw new _errors.FatalError("TODO #1003: implement global.clearInterval");
|
||||
(0, _invariant2.default)(realm.generator !== undefined);
|
||||
var generator = realm.generator;
|
||||
generator.emitCall(function () {
|
||||
return generator.preludeGenerator.memoizeReference("global.clearInterval");
|
||||
}, args);
|
||||
return realm.intrinsics.undefined;
|
||||
}),
|
||||
writable: true,
|
||||
enumerable: true,
|
||||
configurable: true
|
||||
});
|
||||
};
|
||||
|
||||
var _index = require("../../values/index.js");
|
||||
|
||||
var _document = require("./document.js");
|
||||
|
||||
var _document2 = _interopRequireDefault(_document);
|
||||
|
||||
var _console = require("../common/console.js");
|
||||
|
||||
var _console2 = _interopRequireDefault(_console);
|
||||
|
||||
var _errors = require("../../errors.js");
|
||||
|
||||
var _invariant = require("../../invariant.js");
|
||||
|
||||
var _invariant2 = _interopRequireDefault(_invariant);
|
||||
|
||||
var _index2 = require("../../domains/index.js");
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
//# sourceMappingURL=global.js.map
|
||||
1
build/node_modules/prepack/lib/intrinsics/dom/global.js.map
generated
vendored
Normal file
1
build/node_modules/prepack/lib/intrinsics/dom/global.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
2
build/node_modules/prepack/lib/intrinsics/dom/setInterval.js
generated
vendored
Normal file
2
build/node_modules/prepack/lib/intrinsics/dom/setInterval.js
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
"use strict";
|
||||
//# sourceMappingURL=setInterval.js.map
|
||||
1
build/node_modules/prepack/lib/intrinsics/dom/setInterval.js.map
generated
vendored
Normal file
1
build/node_modules/prepack/lib/intrinsics/dom/setInterval.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"sources":[],"names":[],"mappings":"","file":"setInterval.js","sourcesContent":[]}
|
||||
2
build/node_modules/prepack/lib/intrinsics/dom/setTimeout.js
generated
vendored
Normal file
2
build/node_modules/prepack/lib/intrinsics/dom/setTimeout.js
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
"use strict";
|
||||
//# sourceMappingURL=setTimeout.js.map
|
||||
1
build/node_modules/prepack/lib/intrinsics/dom/setTimeout.js.map
generated
vendored
Normal file
1
build/node_modules/prepack/lib/intrinsics/dom/setTimeout.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"sources":[],"names":[],"mappings":"","file":"setTimeout.js","sourcesContent":[]}
|
||||
Reference in New Issue
Block a user