mirror of
https://github.com/facebookarchive/prepack.git
synced 2024-08-16 10:00:40 +03:00
Run Prettier for serializer tests too (#2234)
Summary: Follow-up to https://github.com/facebook/prepack/pull/2212. Pull Request resolved: https://github.com/facebook/prepack/pull/2234 Differential Revision: D8788834 Pulled By: gaearon fbshipit-source-id: 08937736bed3df0ea13d5e7a3925fb2f58633d5c
This commit is contained in:
parent
8f3ce551f8
commit
ec37b77b6e
@ -31,7 +31,8 @@ const config = {
|
||||
patterns: ["scripts/**/*.js"],
|
||||
},
|
||||
jest: {
|
||||
patterns: ["test/react/**/*.js"],
|
||||
patterns: ["test/**/*.js"],
|
||||
ignore: ["test/**/syntaxError.js"],
|
||||
},
|
||||
};
|
||||
|
||||
|
@ -1,11 +1,11 @@
|
||||
// expected errors: [{"location":{"start":{"line":7,"column":16},"end":{"line":7,"column":18},"source":"test/error-handler/FinalObjectCannotBeMutated.js"},"severity":"FatalError","errorCode":"PP0026","callStack":"Error\n "}]
|
||||
(function () {
|
||||
function f() {
|
||||
let o = {};
|
||||
o.foo = 23;
|
||||
__makeFinal(o);
|
||||
o.foo = 42; // <-- error expected here
|
||||
}
|
||||
__optimize(f);
|
||||
global.inspect = f;
|
||||
// expected errors: [{"location":{"start":{"line":7,"column":12},"end":{"line":7,"column":14},"source":"test/error-handler/FinalObjectCannotBeMutated.js"},"severity":"FatalError","errorCode":"PP0026","callStack":"Error\n "}]
|
||||
(function() {
|
||||
function f() {
|
||||
let o = {};
|
||||
o.foo = 23;
|
||||
__makeFinal(o);
|
||||
o.foo = 42; // <-- error expected here
|
||||
}
|
||||
__optimize(f);
|
||||
global.inspect = f;
|
||||
})();
|
||||
|
@ -1,13 +1,19 @@
|
||||
// expected errors: [{"severity":"Warning","errorCode":"PP1007","callStack":"Error\n "},{"location":{"start":{"line":5,"column":16},"end":{"line":5,"column":18},"source":"test/error-handler/ModifiedObjectPropertyLimitation.js"},"severity":"Warning","errorCode":"PP0023","callStack":"Error\n "},{"location":{"start":{"line":5,"column":16},"end":{"line":5,"column":18},"source":"test/error-handler/ModifiedObjectPropertyLimitation.js"},"severity":"FatalError","errorCode":"PP1006","callStack":"Error\n "}]
|
||||
(function () {
|
||||
let p = {};
|
||||
function f(c) {
|
||||
let o = {};
|
||||
if (c) {
|
||||
o.__proto__ = p;
|
||||
throw o;
|
||||
}
|
||||
// expected errors: [{"severity":"Warning","errorCode":"PP1007","callStack":"Error\n "},{"location":{"start":{"line":5,"column":12},"end":{"line":5,"column":14},"source":"test/error-handler/ModifiedObjectPropertyLimitation.js"},"severity":"Warning","errorCode":"PP0023","callStack":"Error\n "},{"location":{"start":{"line":5,"column":12},"end":{"line":5,"column":14},"source":"test/error-handler/ModifiedObjectPropertyLimitation.js"},"severity":"FatalError","errorCode":"PP1006","callStack":"Error\n "}]
|
||||
(function() {
|
||||
let p = {};
|
||||
function f(c) {
|
||||
let o = {};
|
||||
if (c) {
|
||||
o.__proto__ = p;
|
||||
throw o;
|
||||
}
|
||||
if (global.__optimize) __optimize(f);
|
||||
inspect = function() { try { f(true); } catch (e) { return e.$Prototype === p; } }
|
||||
}
|
||||
if (global.__optimize) __optimize(f);
|
||||
inspect = function() {
|
||||
try {
|
||||
f(true);
|
||||
} catch (e) {
|
||||
return e.$Prototype === p;
|
||||
}
|
||||
};
|
||||
})();
|
||||
|
@ -1,7 +1,9 @@
|
||||
// jsc
|
||||
// recover-from-errors
|
||||
// expected errors: [{"location":{"start":{"line":5,"column":22},"end":{"line":5,"column":25},"source":"test/error-handler/Set.js"},"severity":"RecoverableError","errorCode":"PP0001"}]
|
||||
|
||||
|
||||
let s = new Set(["a", "a"]);
|
||||
|
||||
inspect = function() { return s.size === 1; }
|
||||
inspect = function() {
|
||||
return s.size === 1;
|
||||
};
|
||||
|
@ -1,4 +1,4 @@
|
||||
// expected errors: [{"location": {"start":{"line":4,"column":0},"end":{"line":4,"column":27},"source":"test/error-handler/abstract-value-check-dup-name-string.js"},"severity":"FatalError","errorCode":"PP0019","message":"An abstract value with the same name exists"}]
|
||||
|
||||
__abstract('number', 'foo');
|
||||
__abstract('number', 'foo');
|
||||
__abstract("number", "foo");
|
||||
__abstract("number", "foo");
|
||||
|
@ -21,4 +21,4 @@ inspect = function() {
|
||||
additional2();
|
||||
additional1();
|
||||
return global.a;
|
||||
}
|
||||
};
|
||||
|
@ -1,9 +1,13 @@
|
||||
// recover-from-errors
|
||||
// expected errors: [{location: {"start":{"line":11,"column":12},"end":{"line":11,"column":13},"identifierName":"y","source":"test/error-handler/binaryExpression.js"}, errorCode: "PP0002", severity: "RecoverableError", message: "might be an object with an unknown valueOf or toString or Symbol.toPrimitive method"},{location: {"start":{"line":12,"column":6},"end":{"line":12,"column":7},"identifierName":"y","source":"test/error-handler/binaryExpression.js"}, errorCode: "PP0002", severity: "RecoverableError", message: "might be an object with an unknown valueOf or toString or Symbol.toPrimitive method"}, {"location":{"start":{"line":17,"column":5},"end":{"line":17,"column":6},"identifierName":"y","source":"test/error-handler/binaryExpression.js"},"severity":"RecoverableError","errorCode":"PP0002"}, {"location":{"start":{"line":17,"column":55},"end":{"line":17,"column":56},"identifierName":"y","source":"test/error-handler/binaryExpression.js"},"severity":"RecoverableError","errorCode":"PP0002"}]
|
||||
// expected errors: [{location: {"start":{"line":15,"column":12},"end":{"line":15,"column":13},"identifierName":"y","source":"test/error-handler/binaryExpression.js"}, errorCode: "PP0002", severity: "RecoverableError", message: "might be an object with an unknown valueOf or toString or Symbol.toPrimitive method"},{location: {"start":{"line":16,"column":6},"end":{"line":16,"column":7},"identifierName":"y","source":"test/error-handler/binaryExpression.js"}, errorCode: "PP0002", severity: "RecoverableError", message: "might be an object with an unknown valueOf or toString or Symbol.toPrimitive method"}, {"location":{"start":{"line":21,"column":5},"end":{"line":21,"column":6},"identifierName":"y","source":"test/error-handler/binaryExpression.js"},"severity":"RecoverableError","errorCode":"PP0002"}, {"location":{"start":{"line":21,"column":55},"end":{"line":21,"column":56},"identifierName":"y","source":"test/error-handler/binaryExpression.js"},"severity":"RecoverableError","errorCode":"PP0002"}]
|
||||
|
||||
var b = global.__abstract ? __abstract("boolean", "true") : true;
|
||||
var x = global.__abstract ? __abstract("number", "123") : 123;
|
||||
var badOb = { valueOf: function() { throw 13;} }
|
||||
var badOb = {
|
||||
valueOf: function() {
|
||||
throw 13;
|
||||
},
|
||||
};
|
||||
var ob = global.__makePartial ? __makePartial({}) : badOb;
|
||||
var y = b ? ob : x;
|
||||
|
||||
@ -16,4 +20,6 @@ try {
|
||||
|
||||
z1 = y < 13 && x > 122 && 123 <= x && x >= 123 && x == y && x != 1 && x === x && x !== y;
|
||||
|
||||
inspect = function() { return "" + z + z1; }
|
||||
inspect = function() {
|
||||
return "" + z + z1;
|
||||
};
|
||||
|
@ -1,9 +1,9 @@
|
||||
// recover-from-errors
|
||||
// expected errors: [{"location":{"start":{"line":10,"column":0},"end":{"line":10,"column":1},"identifierName":"o","source":"test/error-handler/call.js"},"severity":"RecoverableError","errorCode":"PP0005"}, {"location":{"start":{"line":11,"column":2},"end":{"line":11,"column":3},"identifierName":"m","source":"test/error-handler/call.js"},"severity":"RecoverableError","errorCode":"PP0005"}, {"location":{"start":{"line":14,"column":5},"end":{"line":14,"column":8},"identifierName":"str","source":"test/error-handler/call.js"},"severity":"RecoverableError","errorCode":"PP0006"}]
|
||||
|
||||
function foo(){};
|
||||
function foo() {}
|
||||
var f = global.__abstract ? __abstract(foo, "foo") : foo;
|
||||
var o = global.__abstract ? __abstract(({}), "({})") : {};
|
||||
var o = global.__abstract ? __abstract({}, "({})") : {};
|
||||
if (global.__makeSimple) global.__makeSimple(o);
|
||||
|
||||
foo();
|
||||
|
@ -1,12 +1,20 @@
|
||||
// recover-from-errors
|
||||
// expected errors: [{"location":{"start":{"line":8,"column":4},"end":{"line":8,"column":13},"source":"test/error-handler/call2.js"},"severity":"RecoverableError","errorCode":"PP0017"}]
|
||||
// expected errors: [{"location":{"start":{"line":12,"column":4},"end":{"line":12,"column":13},"source":"test/error-handler/call2.js"},"severity":"RecoverableError","errorCode":"PP0017"}]
|
||||
|
||||
let bar = {x: 1};
|
||||
let foo = global.__abstract ? __abstract('function', '(function() { return this.x; })') : function() { return this.x; };
|
||||
let bar = { x: 1 };
|
||||
let foo = global.__abstract
|
||||
? __abstract("function", "(function() { return this.x; })")
|
||||
: function() {
|
||||
return this.x;
|
||||
};
|
||||
|
||||
bar.foo = foo;
|
||||
x = bar.foo();
|
||||
bar.foo = function() { return "abc"; }
|
||||
bar.foo = function() {
|
||||
return "abc";
|
||||
};
|
||||
y = bar.foo();
|
||||
|
||||
inspect = function() { return "" + x + y; }
|
||||
inspect = function() {
|
||||
return "" + x + y;
|
||||
};
|
||||
|
@ -1,11 +1,11 @@
|
||||
// recover-from-errors
|
||||
// expected errors: [{"location":{"start":{"line":7,"column":18},"end":{"line":7,"column":26},"identifierName":"absSuper","source":"test/error-handler/class.js"},"severity":"RecoverableError","errorCode":"PP0009"}, {"location":{"start":{"line":11,"column":18},"end":{"line":11,"column":28},"identifierName":"superClass","source":"test/error-handler/class.js"},"severity":"RecoverableError","errorCode":"PP0010"}]
|
||||
|
||||
let superClass = function() { };
|
||||
let superClass = function() {};
|
||||
let absSuper = __abstract("object");
|
||||
|
||||
class foo extends absSuper{}
|
||||
class foo extends absSuper {}
|
||||
|
||||
superClass.prototype = absSuper;
|
||||
|
||||
class bar extends superClass{}
|
||||
class bar extends superClass {}
|
||||
|
@ -12,11 +12,13 @@ function f() {
|
||||
}
|
||||
|
||||
function g() {
|
||||
f()
|
||||
f();
|
||||
//condition from line 7 should have been undone and this should fail.
|
||||
return n2 - n1;
|
||||
}
|
||||
|
||||
g();
|
||||
|
||||
inspect = function (){return true;}
|
||||
inspect = function() {
|
||||
return true;
|
||||
};
|
||||
|
@ -1,6 +1,6 @@
|
||||
// expected errors: [{"location":{"start":{"line":9,"column":17},"end":{"line":9,"column":32},"source":"test/error-handler/forLoop1.js"},"severity":"FatalError","errorCode":"PP0034"}]
|
||||
|
||||
var x = global.__abstract ? x = __abstract("number", "(1)") : 1;
|
||||
var x = global.__abstract ? (x = __abstract("number", "(1)")) : 1;
|
||||
let i;
|
||||
let j;
|
||||
|
||||
@ -10,4 +10,6 @@ label: for (i = 0; i < 2; i++) {
|
||||
}
|
||||
}
|
||||
|
||||
inspect = function() { return j; }
|
||||
inspect = function() {
|
||||
return j;
|
||||
};
|
||||
|
@ -16,4 +16,6 @@ try {
|
||||
if (err instanceof TypeError) x3 = true;
|
||||
}
|
||||
|
||||
inspect = function() { return "" + x1 + x3; }
|
||||
inspect = function() {
|
||||
return "" + x1 + x3;
|
||||
};
|
||||
|
@ -3,13 +3,15 @@
|
||||
|
||||
var b = global.__abstract ? __abstract("boolean", "true") : true;
|
||||
var a0 = { "4": 5 };
|
||||
var a1 = global.__makeSimple ? __makeSimple({ '4': 5 }) : a0;
|
||||
var a1 = global.__makeSimple ? __makeSimple({ "4": 5 }) : a0;
|
||||
|
||||
var tArr = new Int8Array(4);
|
||||
var a2 = global.__abstract ? __abstract("object", "tArr"): tArr;
|
||||
var a2 = global.__abstract ? __abstract("object", "tArr") : tArr;
|
||||
|
||||
x0 = "4" in a0;
|
||||
x1 = "4" in a1;
|
||||
x2 = "4" in a2;
|
||||
|
||||
inspect = function() { return "" + x0 + x1 + x2; }
|
||||
inspect = function() {
|
||||
return "" + x0 + x1 + x2;
|
||||
};
|
||||
|
@ -1,9 +1,13 @@
|
||||
// recover-from-errors
|
||||
// expected errors: [{"location":{"start":{"line":11,"column":20},"end":{"line":11,"column":23},"identifierName":"foo","source":"test/error-handler/instanceof.js"},"severity":"RecoverableError","errorCode":"PP0004"}, {"location":{"start":{"line":17,"column":20},"end":{"line":17,"column":21},"identifierName":"b","source":"test/error-handler/instanceof.js"},"severity":"RecoverableError","errorCode":"PP0003"}, {"location":{"start":{"line":23,"column":20},"end":{"line":23,"column":21},"identifierName":"f","source":"test/error-handler/instanceof.js"},"severity":"RecoverableError","errorCode":"PP0004"}]
|
||||
// expected errors: [{"location":{"start":{"line":15,"column":20},"end":{"line":15,"column":23},"identifierName":"foo","source":"test/error-handler/instanceof.js"},"severity":"RecoverableError","errorCode":"PP0004"}, {"location":{"start":{"line":21,"column":20},"end":{"line":21,"column":21},"identifierName":"b","source":"test/error-handler/instanceof.js"},"severity":"RecoverableError","errorCode":"PP0003"}, {"location":{"start":{"line":27,"column":20},"end":{"line":27,"column":21},"identifierName":"f","source":"test/error-handler/instanceof.js"},"severity":"RecoverableError","errorCode":"PP0004"}]
|
||||
|
||||
var b = global.__abstract ? __abstract("boolean", "true") : true;
|
||||
function foo(){};
|
||||
Object.defineProperty(foo, Symbol.hasInstance, { value: function() { throw 123; } })
|
||||
function foo() {}
|
||||
Object.defineProperty(foo, Symbol.hasInstance, {
|
||||
value: function() {
|
||||
throw 123;
|
||||
},
|
||||
});
|
||||
var f = global.__abstract ? __abstract("object", "foo") : foo;
|
||||
var o = global.__abstract ? __abstract("object", "({})") : {};
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
// recover-from-errors
|
||||
// expected errors: [{"location":{"start":{"line":5,"column":34},"end":{"line":5,"column":37},"identifierName":"obj","source":"test/error-handler/object-assign.js"},"severity":"FatalError","errorCode":"PP0001"}]
|
||||
|
||||
var obj = global.__abstract && global.__makePartial ? __makePartial(__abstract({}, "({foo:1})")) : {foo:1};
|
||||
var obj = global.__abstract && global.__makePartial ? __makePartial(__abstract({}, "({foo:1})")) : { foo: 1 };
|
||||
var copyOfObj = Object.assign({}, obj);
|
||||
|
@ -1,7 +1,7 @@
|
||||
// recover-from-errors
|
||||
// expected errors: [{"location":{"start":{"line":7,"column":11},"end":{"line":7,"column":30},"source":"test/error-handler/objectExpression.js"},"severity":"FatalError","errorCode":"PP0011"}, {"location":{"start":{"line":7,"column":32},"end":{"line":7,"column":38},"source":"test/error-handler/objectExpression.js"},"severity":"FatalError","errorCode":"PP0011"}]
|
||||
// expected errors: [{"location":{"start":{"line":7,"column":11},"end":{"line":7,"column":29},"source":"test/error-handler/objectExpression.js"},"severity":"FatalError","errorCode":"PP0011"}, {"location":{"start":{"line":7,"column":31},"end":{"line":7,"column":37},"source":"test/error-handler/objectExpression.js"},"severity":"FatalError","errorCode":"PP0011"}]
|
||||
|
||||
let x = __abstract("number");
|
||||
let y = __abstract("number");
|
||||
|
||||
let ob = { [x]: function () {}, [y]: 2 };
|
||||
let ob = { [x]: function() {}, [y]: 2 };
|
||||
|
@ -1,6 +1,6 @@
|
||||
// expected errors: [{"location":{"start":{"line":6,"column":11},"end":{"line":6,"column":30},"source":"test/error-handler/objectExpression2.js"},"severity":"FatalError","errorCode":"PP0011"}]
|
||||
// expected errors: [{"location":{"start":{"line":6,"column":11},"end":{"line":6,"column":29},"source":"test/error-handler/objectExpression2.js"},"severity":"FatalError","errorCode":"PP0011"}]
|
||||
|
||||
let x = __abstract("number");
|
||||
let y = __abstract("number");
|
||||
|
||||
let ob = { [x]: function () {}, [y]: 2 };
|
||||
let ob = { [x]: function() {}, [y]: 2 };
|
||||
|
@ -1,6 +1,6 @@
|
||||
// delay unsupported requires
|
||||
// recover-from-errors
|
||||
// expected errors: [{"location":{"start":{"line":85,"column":4},"end":{"line":85,"column":12},"source":"test/error-handler/require_throws2.js"},"severity":"Warning","errorCode":"PP0018"}]
|
||||
// expected errors: [{"location":{"start":{"line":84,"column":4},"end":{"line":84,"column":12},"source":"test/error-handler/require_throws2.js"},"severity":"Warning","errorCode":"PP0018"}]
|
||||
|
||||
let b = global.__abstract ? __abstract("boolean", "true") : true;
|
||||
|
||||
@ -22,7 +22,7 @@ function define(factory, moduleId, dependencyMap) {
|
||||
exports: undefined,
|
||||
factory: factory,
|
||||
hasError: false,
|
||||
isInitialized: false
|
||||
isInitialized: false,
|
||||
};
|
||||
|
||||
var _verboseName = arguments[3];
|
||||
@ -65,19 +65,18 @@ function loadModuleImplementation(moduleId, module) {
|
||||
}
|
||||
|
||||
module.isInitialized = true;
|
||||
var exports = module.exports = {};
|
||||
var exports = (module.exports = {});
|
||||
var _module = module,
|
||||
factory = _module.factory,
|
||||
dependencyMap = _module.dependencyMap;
|
||||
factory = _module.factory,
|
||||
dependencyMap = _module.dependencyMap;
|
||||
try {
|
||||
|
||||
var _moduleObject = { exports: exports };
|
||||
|
||||
factory(global, require, _moduleObject, exports, dependencyMap);
|
||||
|
||||
module.factory = undefined;
|
||||
|
||||
return module.exports = _moduleObject.exports;
|
||||
return (module.exports = _moduleObject.exports);
|
||||
} catch (e) {
|
||||
module.hasError = true;
|
||||
module.isInitialized = false;
|
||||
@ -98,7 +97,9 @@ function moduleThrewError(id) {
|
||||
// === End require code ===
|
||||
|
||||
define(function(global, require, module, exports) {
|
||||
var obj = global.__abstract ? __makeSimple(__abstract({unsupported: true}, "({unsupported: true})")) : ({unsupported: true});
|
||||
var obj = global.__abstract
|
||||
? __makeSimple(__abstract({ unsupported: true }, "({unsupported: true})"))
|
||||
: { unsupported: true };
|
||||
if (obj.unsupported) {
|
||||
exports.magic = 42;
|
||||
} else {
|
||||
@ -110,9 +111,13 @@ define(function(global, require, module, exports) {
|
||||
|
||||
define(function(global, require, module, exports) {
|
||||
var x = require(0);
|
||||
module.exports = function() { return x.notmagic; }
|
||||
module.exports = function() {
|
||||
return x.notmagic;
|
||||
};
|
||||
}, 1, null);
|
||||
|
||||
var f = require(1);
|
||||
|
||||
inspect = function() { return f().magic; }
|
||||
inspect = function() {
|
||||
return f().magic;
|
||||
};
|
||||
|
@ -1,9 +1,15 @@
|
||||
// abstract effects
|
||||
// recover-from-errors
|
||||
// expected errors: [{location: {"start":{"line":13,"column":11},"end":{"line":13,"column":15},"identifierName":"obj1","source":"test/error-handler/try-and-access-abstract-property.js"}, errorCode: "PP0021", severity: "RecoverableError", message: "Possible throw inside try/catch is not yet supported"},{location: {"start":{"line":21,"column":11},"end":{"line":21,"column":15},"identifierName":"obj2","source":"test/error-handler/try-and-access-abstract-property.js"}, errorCode: "PP0021", severity: "RecoverableError", message: "Possible throw inside try/catch is not yet supported"}]
|
||||
// expected errors: [{location: {"start":{"line":19,"column":11},"end":{"line":19,"column":15},"identifierName":"obj1","source":"test/error-handler/try-and-access-abstract-property.js"}, errorCode: "PP0021", severity: "RecoverableError", message: "Possible throw inside try/catch is not yet supported"},{location: {"start":{"line":27,"column":11},"end":{"line":27,"column":15},"identifierName":"obj2","source":"test/error-handler/try-and-access-abstract-property.js"}, errorCode: "PP0021", severity: "RecoverableError", message: "Possible throw inside try/catch is not yet supported"}]
|
||||
|
||||
let obj1 = global.__abstract ? __abstract('object', '({get foo() { return "bar"; }})') : {get foo() { return "bar"; }};
|
||||
let obj2 = global.__abstract ? __abstract('object', '({foo:{bar:"baz"}})') : {foo:{bar:"baz"}};
|
||||
let obj1 = global.__abstract
|
||||
? __abstract("object", '({get foo() { return "bar"; }})')
|
||||
: {
|
||||
get foo() {
|
||||
return "bar";
|
||||
},
|
||||
};
|
||||
let obj2 = global.__abstract ? __abstract("object", '({foo:{bar:"baz"}})') : { foo: { bar: "baz" } };
|
||||
if (global.__makeSimple) {
|
||||
__makeSimple(obj2);
|
||||
}
|
||||
@ -33,4 +39,4 @@ inspect = function() {
|
||||
let ret1 = additional1();
|
||||
let ret2 = additional2();
|
||||
return JSON.stringify({ ret1, ret2 });
|
||||
}
|
||||
};
|
||||
|
@ -1,8 +1,12 @@
|
||||
// abstract effects
|
||||
// expected errors: [{location: {"start":{"line":26,"column":11},"end":{"line":26,"column":21},"identifierName":"abstractFn","source":"test/error-handler/try-and-call-abstract-function.js"}, errorCode: "PP0021", severity: "RecoverableError", message: "Possible throw inside try/catch is not yet supported"}]
|
||||
// expected errors: [{location: {"start":{"line":30,"column":11},"end":{"line":30,"column":21},"identifierName":"abstractFn","source":"test/error-handler/try-and-call-abstract-function.js"}, errorCode: "PP0021", severity: "RecoverableError", message: "Possible throw inside try/catch is not yet supported"}]
|
||||
// recover-from-errors
|
||||
|
||||
let abstractFn = global.__abstract ? __abstract('function', '(function() { return true; })') : function() { return true; };
|
||||
let abstractFn = global.__abstract
|
||||
? __abstract("function", "(function() { return true; })")
|
||||
: function() {
|
||||
return true;
|
||||
};
|
||||
|
||||
function concreteFunction() {
|
||||
return true;
|
||||
@ -38,4 +42,4 @@ inspect = function() {
|
||||
let ret1 = additional1();
|
||||
let ret2 = additional2();
|
||||
return JSON.stringify({ ret1, ret2 });
|
||||
}
|
||||
};
|
||||
|
@ -1,11 +1,13 @@
|
||||
// recover-from-errors
|
||||
// expected errors: [{"location":{"start":{"line":11,"column":10},"end":{"line":11,"column":19},"identifierName":"mysteryOb","source":"test/error-handler/unaryExpression.js"},"severity":"RecoverableError","errorCode":"PP0008"}, {"location":{"start":{"line":13,"column":10},"end":{"line":13,"column":19},"identifierName":"mysteryOb","source":"test/error-handler/unaryExpression.js"},"severity":"RecoverableError","errorCode":"PP0008"}, {"location":{"start":{"line":15,"column":10},"end":{"line":15,"column":19},"identifierName":"mysteryOb","source":"test/error-handler/unaryExpression.js"},"severity":"RecoverableError","errorCode":"PP0008"}]
|
||||
// expected errors: [{"location":{"start":{"line":13,"column":10},"end":{"line":13,"column":19},"identifierName":"mysteryOb","source":"test/error-handler/unaryExpression.js"},"severity":"RecoverableError","errorCode":"PP0008"}, {"location":{"start":{"line":15,"column":10},"end":{"line":15,"column":19},"identifierName":"mysteryOb","source":"test/error-handler/unaryExpression.js"},"severity":"RecoverableError","errorCode":"PP0008"}, {"location":{"start":{"line":17,"column":10},"end":{"line":17,"column":19},"identifierName":"mysteryOb","source":"test/error-handler/unaryExpression.js"},"severity":"RecoverableError","errorCode":"PP0008"}]
|
||||
|
||||
var b = global.__abstract ? __abstract("boolean", "true") : true;
|
||||
var x = global.__abstract ? __abstract("number", "123") : 123;
|
||||
var badOb = {};
|
||||
if (global.__makeSimple) global.__makeSimple(badOb);
|
||||
badOb[Symbol.toPrimitive] = function() { throw 13;}
|
||||
badOb[Symbol.toPrimitive] = function() {
|
||||
throw 13;
|
||||
};
|
||||
var mysteryOb = b ? null : badOb;
|
||||
|
||||
var x1 = +mysteryOb;
|
||||
|
@ -1,9 +1,13 @@
|
||||
// recover-from-errors
|
||||
// expected errors: [{"location":{"start":{"line":10,"column":0},"end":{"line":10,"column":1},"identifierName":"y","source":"test/error-handler/updateExpression.js"},"severity":"RecoverableError","errorCode":"PP0008"}, {"location":{"start":{"line":11,"column":2},"end":{"line":11,"column":4},"identifierName":"ob","source":"test/error-handler/updateExpression.js"},"severity":"RecoverableError","errorCode":"PP0008"}]
|
||||
// expected errors: [{"location":{"start":{"line":14,"column":0},"end":{"line":14,"column":1},"identifierName":"y","source":"test/error-handler/updateExpression.js"},"severity":"RecoverableError","errorCode":"PP0008"}, {"location":{"start":{"line":15,"column":2},"end":{"line":15,"column":4},"identifierName":"ob","source":"test/error-handler/updateExpression.js"},"severity":"RecoverableError","errorCode":"PP0008"}]
|
||||
|
||||
var b = global.__abstract ? __abstract("boolean", "true") : true;
|
||||
var x = global.__abstract ? __abstract("number", "123") : 123;
|
||||
var badOb = { valueOf: function() { throw 13;} }
|
||||
var badOb = {
|
||||
valueOf: function() {
|
||||
throw 13;
|
||||
},
|
||||
};
|
||||
var ob = global.__abstract ? __abstract("object", "({ valueOf: function() { throw 13;} })") : badOb;
|
||||
var y = b ? ob : x;
|
||||
|
||||
|
@ -1,10 +1,12 @@
|
||||
// recover-from-errors
|
||||
// expected errors: [{"location":{"start":{"line":7,"column":5},"end":{"line":7,"column":8},"identifierName":"obj","source":"test/error-handler/with.js"},"severity":"RecoverableError","errorCode":"PP0007"}]
|
||||
// expected errors: [{"location":{"start":{"line":7,"column":6},"end":{"line":7,"column":9},"identifierName":"obj","source":"test/error-handler/with.js"},"severity":"RecoverableError","errorCode":"PP0007"}]
|
||||
|
||||
let obj = global.__abstract ? __makePartial({x:1,y:3}, '({x:1,y:3})') : {x:1,y:3};
|
||||
let obj = global.__abstract ? __makePartial({ x: 1, y: 3 }, "({x:1,y:3})") : { x: 1, y: 3 };
|
||||
if (global.__makeSimple) global.__makeSimple(obj);
|
||||
let y = 2;
|
||||
with(obj) {
|
||||
with (obj) {
|
||||
z = x + y;
|
||||
}
|
||||
inspect = function() { return z; }
|
||||
inspect = function() {
|
||||
return z;
|
||||
};
|
||||
|
@ -1,9 +1,11 @@
|
||||
// recover-from-errors
|
||||
// expected errors: [{"location":{"start":{"line":6,"column":5},"end":{"line":6,"column":8},"identifierName":"obj","source":"test/error-handler/with2.js"},"severity":"RecoverableError","errorCode":"PP0007"}, {"location":{"start":{"line":7,"column":2},"end":{"line":7,"column":3},"identifierName":"z","source":"test/error-handler/with2.js"},"severity":"FatalError","errorCode":"PP0001"}]
|
||||
// expected errors: [{"location":{"start":{"line":6,"column":6},"end":{"line":6,"column":9},"identifierName":"obj","source":"test/error-handler/with2.js"},"severity":"RecoverableError","errorCode":"PP0007"}, {"location":{"start":{"line":7,"column":2},"end":{"line":7,"column":3},"identifierName":"z","source":"test/error-handler/with2.js"},"severity":"FatalError","errorCode":"PP0001"}]
|
||||
|
||||
let obj = global.__abstract ? __makePartial({x:1,y:3}, '({x:1,y:3})') : {x:1,y:3};
|
||||
let obj = global.__abstract ? __makePartial({ x: 1, y: 3 }, "({x:1,y:3})") : { x: 1, y: 3 };
|
||||
let y = 2;
|
||||
with(obj) {
|
||||
with (obj) {
|
||||
z = x + y;
|
||||
}
|
||||
inspect = function() { return z; }
|
||||
inspect = function() {
|
||||
return z;
|
||||
};
|
||||
|
@ -7,7 +7,6 @@ function additional1() {
|
||||
|
||||
function additional2() {
|
||||
for (let p in global.a) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -20,4 +19,4 @@ inspect = function() {
|
||||
additional2();
|
||||
additional1();
|
||||
return global.b;
|
||||
}
|
||||
};
|
||||
|
@ -18,4 +18,4 @@ inspect = function() {
|
||||
additional2();
|
||||
additional1();
|
||||
return global.b;
|
||||
}
|
||||
};
|
||||
|
@ -20,4 +20,4 @@ inspect = function() {
|
||||
additional2();
|
||||
additional1();
|
||||
return global.b;
|
||||
}
|
||||
};
|
||||
|
@ -20,4 +20,4 @@ inspect = function() {
|
||||
additional2();
|
||||
additional1();
|
||||
return global.a;
|
||||
}
|
||||
};
|
||||
|
@ -20,4 +20,4 @@ inspect = function() {
|
||||
additional2();
|
||||
additional1();
|
||||
return global.a;
|
||||
}
|
||||
};
|
||||
|
@ -20,4 +20,4 @@ inspect = function() {
|
||||
additional2();
|
||||
additional1();
|
||||
return global.a;
|
||||
}
|
||||
};
|
||||
|
@ -20,4 +20,4 @@ inspect = function() {
|
||||
additional2();
|
||||
additional1();
|
||||
return global.a + global.b;
|
||||
}
|
||||
};
|
||||
|
@ -2,7 +2,7 @@
|
||||
// expected errors: [{"severity":"Warning","errorCode":"PP1007","callStack":"Error\n "},{"severity":"Warning","errorCode":"PP1007","callStack":"Error\n "},{"severity":"Warning","errorCode":"PP1007","callStack":"Error\n "},{"severity":"Warning","errorCode":"PP1007","callStack":"Error\n "},{"location":{"start":{"line":12,"column":16},"end":{"line":12,"column":21},"source":"test/error-handler/write-write-unknown-prop-conflict.js"},"severity":"FatalError","errorCode":"PP1003"},{"location":{"start":{"line":8,"column":16},"end":{"line":8,"column":21},"source":"test/error-handler/write-write-unknown-prop-conflict.js"},"severity":"FatalError","errorCode":"PP1003"}]
|
||||
|
||||
let i = global.__abstract ? __abstract("string", "x") : "x";
|
||||
global.a = { x: "" }
|
||||
global.a = { x: "" };
|
||||
|
||||
function additional1() {
|
||||
global.a[i] = "foo";
|
||||
@ -21,4 +21,4 @@ inspect = function() {
|
||||
additional2();
|
||||
additional1();
|
||||
return global.a.x;
|
||||
}
|
||||
};
|
||||
|
@ -1,19 +1,24 @@
|
||||
var fs = require('fs');
|
||||
var fs = require("fs");
|
||||
|
||||
var greetingPath = require.resolve('./Greeting.txt');
|
||||
var greetingPath = require.resolve("./Greeting.txt");
|
||||
|
||||
var greetingJSON = require('./Greeting.json');
|
||||
var greetingJSON = require("./Greeting.json");
|
||||
|
||||
// The residual program after initialization.
|
||||
__residual('boolean', function(fs, greetingJSON, greetingPath, console, JSON) {
|
||||
__residual(
|
||||
"boolean",
|
||||
function(fs, greetingJSON, greetingPath, console, JSON) {
|
||||
var greetingText = fs.readFileSync(greetingPath, "utf8");
|
||||
|
||||
var greetingText = fs.readFileSync(greetingPath, 'utf8');
|
||||
console.log(`${greetingJSON.greeting} ${greetingText} world!`);
|
||||
|
||||
console.log(
|
||||
`${greetingJSON.greeting} ${greetingText} world!`
|
||||
);
|
||||
|
||||
// Currently, we're required to have a return value even though
|
||||
// we're not going to use it.
|
||||
return false;
|
||||
}, fs, greetingJSON, greetingPath, console, JSON);
|
||||
// Currently, we're required to have a return value even though
|
||||
// we're not going to use it.
|
||||
return false;
|
||||
},
|
||||
fs,
|
||||
greetingJSON,
|
||||
greetingPath,
|
||||
console,
|
||||
JSON
|
||||
);
|
||||
|
@ -1,11 +1,15 @@
|
||||
var greeting = require('./Greeting');
|
||||
var greeting = require("./Greeting");
|
||||
|
||||
// The residual program after initialization.
|
||||
__residual('boolean', function(greeting, console) {
|
||||
__residual(
|
||||
"boolean",
|
||||
function(greeting, console) {
|
||||
console.log(greeting + " world!");
|
||||
|
||||
console.log(greeting + ' world!');
|
||||
|
||||
// Currently, we're required to have a return value even though
|
||||
// we're not going to use it.
|
||||
return false;
|
||||
}, greeting, console);
|
||||
// Currently, we're required to have a return value even though
|
||||
// we're not going to use it.
|
||||
return false;
|
||||
},
|
||||
greeting,
|
||||
console
|
||||
);
|
||||
|
@ -1 +1 @@
|
||||
var __result = [1+2, "2", [3], ...[4, 5]]
|
||||
var __result = [1 + 2, "2", [3], ...[4, 5]];
|
||||
|
@ -1 +1,3 @@
|
||||
{let __result = 1;}
|
||||
{
|
||||
let __result = 1;
|
||||
}
|
||||
|
@ -4,28 +4,21 @@ let b = global.__abstract ? __abstract("boolean", "true") : true;
|
||||
let y = 1;
|
||||
|
||||
function foo(x) {
|
||||
if (b)
|
||||
y += x;
|
||||
else
|
||||
throw x;
|
||||
if (b) y += x;
|
||||
else throw x;
|
||||
}
|
||||
|
||||
foo(2);
|
||||
|
||||
function bar(x) {
|
||||
if (x)
|
||||
return foo;
|
||||
else
|
||||
throw foo;
|
||||
if (x) return foo;
|
||||
else throw foo;
|
||||
}
|
||||
|
||||
if (b)
|
||||
bar(b)(3);
|
||||
else
|
||||
bar(false)(4);
|
||||
if (b) bar(b)(3);
|
||||
else bar(false)(4);
|
||||
|
||||
if (b) {
|
||||
|
||||
} else {
|
||||
bar(b)(bar(false));
|
||||
}
|
||||
|
@ -1,3 +1,5 @@
|
||||
function f() { return 123; }
|
||||
function f() {
|
||||
return 123;
|
||||
}
|
||||
var g = global.__abstract ? global.__abstract(f, "f") : f;
|
||||
__result = g();
|
||||
|
@ -1,12 +1,18 @@
|
||||
var o = global.__abstract ? global.__abstract('number', '1') : 1;
|
||||
var o = global.__abstract ? global.__abstract("number", "1") : 1;
|
||||
var obj = {};
|
||||
function bar(x) {
|
||||
if (o > 1) {
|
||||
obj.foo = function() { return 1 + x; }
|
||||
obj.foo = function() {
|
||||
return 1 + x;
|
||||
};
|
||||
} else if (o > 2) {
|
||||
obj.foo = function() { return 2 + x; }
|
||||
obj.foo = function() {
|
||||
return 2 + x;
|
||||
};
|
||||
} else {
|
||||
obj.foo = function() { return 3 + x; }
|
||||
obj.foo = function() {
|
||||
return 3 + x;
|
||||
};
|
||||
}
|
||||
}
|
||||
bar(5);
|
||||
|
@ -1,12 +1,18 @@
|
||||
var o = global.__abstract ? global.__abstract('number', '1') : 1;
|
||||
var o = global.__abstract ? global.__abstract("number", "1") : 1;
|
||||
var obj = {};
|
||||
function bar(x) {
|
||||
if (o > 1) {
|
||||
obj.foo = function() { return 1 + x; }
|
||||
obj.foo = function() {
|
||||
return 1 + x;
|
||||
};
|
||||
} else if (o > 2) {
|
||||
obj.foo = function() { return 2 + x; }
|
||||
obj.foo = function() {
|
||||
return 2 + x;
|
||||
};
|
||||
} else {
|
||||
obj.foo = function() { return 3 + x; }
|
||||
obj.foo = function() {
|
||||
return 3 + x;
|
||||
};
|
||||
}
|
||||
}
|
||||
bar(5);
|
||||
|
@ -1,5 +1,7 @@
|
||||
eval("var ohSo = 'evil';");
|
||||
evil = eval();
|
||||
eval = function () { return " very "; };
|
||||
eval = function() {
|
||||
return " very ";
|
||||
};
|
||||
very = eval();
|
||||
__result = ohSo + very + evil;
|
||||
|
@ -1,6 +1,8 @@
|
||||
// add at runtime:function __nextComponentID() { return 42; }
|
||||
(function() {
|
||||
let f = global.__abstract ? __abstract(":number", "__nextComponentID") : __nextComponentID;
|
||||
let t = typeof f();
|
||||
inspect = function() { return t; }
|
||||
})();
|
||||
let f = global.__abstract ? __abstract(":number", "__nextComponentID") : __nextComponentID;
|
||||
let t = typeof f();
|
||||
inspect = function() {
|
||||
return t;
|
||||
};
|
||||
})();
|
||||
|
@ -1,7 +1,13 @@
|
||||
// add at runtime: global.z = { 0: "test string" };
|
||||
if (global.__assumeDataProperty)
|
||||
__assumeDataProperty(this, "z", __abstract({
|
||||
0: __abstract("string")
|
||||
}));
|
||||
__assumeDataProperty(
|
||||
this,
|
||||
"z",
|
||||
__abstract({
|
||||
0: __abstract("string"),
|
||||
})
|
||||
);
|
||||
let check = z && typeof z[0] === "string" && z[0];
|
||||
inspect = function() { return check; }
|
||||
inspect = function() {
|
||||
return check;
|
||||
};
|
||||
|
@ -1,8 +1,13 @@
|
||||
// add at runtime: global.o = { foo: undefined };
|
||||
if (global.__abstract)
|
||||
o = __abstract({
|
||||
foo: __abstractOrNullOrUndefined('number')
|
||||
}, "global.o");
|
||||
let check = o && typeof o.foo === 'number' && o.foo >= 3;
|
||||
o = __abstract(
|
||||
{
|
||||
foo: __abstractOrNullOrUndefined("number"),
|
||||
},
|
||||
"global.o"
|
||||
);
|
||||
let check = o && typeof o.foo === "number" && o.foo >= 3;
|
||||
|
||||
inspect = function() { return check + ' ' + global.o.foo; }
|
||||
inspect = function() {
|
||||
return check + " " + global.o.foo;
|
||||
};
|
||||
|
@ -1,7 +1,7 @@
|
||||
// add at runtime:global.__obj1 = { a: 1 }; global.__obj2 = { a: 2 };
|
||||
|
||||
let obj1 = global.__abstract ? __abstract({}, 'global.__obj1') : { a: 1 };
|
||||
let obj2 = global.__abstract ? __abstract({}, 'global.__obj2') : { a: 2 };
|
||||
let obj1 = global.__abstract ? __abstract({}, "global.__obj1") : { a: 1 };
|
||||
let obj2 = global.__abstract ? __abstract({}, "global.__obj2") : { a: 2 };
|
||||
|
||||
if (global.__makePartial) {
|
||||
__makePartial(obj1);
|
||||
@ -38,4 +38,4 @@ inspect = function() {
|
||||
result += ret2[key];
|
||||
}
|
||||
return result;
|
||||
}
|
||||
};
|
||||
|
@ -1,7 +1,7 @@
|
||||
// add at runtime:global.__obj1 = { a: Math.random(), b: 10 }; global.__obj2 = { a: Math.random(), b: 10 };
|
||||
|
||||
let obj1 = global.__abstract ? __abstract({}, 'global.__obj1') : { a: Math.random(), b: 10 };
|
||||
let obj2 = global.__abstract ? __abstract({}, 'global.__obj2') : { a: Math.random(), b: 10 };
|
||||
let obj1 = global.__abstract ? __abstract({}, "global.__obj1") : { a: Math.random(), b: 10 };
|
||||
let obj2 = global.__abstract ? __abstract({}, "global.__obj2") : { a: Math.random(), b: 10 };
|
||||
|
||||
if (global.__makePartial) {
|
||||
__makePartial(obj1);
|
||||
@ -40,4 +40,4 @@ inspect = function() {
|
||||
result += ret1.b;
|
||||
result += ret2.b;
|
||||
return result;
|
||||
}
|
||||
};
|
||||
|
@ -1,7 +1,7 @@
|
||||
// add at runtime:global.__obj1 = { "extends": Math.random(), b: 10 }; global.__obj2 = { "while": Math.random(), b: 10 };
|
||||
|
||||
let obj1 = global.__abstract ? __abstract({}, 'global.__obj1') : { "extends": Math.random(), b: 10 };
|
||||
let obj2 = global.__abstract ? __abstract({}, 'global.__obj2') : { "while": Math.random(), b: 10 };
|
||||
let obj1 = global.__abstract ? __abstract({}, "global.__obj1") : { extends: Math.random(), b: 10 };
|
||||
let obj2 = global.__abstract ? __abstract({}, "global.__obj2") : { while: Math.random(), b: 10 };
|
||||
|
||||
if (global.__makePartial) {
|
||||
__makePartial(obj1);
|
||||
@ -14,13 +14,13 @@ if (global.__makeSimple) {
|
||||
|
||||
function additional1() {
|
||||
obj1.c = 10;
|
||||
delete obj1['extends'];
|
||||
delete obj1["extends"];
|
||||
return obj1;
|
||||
}
|
||||
|
||||
function additional2() {
|
||||
obj2.c = 5;
|
||||
delete obj2['while'];
|
||||
delete obj2["while"];
|
||||
return obj2;
|
||||
}
|
||||
|
||||
@ -40,4 +40,4 @@ inspect = function() {
|
||||
result += ret1.b;
|
||||
result += ret2.b;
|
||||
return result;
|
||||
}
|
||||
};
|
||||
|
@ -5,4 +5,6 @@ Constructor.prototype = obj;
|
||||
|
||||
let obj2 = new Constructor();
|
||||
|
||||
inspect = function() { return Object.getPrototypeOf(obj2) === obj; }
|
||||
inspect = function() {
|
||||
return Object.getPrototypeOf(obj2) === obj;
|
||||
};
|
||||
|
@ -2,4 +2,5 @@
|
||||
|
||||
var l = __abstract("number");
|
||||
var a = new Array(l);
|
||||
if (a.length) {}
|
||||
if (a.length) {
|
||||
}
|
||||
|
@ -1,8 +1,10 @@
|
||||
// add at runtime:function __nextComponentID() { return 42; }
|
||||
(function() {
|
||||
let f = global.__abstract ? __abstract(":number", "__nextComponentID") : __nextComponentID;
|
||||
let n = f();
|
||||
let a = [].concat([n]);;
|
||||
|
||||
inspect = function() { return a[0]; }
|
||||
})();
|
||||
let f = global.__abstract ? __abstract(":number", "__nextComponentID") : __nextComponentID;
|
||||
let n = f();
|
||||
let a = [].concat([n]);
|
||||
|
||||
inspect = function() {
|
||||
return a[0];
|
||||
};
|
||||
})();
|
||||
|
@ -8,5 +8,7 @@
|
||||
o.push(3);
|
||||
} else {
|
||||
}
|
||||
inspect = function() { return o; }
|
||||
inspect = function() {
|
||||
return o;
|
||||
};
|
||||
})();
|
||||
|
@ -1,4 +1,6 @@
|
||||
var x = global.__abstract ? __abstract("boolean", "true") : true;
|
||||
var a = [];
|
||||
if (x) a.push(42);
|
||||
inspect = function() { return a.length; }
|
||||
inspect = function() {
|
||||
return a.length;
|
||||
};
|
||||
|
@ -2,6 +2,8 @@ var x = global.__abstract ? __abstract("boolean", "true") : true;
|
||||
var a = [];
|
||||
var b = x ? a : [];
|
||||
if (b === a) {
|
||||
a.push(42);
|
||||
a.push(42);
|
||||
}
|
||||
inspect = function() { return a.length; }
|
||||
inspect = function() {
|
||||
return a.length;
|
||||
};
|
||||
|
@ -1,9 +1,11 @@
|
||||
// does contain:[1,, 3,, 5, 6]
|
||||
(function() {
|
||||
let x = global.__abstract ? __abstract("boolean", "true") : true;
|
||||
let a = [1,,3,,5,6,,,,]; // Hole in the middle and end.
|
||||
let a = [1, , 3, , 5, 6, , , ,]; // Hole in the middle and end.
|
||||
if (x) {
|
||||
a.length = 100;
|
||||
}
|
||||
inspect = function() { return a.length; }
|
||||
inspect = function() {
|
||||
return a.length;
|
||||
};
|
||||
})();
|
||||
|
@ -4,4 +4,6 @@ let a = [1];
|
||||
if (c) a.push(2);
|
||||
let x = a.map(x => x + 42);
|
||||
|
||||
global.inspect = function() { JSON.stringify(x); }
|
||||
global.inspect = function() {
|
||||
JSON.stringify(x);
|
||||
};
|
||||
|
@ -3,6 +3,11 @@ let c = global.__abstract ? __abstract("boolean", "true") : true;
|
||||
let a = [1];
|
||||
let sum = 0;
|
||||
if (c) a.push(2);
|
||||
let x = a.map(x => { sum += x; return x + 42; } );
|
||||
let x = a.map(x => {
|
||||
sum += x;
|
||||
return x + 42;
|
||||
});
|
||||
|
||||
global.inspect = function() { sum + JSON.stringify(x); }
|
||||
global.inspect = function() {
|
||||
sum + JSON.stringify(x);
|
||||
};
|
||||
|
@ -4,9 +4,14 @@ let a = [1];
|
||||
if (c) a.push(2);
|
||||
let x;
|
||||
try {
|
||||
x = a.map(x => { if (x === 2) throw x; else return x + 42; } );
|
||||
x = a.map(x => {
|
||||
if (x === 2) throw x;
|
||||
else return x + 42;
|
||||
});
|
||||
} catch (e) {
|
||||
x = e;
|
||||
}
|
||||
|
||||
global.inspect = function() { JSON.stringify(x); }
|
||||
global.inspect = function() {
|
||||
JSON.stringify(x);
|
||||
};
|
||||
|
@ -2,7 +2,11 @@
|
||||
|
||||
var b = global.__abstract ? __abstract("boolean", "true") : true;
|
||||
var x = global.__abstract ? __abstract("number", "123") : 123;
|
||||
var badOb = { valueOf: function() { throw 13;} }
|
||||
var badOb = {
|
||||
valueOf: function() {
|
||||
throw 13;
|
||||
},
|
||||
};
|
||||
var ob = global.__abstract ? __abstract("object", "({ valueOf: function() { throw 13;} })") : badOb;
|
||||
var y = b ? ob : x;
|
||||
|
||||
@ -12,4 +16,6 @@ try {
|
||||
z = 200 + err;
|
||||
}
|
||||
|
||||
inspect = function() { return "" + z; }
|
||||
inspect = function() {
|
||||
return "" + z;
|
||||
};
|
||||
|
@ -1,2 +1,4 @@
|
||||
if (Date.now() > 0) x = Date.now();
|
||||
inspect = function() { return ""; }
|
||||
inspect = function() {
|
||||
return "";
|
||||
};
|
||||
|
@ -12,4 +12,6 @@ if (y) {
|
||||
console.log("false");
|
||||
}
|
||||
|
||||
inspect = function() { return ""; }
|
||||
inspect = function() {
|
||||
return "";
|
||||
};
|
||||
|
@ -4,9 +4,12 @@ let arr = [];
|
||||
|
||||
xyz: while (true) {
|
||||
arr[0] = 123;
|
||||
if (x) break xyz; else break xyz;
|
||||
if (x) break xyz;
|
||||
else break xyz;
|
||||
}
|
||||
|
||||
var z = arr;
|
||||
|
||||
inspect = function() { return "" + z; }
|
||||
inspect = function() {
|
||||
return "" + z;
|
||||
};
|
||||
|
@ -6,7 +6,8 @@ function foo() {
|
||||
let x = __abstract("boolean", "true");
|
||||
xyz: while (true) {
|
||||
arr[0] = 123;
|
||||
if (x) break; else break xyz;
|
||||
if (x) break;
|
||||
else break xyz;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -12,5 +12,5 @@ var y = eval(`
|
||||
} while (true);`);
|
||||
|
||||
inspect = function() {
|
||||
return y;
|
||||
}
|
||||
return y;
|
||||
};
|
||||
|
@ -1,5 +1,9 @@
|
||||
function f() { return 123; }
|
||||
function f() {
|
||||
return 123;
|
||||
}
|
||||
var g = global.__abstract ? global.__abstract("function", "f") : f;
|
||||
var z = g();
|
||||
|
||||
inspect = function() { return "" + z }
|
||||
inspect = function() {
|
||||
return "" + z;
|
||||
};
|
||||
|
@ -1,15 +1,23 @@
|
||||
var o = global.__abstract ? global.__abstract('number', '1') : 1;
|
||||
var o = global.__abstract ? global.__abstract("number", "1") : 1;
|
||||
var obj = {};
|
||||
function bar(x) {
|
||||
if (o > 1) {
|
||||
obj.foo = function() { return 1 + x; }
|
||||
obj.foo = function() {
|
||||
return 1 + x;
|
||||
};
|
||||
} else if (o > 2) {
|
||||
obj.foo = function() { return 2 + x; }
|
||||
obj.foo = function() {
|
||||
return 2 + x;
|
||||
};
|
||||
} else {
|
||||
obj.foo = function() { return 3 + x; }
|
||||
obj.foo = function() {
|
||||
return 3 + x;
|
||||
};
|
||||
}
|
||||
}
|
||||
bar(5);
|
||||
var z = obj.foo();
|
||||
|
||||
inspect = function() { return "" + z }
|
||||
inspect = function() {
|
||||
return "" + z;
|
||||
};
|
||||
|
@ -1,5 +1,9 @@
|
||||
function f(v) { return v*2; }
|
||||
function f(v) {
|
||||
return v * 2;
|
||||
}
|
||||
var g = global.__abstract ? global.__abstract("function", "f") : f;
|
||||
let v = Object.freeze([1]).map(g)
|
||||
let v = Object.freeze([1]).map(g);
|
||||
|
||||
inspect = function() { return v }
|
||||
inspect = function() {
|
||||
return v;
|
||||
};
|
||||
|
@ -4,7 +4,7 @@ let x = __abstract("boolean", "true");
|
||||
try {
|
||||
var obj = __abstract("object");
|
||||
if (x) delete obj.someProperty;
|
||||
} catch(err) {
|
||||
} catch (err) {
|
||||
throw new Error("Cannot catch");
|
||||
} finally {
|
||||
throw new Error("Cannot finally");
|
||||
|
@ -3,8 +3,9 @@ let x = __abstract("boolean", "true");
|
||||
|
||||
try {
|
||||
var obj = __abstract("object");
|
||||
if (x) {} else delete obj.someProperty;
|
||||
} catch(err) {
|
||||
if (x) {
|
||||
} else delete obj.someProperty;
|
||||
} catch (err) {
|
||||
throw new Error("Cannot catch");
|
||||
} finally {
|
||||
throw new Error("Cannot finally");
|
||||
|
@ -1,5 +1,7 @@
|
||||
(function() {
|
||||
var x = global.__abstract ? __abstract("object", "({})") : {};
|
||||
var c = x === global;
|
||||
inspect = function() { return c; }
|
||||
})();
|
||||
var x = global.__abstract ? __abstract("object", "({})") : {};
|
||||
var c = x === global;
|
||||
inspect = function() {
|
||||
return c;
|
||||
};
|
||||
})();
|
||||
|
@ -7,11 +7,13 @@ function bar(y) {
|
||||
|
||||
function fn(x, y) {
|
||||
if (x) {
|
||||
bar(y)
|
||||
bar(y);
|
||||
}
|
||||
return 123;
|
||||
}
|
||||
|
||||
if (global.__optimize) __optimize(fn);
|
||||
|
||||
inspect = function() { return fn(true, false); }
|
||||
inspect = function() {
|
||||
return fn(true, false);
|
||||
};
|
||||
|
@ -14,4 +14,4 @@ if (global.__makePartial) __makePartial(global);
|
||||
|
||||
inspect = function() {
|
||||
return global.fooFunc() === undefined && global.barUndefined === undefined && global.barzAbstract === undefined;
|
||||
}
|
||||
};
|
||||
|
@ -2,37 +2,64 @@
|
||||
|
||||
if (global.__assumeDataProperty) {
|
||||
__assumeDataProperty(global, "inspect", undefined);
|
||||
__assumeDataProperty(this, "nativeTraceBeginAsyncSection", function(tag, name, cookie) {
|
||||
if (global.__residual)
|
||||
return global.__residual("void", function(tag, name, cookie, global) {
|
||||
return global.nativeTraceBeginAsyncSection(tag, name, cookie);
|
||||
}, tag, name, cookie, global);
|
||||
else
|
||||
return this.nativeTraceBeginAsyncSection(tag, name, cookie);
|
||||
}, "VALUE_DEFINED_INVARIANT");
|
||||
__assumeDataProperty(this, "nativeModuleProxy", __abstract({
|
||||
nativePerformanceNow: __abstract("function"),
|
||||
UIManager: __abstract({
|
||||
customBubblingEventTypes: __abstract("string"),
|
||||
customDirectEventTypes: __abstract(),
|
||||
AndroidLazyViewManagersEnabled: __abstract("boolean"),
|
||||
ViewManagerNames: undefined,
|
||||
}),
|
||||
DeviceInfo: __abstract({
|
||||
Dimensions: __abstract({
|
||||
window: undefined,
|
||||
screen: undefined,
|
||||
windowPhysicalPixels: __abstract({
|
||||
width: __abstract("number"),
|
||||
__assumeDataProperty(
|
||||
this,
|
||||
"nativeTraceBeginAsyncSection",
|
||||
function(tag, name, cookie) {
|
||||
if (global.__residual)
|
||||
return global.__residual(
|
||||
"void",
|
||||
function(tag, name, cookie, global) {
|
||||
return global.nativeTraceBeginAsyncSection(tag, name, cookie);
|
||||
},
|
||||
tag,
|
||||
name,
|
||||
cookie,
|
||||
global
|
||||
);
|
||||
else return this.nativeTraceBeginAsyncSection(tag, name, cookie);
|
||||
},
|
||||
"VALUE_DEFINED_INVARIANT"
|
||||
);
|
||||
__assumeDataProperty(
|
||||
this,
|
||||
"nativeModuleProxy",
|
||||
__abstract(
|
||||
{
|
||||
nativePerformanceNow: __abstract("function"),
|
||||
UIManager: __abstract({
|
||||
customBubblingEventTypes: __abstract("string"),
|
||||
customDirectEventTypes: __abstract(),
|
||||
AndroidLazyViewManagersEnabled: __abstract("boolean"),
|
||||
ViewManagerNames: undefined,
|
||||
}),
|
||||
}),
|
||||
}),
|
||||
}, "global.nativeModuleProxy"));
|
||||
DeviceInfo: __abstract({
|
||||
Dimensions: __abstract({
|
||||
window: undefined,
|
||||
screen: undefined,
|
||||
windowPhysicalPixels: __abstract({
|
||||
width: __abstract("number"),
|
||||
}),
|
||||
}),
|
||||
}),
|
||||
},
|
||||
"global.nativeModuleProxy"
|
||||
)
|
||||
);
|
||||
} else {
|
||||
global.nativeTraceBeginAsyncSection = function (tag, name, cookie) {
|
||||
if (global.__residual) return global.__residual("void", function (tag, name, cookie, global) {
|
||||
return global.nativeTraceBeginAsyncSection(tag, name, cookie);
|
||||
}, tag, name, cookie, global);else return this.nativeTraceBeginAsyncSection(tag, name, cookie);
|
||||
global.nativeTraceBeginAsyncSection = function(tag, name, cookie) {
|
||||
if (global.__residual)
|
||||
return global.__residual(
|
||||
"void",
|
||||
function(tag, name, cookie, global) {
|
||||
return global.nativeTraceBeginAsyncSection(tag, name, cookie);
|
||||
},
|
||||
tag,
|
||||
name,
|
||||
cookie,
|
||||
global
|
||||
);
|
||||
else return this.nativeTraceBeginAsyncSection(tag, name, cookie);
|
||||
};
|
||||
global.nativeModuleProxy = {
|
||||
nativePerformanceNow: function() {},
|
||||
@ -49,16 +76,18 @@ if (global.__assumeDataProperty) {
|
||||
windowPhysicalPixels: {
|
||||
width: 42,
|
||||
},
|
||||
}
|
||||
},
|
||||
},
|
||||
};
|
||||
}
|
||||
if (global.__makePartial) __makePartial(global);
|
||||
|
||||
inspect = function() {
|
||||
return global.nativeTraceBeginAsyncSection !== undefined &&
|
||||
return (
|
||||
global.nativeTraceBeginAsyncSection !== undefined &&
|
||||
global.nativeModuleProxy.nativePerformanceNow() === undefined &&
|
||||
global.nativeModuleProxy.UIManager.customBubblingEventTypes !== undefined &&
|
||||
global.nativeModuleProxy.UIManager.AndroidLazyViewManagersEnabled !== undefined &&
|
||||
global.nativeModuleProxy.DeviceInfo.Dimensions.windowPhysicalPixels.width !== undefined;
|
||||
}
|
||||
global.nativeModuleProxy.DeviceInfo.Dimensions.windowPhysicalPixels.width !== undefined
|
||||
);
|
||||
};
|
||||
|
@ -1,5 +1,7 @@
|
||||
let x = global.__abstract ? __abstract("boolean", "true") : true;
|
||||
let y = x ? 1 : 2;
|
||||
var z = y;
|
||||
var z1 = x ? { a : 123 } : { y : 456 };
|
||||
inspect = function() { return z + JSON.stringify(z1); }
|
||||
var z1 = x ? { a: 123 } : { y: 456 };
|
||||
inspect = function() {
|
||||
return z + JSON.stringify(z1);
|
||||
};
|
||||
|
@ -1,7 +1,8 @@
|
||||
(function () {
|
||||
let c = global.__abstract ? __abstract("boolean", "(true)") : true;
|
||||
let o = c ? {} : {};
|
||||
global.foo = o.bar;
|
||||
inspect = function() { return global.foo; };
|
||||
(function() {
|
||||
let c = global.__abstract ? __abstract("boolean", "(true)") : true;
|
||||
let o = c ? {} : {};
|
||||
global.foo = o.bar;
|
||||
inspect = function() {
|
||||
return global.foo;
|
||||
};
|
||||
})();
|
||||
|
||||
|
@ -1,10 +1,11 @@
|
||||
(function () {
|
||||
let c = global.__abstract ? __abstract("boolean", "(true)") : true;
|
||||
let o1 = {};
|
||||
o1.__proto__ = { bar: 42 };
|
||||
let o2 = {};
|
||||
let o = c ? o1 : o2;
|
||||
global.foo = o.bar;
|
||||
inspect = function() { return global.foo; };
|
||||
(function() {
|
||||
let c = global.__abstract ? __abstract("boolean", "(true)") : true;
|
||||
let o1 = {};
|
||||
o1.__proto__ = { bar: 42 };
|
||||
let o2 = {};
|
||||
let o = c ? o1 : o2;
|
||||
global.foo = o.bar;
|
||||
inspect = function() {
|
||||
return global.foo;
|
||||
};
|
||||
})();
|
||||
|
||||
|
@ -7,16 +7,12 @@
|
||||
} else {
|
||||
obj1.foo = true;
|
||||
}
|
||||
return {obj1, obj2};
|
||||
return { obj1, obj2 };
|
||||
}
|
||||
|
||||
if (global.__optimize) __optimize(fn);
|
||||
|
||||
global.inspect = function() {
|
||||
return JSON.stringify([
|
||||
fn(null),
|
||||
fn(undefined),
|
||||
fn(10),
|
||||
]);
|
||||
}
|
||||
})();
|
||||
return JSON.stringify([fn(null), fn(undefined), fn(10)]);
|
||||
};
|
||||
})();
|
||||
|
@ -4,9 +4,12 @@ let arr = [];
|
||||
|
||||
for (let i of [1, 2, 3]) {
|
||||
arr[i] = i * 10;
|
||||
if (x) continue; else continue;
|
||||
if (x) continue;
|
||||
else continue;
|
||||
}
|
||||
|
||||
z = arr;
|
||||
|
||||
inspect = function() { return "" + global.z; }
|
||||
inspect = function() {
|
||||
return "" + global.z;
|
||||
};
|
||||
|
@ -6,5 +6,6 @@ let arr = [];
|
||||
|
||||
for (let i of [1, 2, 3]) {
|
||||
arr[i] = i * 10;
|
||||
if (x) continue; else break;
|
||||
if (x) continue;
|
||||
else break;
|
||||
}
|
||||
|
@ -3,4 +3,6 @@ var obj = global.__abstract ? __abstract("object", "({ p: 41} )") : { p: 41 };
|
||||
delete obj.p;
|
||||
z = obj.p;
|
||||
|
||||
inspect = function() { return global.z; }
|
||||
inspect = function() {
|
||||
return global.z;
|
||||
};
|
||||
|
@ -1,7 +1,7 @@
|
||||
let x = global.__abstract ? __abstract("boolean", "true") : true;
|
||||
|
||||
let ob1 = { x : 123 };
|
||||
let ob2 = { x : 456 };
|
||||
let ob1 = { x: 123 };
|
||||
let ob2 = { x: 456 };
|
||||
let o = x ? ob1 : ob2;
|
||||
|
||||
delete o.x;
|
||||
@ -10,4 +10,6 @@ z = o.x;
|
||||
z1 = ob1.x;
|
||||
z2 = ob2.x;
|
||||
|
||||
inspect = function() { return "" + global.z + global.z1 + global.z2; }
|
||||
inspect = function() {
|
||||
return "" + global.z + global.z1 + global.z2;
|
||||
};
|
||||
|
@ -1,7 +1,7 @@
|
||||
let x = global.__abstract ? __abstract("boolean", "true") : true;
|
||||
|
||||
let ob1 = { x : 123 };
|
||||
let ob2 = { y : 456 };
|
||||
let ob1 = { x: 123 };
|
||||
let ob2 = { y: 456 };
|
||||
let o = x ? ob1 : ob2;
|
||||
|
||||
delete o.x;
|
||||
@ -10,4 +10,6 @@ z = o.x;
|
||||
z1 = ob1.x;
|
||||
z2 = ob2.x;
|
||||
|
||||
inspect = function() { return "" + global.z + global.z1 + global.z2; }
|
||||
inspect = function() {
|
||||
return "" + global.z + global.z1 + global.z2;
|
||||
};
|
||||
|
@ -1,8 +1,12 @@
|
||||
// throws introspection error
|
||||
let x = __abstract("boolean", "true");
|
||||
|
||||
let ob1 = { x : 123 };
|
||||
let ob2 = { get x(){ return 456; } };
|
||||
let ob1 = { x: 123 };
|
||||
let ob2 = {
|
||||
get x() {
|
||||
return 456;
|
||||
},
|
||||
};
|
||||
let o = x ? ob1 : ob2;
|
||||
|
||||
delete o.x;
|
||||
|
@ -1,8 +1,8 @@
|
||||
// throws introspection error
|
||||
let x = __abstract("boolean", "true");
|
||||
|
||||
let ob1 = { x : 123 };
|
||||
let ob2 = { };
|
||||
let ob1 = { x: 123 };
|
||||
let ob2 = {};
|
||||
Object.defineProperty(ob2, "x", { writable: false, value: 456 });
|
||||
let o = x ? ob1 : ob2;
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
let x = global.__abstract ? __abstract("boolean", "true") : true;
|
||||
|
||||
let ob1 = { x : 123 };
|
||||
let ob2 = { y : 456 };
|
||||
let ob3 = { };
|
||||
let ob1 = { x: 123 };
|
||||
let ob2 = { y: 456 };
|
||||
let ob3 = {};
|
||||
let o = x ? ob1 : ob2;
|
||||
|
||||
delete o.x;
|
||||
@ -10,4 +10,6 @@ ob1.x = ob3.x;
|
||||
|
||||
z = ob1.x;
|
||||
|
||||
inspect = function() { return "" + global.z; }
|
||||
inspect = function() {
|
||||
return "" + global.z;
|
||||
};
|
||||
|
@ -3,9 +3,9 @@ let x = global.__abstract ? __abstract("boolean", "true") : true;
|
||||
|
||||
let proto = {};
|
||||
Object.defineProperty(proto, "x", { writable: false, value: 111 });
|
||||
let ob1 = { x : 123 };
|
||||
let ob1 = { x: 123 };
|
||||
Object.setPrototypeOf(ob1, proto);
|
||||
let ob2 = { y : 456 };
|
||||
let ob2 = { y: 456 };
|
||||
let o = x ? ob1 : ob2;
|
||||
|
||||
delete o.x;
|
||||
|
@ -2,10 +2,10 @@
|
||||
let x = global.__abstract ? __abstract("boolean", "true") : true;
|
||||
|
||||
let proto = { x: 111 };
|
||||
let ob1 = { };
|
||||
let ob1 = {};
|
||||
Object.defineProperty(ob1, "x", { writable: false, configurable: true, value: 123 });
|
||||
Object.setPrototypeOf(ob1, proto);
|
||||
let ob2 = { y : 456 };
|
||||
let ob2 = { y: 456 };
|
||||
let o = x ? ob1 : ob2;
|
||||
|
||||
delete o.x;
|
||||
|
@ -1,5 +1,6 @@
|
||||
var x = global.__abstract ? __abstract("boolean", "true") : true;
|
||||
var o = [42];
|
||||
if (x) delete o[0];
|
||||
inspect = function() { return o[0]; }
|
||||
|
||||
inspect = function() {
|
||||
return o[0];
|
||||
};
|
||||
|
@ -2,4 +2,6 @@ var x = global.__abstract ? __abstract("boolean", "true") : true;
|
||||
var a = [42];
|
||||
var o = global.__makePartial ? __makePartial(a) : a;
|
||||
if (x) delete o[0];
|
||||
inspect = function() { return o[0]; }
|
||||
inspect = function() {
|
||||
return o[0];
|
||||
};
|
||||
|
@ -1,6 +1,7 @@
|
||||
var x = global.__abstract ? __abstract("boolean", "true") : true;
|
||||
var o = function f() {}
|
||||
var o = function f() {};
|
||||
o.x = 42;
|
||||
if (x) delete o.x;
|
||||
inspect = function() { return o.x; }
|
||||
|
||||
inspect = function() {
|
||||
return o.x;
|
||||
};
|
||||
|
@ -1,5 +1,6 @@
|
||||
var x = global.__abstract ? __abstract("boolean", "true") : true;
|
||||
var o = {x: 42};
|
||||
var o = { x: 42 };
|
||||
if (x) delete o.x;
|
||||
inspect = function() { return o.x; }
|
||||
|
||||
inspect = function() {
|
||||
return o.x;
|
||||
};
|
||||
|
@ -1,9 +1,11 @@
|
||||
// does not contain:infeasible
|
||||
(function () {
|
||||
let c = global.__abstract ? __abstract("boolean", "(true)") : true;
|
||||
let left = c ? 0 : 10;
|
||||
let right = c ? 5 : 15;
|
||||
let infeasible = left > right;
|
||||
if (infeasible) throw new Error("infeasible!");
|
||||
inspect = function() { return infeasible; }
|
||||
(function() {
|
||||
let c = global.__abstract ? __abstract("boolean", "(true)") : true;
|
||||
let left = c ? 0 : 10;
|
||||
let right = c ? 5 : 15;
|
||||
let infeasible = left > right;
|
||||
if (infeasible) throw new Error("infeasible!");
|
||||
inspect = function() {
|
||||
return infeasible;
|
||||
};
|
||||
})();
|
||||
|
@ -6,4 +6,6 @@ do {
|
||||
j = 0;
|
||||
} while (i < n);
|
||||
|
||||
inspect = function() { return i + " " + j; }
|
||||
inspect = function() {
|
||||
return i + " " + j;
|
||||
};
|
||||
|
@ -10,4 +10,6 @@ do {
|
||||
}
|
||||
} while (i < n);
|
||||
|
||||
inspect = function() { return i + " " + j + " " + k; }
|
||||
inspect = function() {
|
||||
return i + " " + j + " " + k;
|
||||
};
|
||||
|
@ -1,9 +1,11 @@
|
||||
let n = global.__abstract ? __abstract("number", "(3)") : 3;
|
||||
let i = 0;
|
||||
let o = {x:0};
|
||||
let o = { x: 0 };
|
||||
do {
|
||||
o.x = i;
|
||||
i++;
|
||||
} while (i < n);
|
||||
|
||||
inspect = function() { return JSON.stringify(o); }
|
||||
inspect = function() {
|
||||
return JSON.stringify(o);
|
||||
};
|
||||
|
@ -6,4 +6,6 @@ do {
|
||||
i++;
|
||||
} while (i < n);
|
||||
|
||||
inspect = function() { return JSON.stringify(o); }
|
||||
inspect = function() {
|
||||
return JSON.stringify(o);
|
||||
};
|
||||
|
@ -1,7 +1,9 @@
|
||||
var n = global.__abstract ? __abstract('number', '(2)') : 2;
|
||||
var n = global.__abstract ? __abstract("number", "(2)") : 2;
|
||||
let i = 0;
|
||||
do {
|
||||
console.log(i++);
|
||||
} while (i++ < n);
|
||||
|
||||
inspect = function() { return i; }
|
||||
inspect = function() {
|
||||
return i;
|
||||
};
|
||||
|
@ -1,8 +1,16 @@
|
||||
let template = global.__abstract ? __abstract({x: __abstract("number")}, "({ set x(v) { console.log(v); } })") : { set x(v) { console.log(v); } };
|
||||
let n = global.__abstract ? __abstract('number', '(2)') : 2;
|
||||
let template = global.__abstract
|
||||
? __abstract({ x: __abstract("number") }, "({ set x(v) { console.log(v); } })")
|
||||
: {
|
||||
set x(v) {
|
||||
console.log(v);
|
||||
},
|
||||
};
|
||||
let n = global.__abstract ? __abstract("number", "(2)") : 2;
|
||||
let i = 0;
|
||||
do {
|
||||
template.x = 3;
|
||||
} while (++i < n);
|
||||
|
||||
inspect = function() { return template.x; }
|
||||
inspect = function() {
|
||||
return template.x;
|
||||
};
|
||||
|
@ -7,4 +7,6 @@ do {
|
||||
if (i > 5) throw "oopsie";
|
||||
} while (i < n);
|
||||
|
||||
inspect = function() { return i; }
|
||||
inspect = function() {
|
||||
return i;
|
||||
};
|
||||
|
@ -7,4 +7,6 @@ do {
|
||||
throw "oopsie";
|
||||
} while (i < n);
|
||||
|
||||
inspect = function() { return i; }
|
||||
inspect = function() {
|
||||
return i;
|
||||
};
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user