| Index: src/js/messages.js
|
| diff --git a/src/js/messages.js b/src/js/messages.js
|
| index e833522d4f32632aeb5e869847d6491751e2cfbd..659de9b1a73613fc14c284372f4130d3928d8c22 100644
|
| --- a/src/js/messages.js
|
| +++ b/src/js/messages.js
|
| @@ -15,6 +15,7 @@ var ArrayJoin;
|
| var Bool16x8ToString;
|
| var Bool32x4ToString;
|
| var Bool8x16ToString;
|
| +var CallSite = utils.ImportNow("CallSite");
|
| var callSiteConstructorSymbol =
|
| utils.ImportNow("call_site_constructor_symbol");
|
| var callSiteReceiverSymbol =
|
| @@ -271,121 +272,6 @@ function GetStackTraceLine(recv, fun, pos, isGlobal) {
|
| // ----------------------------------------------------------------------------
|
| // Error implementation
|
|
|
| -function CallSite(receiver, fun, pos, strict_mode) {
|
| - // For wasm frames, receiver is the wasm object and fun is the function index
|
| - // instead of an actual function.
|
| - if (!IS_FUNCTION(fun) && !%IsWasmObject(receiver)) {
|
| - throw MakeTypeError(kCallSiteExpectsFunction, typeof receiver, typeof fun);
|
| - }
|
| -
|
| - if (IS_UNDEFINED(new.target)) {
|
| - return new CallSite(receiver, fun, pos, strict_mode);
|
| - }
|
| -
|
| - if (IS_FUNCTION(fun)) {
|
| - SET_PRIVATE(this, callSiteReceiverSymbol, receiver);
|
| - SET_PRIVATE(this, callSiteFunctionSymbol, fun);
|
| - } else {
|
| - SET_PRIVATE(this, callSiteWasmObjectSymbol, receiver);
|
| - SET_PRIVATE(this, callSiteWasmFunctionIndexSymbol, TO_UINT32(fun));
|
| - }
|
| - SET_PRIVATE(this, callSitePositionSymbol, TO_INT32(pos));
|
| - SET_PRIVATE(this, callSiteStrictSymbol, TO_BOOLEAN(strict_mode));
|
| -}
|
| -
|
| -function CheckCallSite(obj, name) {
|
| - if (!IS_RECEIVER(obj) || !HAS_PRIVATE(obj, callSitePositionSymbol)) {
|
| - throw MakeTypeError(kCallSiteMethod, name);
|
| - }
|
| -}
|
| -
|
| -function CallSiteGetThis() {
|
| - CheckCallSite(this, "getThis");
|
| - if (GET_PRIVATE(this, callSiteStrictSymbol)) {
|
| - return UNDEFINED;
|
| - }
|
| - var recv = GET_PRIVATE(this, callSiteReceiverSymbol);
|
| - return (recv == callSiteConstructorSymbol) ? UNDEFINED : recv;
|
| -}
|
| -
|
| -function CallSiteGetFunction() {
|
| - CheckCallSite(this, "getFunction");
|
| - return GET_PRIVATE(this, callSiteStrictSymbol)
|
| - ? UNDEFINED : GET_PRIVATE(this, callSiteFunctionSymbol);
|
| -}
|
| -
|
| -function CallSiteGetPosition() {
|
| - CheckCallSite(this, "getPosition");
|
| - return GET_PRIVATE(this, callSitePositionSymbol);
|
| -}
|
| -
|
| -function CallSiteGetTypeName() {
|
| - CheckCallSite(this, "getTypeName");
|
| - return GetTypeName(GET_PRIVATE(this, callSiteReceiverSymbol), false);
|
| -}
|
| -
|
| -function CallSiteIsToplevel() {
|
| - CheckCallSite(this, "isTopLevel");
|
| - return %CallSiteIsToplevelRT(this);
|
| -}
|
| -
|
| -function CallSiteIsEval() {
|
| - CheckCallSite(this, "isEval");
|
| - return %CallSiteIsEvalRT(this);
|
| -}
|
| -
|
| -function CallSiteGetEvalOrigin() {
|
| - CheckCallSite(this, "getEvalOrigin");
|
| - var script = %FunctionGetScript(GET_PRIVATE(this, callSiteFunctionSymbol));
|
| - return FormatEvalOrigin(script);
|
| -}
|
| -
|
| -function CallSiteGetScriptNameOrSourceURL() {
|
| - CheckCallSite(this, "getScriptNameOrSourceURL");
|
| - return %CallSiteGetScriptNameOrSourceUrlRT(this);
|
| -}
|
| -
|
| -function CallSiteGetFunctionName() {
|
| - // See if the function knows its own name
|
| - CheckCallSite(this, "getFunctionName");
|
| - return %CallSiteGetFunctionNameRT(this);
|
| -}
|
| -
|
| -function CallSiteGetMethodName() {
|
| - // See if we can find a unique property on the receiver that holds
|
| - // this function.
|
| - CheckCallSite(this, "getMethodName");
|
| - return %CallSiteGetMethodNameRT(this);
|
| -}
|
| -
|
| -function CallSiteGetFileName() {
|
| - CheckCallSite(this, "getFileName");
|
| - return %CallSiteGetFileNameRT(this);
|
| -}
|
| -
|
| -function CallSiteGetLineNumber() {
|
| - if (HAS_PRIVATE(this, callSiteWasmObjectSymbol)) {
|
| - return GET_PRIVATE(this, callSiteWasmFunctionIndexSymbol);
|
| - }
|
| - CheckCallSite(this, "getLineNumber");
|
| - return %CallSiteGetLineNumberRT(this);
|
| -}
|
| -
|
| -function CallSiteGetColumnNumber() {
|
| - CheckCallSite(this, "getColumnNumber");
|
| - return %CallSiteGetColumnNumberRT(this);
|
| -}
|
| -
|
| -function CallSiteIsNative() {
|
| - CheckCallSite(this, "isNative");
|
| - return %CallSiteIsNativeRT(this);
|
| -}
|
| -
|
| -function CallSiteIsConstructor() {
|
| - CheckCallSite(this, "isConstructor");
|
| - return %CallSiteIsConstructorRT(this);
|
| -}
|
| -
|
| function CallSiteToString() {
|
| if (HAS_PRIVATE(this, callSiteWasmObjectSymbol)) {
|
| var funName = this.getFunctionName();
|
| @@ -459,63 +345,9 @@ function CallSiteToString() {
|
| return line;
|
| }
|
|
|
| -utils.SetUpLockedPrototype(CallSite, ["receiver", "fun", "pos"], [
|
| - "getThis", CallSiteGetThis,
|
| - "getTypeName", CallSiteGetTypeName,
|
| - "isToplevel", CallSiteIsToplevel,
|
| - "isEval", CallSiteIsEval,
|
| - "getEvalOrigin", CallSiteGetEvalOrigin,
|
| - "getScriptNameOrSourceURL", CallSiteGetScriptNameOrSourceURL,
|
| - "getFunction", CallSiteGetFunction,
|
| - "getFunctionName", CallSiteGetFunctionName,
|
| - "getMethodName", CallSiteGetMethodName,
|
| - "getFileName", CallSiteGetFileName,
|
| - "getLineNumber", CallSiteGetLineNumber,
|
| - "getColumnNumber", CallSiteGetColumnNumber,
|
| - "isNative", CallSiteIsNative,
|
| - "getPosition", CallSiteGetPosition,
|
| - "isConstructor", CallSiteIsConstructor,
|
| - "toString", CallSiteToString
|
| -]);
|
| -
|
| -
|
| -function FormatEvalOrigin(script) {
|
| - var sourceURL = script.nameOrSourceURL();
|
| - if (sourceURL) {
|
| - return sourceURL;
|
| - }
|
| -
|
| - var eval_origin = "eval at ";
|
| - if (script.eval_from_function_name) {
|
| - eval_origin += script.eval_from_function_name;
|
| - } else {
|
| - eval_origin += "<anonymous>";
|
| - }
|
| -
|
| - var eval_from_script = script.eval_from_script;
|
| - if (eval_from_script) {
|
| - if (eval_from_script.compilation_type == COMPILATION_TYPE_EVAL) {
|
| - // eval script originated from another eval.
|
| - eval_origin += " (" + FormatEvalOrigin(eval_from_script) + ")";
|
| - } else {
|
| - // eval script originated from "real" source.
|
| - if (eval_from_script.name) {
|
| - eval_origin += " (" + eval_from_script.name;
|
| - var location = eval_from_script.locationFromPosition(
|
| - script.eval_from_script_position, true);
|
| - if (location) {
|
| - eval_origin += ":" + (location.line + 1);
|
| - eval_origin += ":" + (location.column + 1);
|
| - }
|
| - eval_origin += ")";
|
| - } else {
|
| - eval_origin += " (unknown source)";
|
| - }
|
| - }
|
| - }
|
| -
|
| - return eval_origin;
|
| -}
|
| +%AddNamedProperty(CallSite.prototype, "toString", CallSiteToString,
|
| + DONT_ENUM | DONT_DELETE | READ_ONLY);
|
| +%SetNativeFlag(CallSiteToString);
|
|
|
|
|
| function FormatErrorString(error) {
|
|
|