| OLD | NEW |
| 1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "src/messages.h" | 5 #include "src/messages.h" |
| 6 | 6 |
| 7 #include <memory> | 7 #include <memory> |
| 8 | 8 |
| 9 #include "src/api.h" | 9 #include "src/api.h" |
| 10 #include "src/execution.h" | 10 #include "src/execution.h" |
| (...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 158 Handle<Object> arg = Handle<Object>(message->argument(), isolate); | 158 Handle<Object> arg = Handle<Object>(message->argument(), isolate); |
| 159 return MessageTemplate::FormatMessage(isolate, message->type(), arg); | 159 return MessageTemplate::FormatMessage(isolate, message->type(), arg); |
| 160 } | 160 } |
| 161 | 161 |
| 162 std::unique_ptr<char[]> MessageHandler::GetLocalizedMessage( | 162 std::unique_ptr<char[]> MessageHandler::GetLocalizedMessage( |
| 163 Isolate* isolate, Handle<Object> data) { | 163 Isolate* isolate, Handle<Object> data) { |
| 164 HandleScope scope(isolate); | 164 HandleScope scope(isolate); |
| 165 return GetMessage(isolate, data)->ToCString(DISALLOW_NULLS); | 165 return GetMessage(isolate, data)->ToCString(DISALLOW_NULLS); |
| 166 } | 166 } |
| 167 | 167 |
| 168 namespace { |
| 169 |
| 170 Object* EvalFromFunctionName(Isolate* isolate, Handle<Script> script) { |
| 171 if (script->eval_from_shared()->IsUndefined(isolate)) |
| 172 return isolate->heap()->undefined_value(); |
| 173 |
| 174 Handle<SharedFunctionInfo> shared( |
| 175 SharedFunctionInfo::cast(script->eval_from_shared())); |
| 176 // Find the name of the function calling eval. |
| 177 if (shared->name()->BooleanValue()) { |
| 178 return shared->name(); |
| 179 } |
| 180 |
| 181 return shared->inferred_name(); |
| 182 } |
| 183 |
| 184 Object* EvalFromScript(Isolate* isolate, Handle<Script> script) { |
| 185 if (script->eval_from_shared()->IsUndefined(isolate)) |
| 186 return isolate->heap()->undefined_value(); |
| 187 |
| 188 Handle<SharedFunctionInfo> eval_from_shared( |
| 189 SharedFunctionInfo::cast(script->eval_from_shared())); |
| 190 return eval_from_shared->script()->IsScript() |
| 191 ? eval_from_shared->script() |
| 192 : isolate->heap()->undefined_value(); |
| 193 } |
| 194 |
| 195 MaybeHandle<String> FormatEvalOrigin(Isolate* isolate, Handle<Script> script) { |
| 196 Handle<Object> sourceURL(script->GetNameOrSourceURL(), isolate); |
| 197 if (!sourceURL->IsUndefined(isolate)) { |
| 198 DCHECK(sourceURL->IsString()); |
| 199 return Handle<String>::cast(sourceURL); |
| 200 } |
| 201 |
| 202 IncrementalStringBuilder builder(isolate); |
| 203 builder.AppendCString("eval at "); |
| 204 |
| 205 Handle<Object> eval_from_function_name = |
| 206 handle(EvalFromFunctionName(isolate, script), isolate); |
| 207 if (eval_from_function_name->BooleanValue()) { |
| 208 Handle<String> str; |
| 209 ASSIGN_RETURN_ON_EXCEPTION( |
| 210 isolate, str, Object::ToString(isolate, eval_from_function_name), |
| 211 String); |
| 212 builder.AppendString(str); |
| 213 } else { |
| 214 builder.AppendCString("<anonymous>"); |
| 215 } |
| 216 |
| 217 Handle<Object> eval_from_script_obj = |
| 218 handle(EvalFromScript(isolate, script), isolate); |
| 219 if (eval_from_script_obj->IsScript()) { |
| 220 Handle<Script> eval_from_script = |
| 221 Handle<Script>::cast(eval_from_script_obj); |
| 222 builder.AppendCString(" ("); |
| 223 if (eval_from_script->compilation_type() == Script::COMPILATION_TYPE_EVAL) { |
| 224 // Eval script originated from another eval. |
| 225 Handle<String> str; |
| 226 ASSIGN_RETURN_ON_EXCEPTION( |
| 227 isolate, str, FormatEvalOrigin(isolate, eval_from_script), String); |
| 228 builder.AppendString(str); |
| 229 } else { |
| 230 DCHECK(eval_from_script->compilation_type() != |
| 231 Script::COMPILATION_TYPE_EVAL); |
| 232 // eval script originated from "real" source. |
| 233 Handle<Object> name_obj = handle(eval_from_script->name(), isolate); |
| 234 if (eval_from_script->name()->IsString()) { |
| 235 builder.AppendString(Handle<String>::cast(name_obj)); |
| 236 |
| 237 Script::PositionInfo info; |
| 238 if (Script::GetPositionInfo(eval_from_script, script->GetEvalPosition(), |
| 239 &info, Script::NO_OFFSET)) { |
| 240 builder.AppendCString(":"); |
| 241 |
| 242 Handle<String> str = isolate->factory()->NumberToString( |
| 243 handle(Smi::FromInt(info.line + 1), isolate)); |
| 244 builder.AppendString(str); |
| 245 |
| 246 builder.AppendCString(":"); |
| 247 |
| 248 str = isolate->factory()->NumberToString( |
| 249 handle(Smi::FromInt(info.column + 1), isolate)); |
| 250 builder.AppendString(str); |
| 251 } |
| 252 } else { |
| 253 DCHECK(!eval_from_script->name()->IsString()); |
| 254 builder.AppendCString("unknown source"); |
| 255 } |
| 256 } |
| 257 builder.AppendCString(")"); |
| 258 } |
| 259 |
| 260 Handle<String> result; |
| 261 ASSIGN_RETURN_ON_EXCEPTION(isolate, result, builder.Finish(), String); |
| 262 return result; |
| 263 } |
| 264 |
| 265 } // namespace |
| 266 |
| 267 Handle<Object> StackFrameBase::GetEvalOrigin() { |
| 268 if (!HasScript()) return isolate_->factory()->undefined_value(); |
| 269 return FormatEvalOrigin(isolate_, GetScript()).ToHandleChecked(); |
| 270 } |
| 271 |
| 272 bool StackFrameBase::IsEval() { |
| 273 return HasScript() && |
| 274 GetScript()->compilation_type() == Script::COMPILATION_TYPE_EVAL; |
| 275 } |
| 276 |
| 168 void JSStackFrame::FromFrameArray(Isolate* isolate, Handle<FrameArray> array, | 277 void JSStackFrame::FromFrameArray(Isolate* isolate, Handle<FrameArray> array, |
| 169 int frame_ix) { | 278 int frame_ix) { |
| 170 DCHECK(!array->IsWasmFrame(frame_ix)); | 279 DCHECK(!array->IsWasmFrame(frame_ix)); |
| 171 isolate_ = isolate; | 280 isolate_ = isolate; |
| 172 receiver_ = handle(array->Receiver(frame_ix), isolate); | 281 receiver_ = handle(array->Receiver(frame_ix), isolate); |
| 173 function_ = handle(array->Function(frame_ix), isolate); | 282 function_ = handle(array->Function(frame_ix), isolate); |
| 174 code_ = handle(array->Code(frame_ix), isolate); | 283 code_ = handle(array->Code(frame_ix), isolate); |
| 175 offset_ = array->Offset(frame_ix)->value(); | 284 offset_ = array->Offset(frame_ix)->value(); |
| 176 | 285 |
| 177 const int flags = array->Flags(frame_ix)->value(); | 286 const int flags = array->Flags(frame_ix)->value(); |
| 178 force_constructor_ = (flags & FrameArray::kForceConstructor) != 0; | 287 force_constructor_ = (flags & FrameArray::kForceConstructor) != 0; |
| 179 is_strict_ = (flags & FrameArray::kIsStrict) != 0; | 288 is_strict_ = (flags & FrameArray::kIsStrict) != 0; |
| 180 } | 289 } |
| 181 | 290 |
| 291 JSStackFrame::JSStackFrame() {} |
| 292 |
| 182 JSStackFrame::JSStackFrame(Isolate* isolate, Handle<Object> receiver, | 293 JSStackFrame::JSStackFrame(Isolate* isolate, Handle<Object> receiver, |
| 183 Handle<JSFunction> function, | 294 Handle<JSFunction> function, |
| 184 Handle<AbstractCode> code, int offset) | 295 Handle<AbstractCode> code, int offset) |
| 185 : isolate_(isolate), | 296 : StackFrameBase(isolate), |
| 186 receiver_(receiver), | 297 receiver_(receiver), |
| 187 function_(function), | 298 function_(function), |
| 188 code_(code), | 299 code_(code), |
| 189 offset_(offset), | 300 offset_(offset), |
| 190 force_constructor_(false), | 301 force_constructor_(false), |
| 191 is_strict_(false) {} | 302 is_strict_(false) {} |
| 192 | 303 |
| 193 JSStackFrame::JSStackFrame() {} | |
| 194 | |
| 195 Handle<Object> JSStackFrame::GetFunction() const { | 304 Handle<Object> JSStackFrame::GetFunction() const { |
| 196 return Handle<Object>::cast(function_); | 305 return Handle<Object>::cast(function_); |
| 197 } | 306 } |
| 198 | 307 |
| 199 Handle<Object> JSStackFrame::GetFileName() { | 308 Handle<Object> JSStackFrame::GetFileName() { |
| 200 if (!HasScript()) return isolate_->factory()->null_value(); | 309 if (!HasScript()) return isolate_->factory()->null_value(); |
| 201 return handle(GetScript()->name(), isolate_); | 310 return handle(GetScript()->name(), isolate_); |
| 202 } | 311 } |
| 203 | 312 |
| 204 Handle<Object> JSStackFrame::GetFunctionName() { | 313 Handle<Object> JSStackFrame::GetFunctionName() { |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 291 // Return null in case of duplicates to avoid confusion. | 400 // Return null in case of duplicates to avoid confusion. |
| 292 if (!result.is_null()) return isolate_->factory()->null_value(); | 401 if (!result.is_null()) return isolate_->factory()->null_value(); |
| 293 result = inner_scope.CloseAndEscape(name_key); | 402 result = inner_scope.CloseAndEscape(name_key); |
| 294 } | 403 } |
| 295 } | 404 } |
| 296 | 405 |
| 297 if (!result.is_null()) return outer_scope.CloseAndEscape(result); | 406 if (!result.is_null()) return outer_scope.CloseAndEscape(result); |
| 298 return isolate_->factory()->null_value(); | 407 return isolate_->factory()->null_value(); |
| 299 } | 408 } |
| 300 | 409 |
| 301 namespace { | |
| 302 | |
| 303 Object* EvalFromFunctionName(Isolate* isolate, Handle<Script> script) { | |
| 304 if (script->eval_from_shared()->IsUndefined(isolate)) | |
| 305 return isolate->heap()->undefined_value(); | |
| 306 | |
| 307 Handle<SharedFunctionInfo> shared( | |
| 308 SharedFunctionInfo::cast(script->eval_from_shared())); | |
| 309 // Find the name of the function calling eval. | |
| 310 if (shared->name()->BooleanValue()) { | |
| 311 return shared->name(); | |
| 312 } | |
| 313 | |
| 314 return shared->inferred_name(); | |
| 315 } | |
| 316 | |
| 317 Object* EvalFromScript(Isolate* isolate, Handle<Script> script) { | |
| 318 if (script->eval_from_shared()->IsUndefined(isolate)) | |
| 319 return isolate->heap()->undefined_value(); | |
| 320 | |
| 321 Handle<SharedFunctionInfo> eval_from_shared( | |
| 322 SharedFunctionInfo::cast(script->eval_from_shared())); | |
| 323 return eval_from_shared->script()->IsScript() | |
| 324 ? eval_from_shared->script() | |
| 325 : isolate->heap()->undefined_value(); | |
| 326 } | |
| 327 | |
| 328 MaybeHandle<String> FormatEvalOrigin(Isolate* isolate, Handle<Script> script) { | |
| 329 Handle<Object> sourceURL(script->GetNameOrSourceURL(), isolate); | |
| 330 if (!sourceURL->IsUndefined(isolate)) { | |
| 331 DCHECK(sourceURL->IsString()); | |
| 332 return Handle<String>::cast(sourceURL); | |
| 333 } | |
| 334 | |
| 335 IncrementalStringBuilder builder(isolate); | |
| 336 builder.AppendCString("eval at "); | |
| 337 | |
| 338 Handle<Object> eval_from_function_name = | |
| 339 handle(EvalFromFunctionName(isolate, script), isolate); | |
| 340 if (eval_from_function_name->BooleanValue()) { | |
| 341 Handle<String> str; | |
| 342 ASSIGN_RETURN_ON_EXCEPTION( | |
| 343 isolate, str, Object::ToString(isolate, eval_from_function_name), | |
| 344 String); | |
| 345 builder.AppendString(str); | |
| 346 } else { | |
| 347 builder.AppendCString("<anonymous>"); | |
| 348 } | |
| 349 | |
| 350 Handle<Object> eval_from_script_obj = | |
| 351 handle(EvalFromScript(isolate, script), isolate); | |
| 352 if (eval_from_script_obj->IsScript()) { | |
| 353 Handle<Script> eval_from_script = | |
| 354 Handle<Script>::cast(eval_from_script_obj); | |
| 355 builder.AppendCString(" ("); | |
| 356 if (eval_from_script->compilation_type() == Script::COMPILATION_TYPE_EVAL) { | |
| 357 // Eval script originated from another eval. | |
| 358 Handle<String> str; | |
| 359 ASSIGN_RETURN_ON_EXCEPTION( | |
| 360 isolate, str, FormatEvalOrigin(isolate, eval_from_script), String); | |
| 361 builder.AppendString(str); | |
| 362 } else { | |
| 363 DCHECK(eval_from_script->compilation_type() != | |
| 364 Script::COMPILATION_TYPE_EVAL); | |
| 365 // eval script originated from "real" source. | |
| 366 Handle<Object> name_obj = handle(eval_from_script->name(), isolate); | |
| 367 if (eval_from_script->name()->IsString()) { | |
| 368 builder.AppendString(Handle<String>::cast(name_obj)); | |
| 369 | |
| 370 Script::PositionInfo info; | |
| 371 if (Script::GetPositionInfo(eval_from_script, script->GetEvalPosition(), | |
| 372 &info, Script::NO_OFFSET)) { | |
| 373 builder.AppendCString(":"); | |
| 374 | |
| 375 Handle<String> str = isolate->factory()->NumberToString( | |
| 376 handle(Smi::FromInt(info.line + 1), isolate)); | |
| 377 builder.AppendString(str); | |
| 378 | |
| 379 builder.AppendCString(":"); | |
| 380 | |
| 381 str = isolate->factory()->NumberToString( | |
| 382 handle(Smi::FromInt(info.column + 1), isolate)); | |
| 383 builder.AppendString(str); | |
| 384 } | |
| 385 } else { | |
| 386 DCHECK(!eval_from_script->name()->IsString()); | |
| 387 builder.AppendCString("unknown source"); | |
| 388 } | |
| 389 } | |
| 390 builder.AppendCString(")"); | |
| 391 } | |
| 392 | |
| 393 Handle<String> result; | |
| 394 ASSIGN_RETURN_ON_EXCEPTION(isolate, result, builder.Finish(), String); | |
| 395 return result; | |
| 396 } | |
| 397 | |
| 398 } // namespace | |
| 399 | |
| 400 Handle<Object> JSStackFrame::GetTypeName() { | 410 Handle<Object> JSStackFrame::GetTypeName() { |
| 401 // TODO(jgruber): Check for strict/constructor here as in | 411 // TODO(jgruber): Check for strict/constructor here as in |
| 402 // CallSitePrototypeGetThis. | 412 // CallSitePrototypeGetThis. |
| 403 | 413 |
| 404 if (receiver_->IsNull(isolate_) || receiver_->IsUndefined(isolate_)) | 414 if (receiver_->IsNull(isolate_) || receiver_->IsUndefined(isolate_)) |
| 405 return isolate_->factory()->null_value(); | 415 return isolate_->factory()->null_value(); |
| 406 | 416 |
| 407 if (receiver_->IsJSProxy()) return isolate_->factory()->Proxy_string(); | 417 if (receiver_->IsJSProxy()) return isolate_->factory()->Proxy_string(); |
| 408 | 418 |
| 409 Handle<JSReceiver> receiver_object = | 419 Handle<JSReceiver> receiver_object = |
| 410 Object::ToObject(isolate_, receiver_).ToHandleChecked(); | 420 Object::ToObject(isolate_, receiver_).ToHandleChecked(); |
| 411 return JSReceiver::GetConstructorName(receiver_object); | 421 return JSReceiver::GetConstructorName(receiver_object); |
| 412 } | 422 } |
| 413 | 423 |
| 414 Handle<Object> JSStackFrame::GetEvalOrigin() { | |
| 415 if (!HasScript()) return isolate_->factory()->undefined_value(); | |
| 416 return FormatEvalOrigin(isolate_, GetScript()).ToHandleChecked(); | |
| 417 } | |
| 418 | |
| 419 int JSStackFrame::GetLineNumber() { | 424 int JSStackFrame::GetLineNumber() { |
| 420 DCHECK_LE(0, GetPosition()); | 425 DCHECK_LE(0, GetPosition()); |
| 421 if (HasScript()) return Script::GetLineNumber(GetScript(), GetPosition()) + 1; | 426 if (HasScript()) return Script::GetLineNumber(GetScript(), GetPosition()) + 1; |
| 422 return -1; | 427 return -1; |
| 423 } | 428 } |
| 424 | 429 |
| 425 int JSStackFrame::GetColumnNumber() { | 430 int JSStackFrame::GetColumnNumber() { |
| 426 DCHECK_LE(0, GetPosition()); | 431 DCHECK_LE(0, GetPosition()); |
| 427 if (HasScript()) { | 432 if (HasScript()) { |
| 428 return Script::GetColumnNumber(GetScript(), GetPosition()) + 1; | 433 return Script::GetColumnNumber(GetScript(), GetPosition()) + 1; |
| 429 } | 434 } |
| 430 return -1; | 435 return -1; |
| 431 } | 436 } |
| 432 | 437 |
| 433 bool JSStackFrame::IsNative() { | 438 bool JSStackFrame::IsNative() { |
| 434 return HasScript() && GetScript()->type() == Script::TYPE_NATIVE; | 439 return HasScript() && GetScript()->type() == Script::TYPE_NATIVE; |
| 435 } | 440 } |
| 436 | 441 |
| 437 bool JSStackFrame::IsToplevel() { | 442 bool JSStackFrame::IsToplevel() { |
| 438 return receiver_->IsJSGlobalProxy() || receiver_->IsNull(isolate_) || | 443 return receiver_->IsJSGlobalProxy() || receiver_->IsNull(isolate_) || |
| 439 receiver_->IsUndefined(isolate_); | 444 receiver_->IsUndefined(isolate_); |
| 440 } | 445 } |
| 441 | 446 |
| 442 bool JSStackFrame::IsEval() { | |
| 443 return HasScript() && | |
| 444 GetScript()->compilation_type() == Script::COMPILATION_TYPE_EVAL; | |
| 445 } | |
| 446 | |
| 447 bool JSStackFrame::IsConstructor() { | 447 bool JSStackFrame::IsConstructor() { |
| 448 if (force_constructor_) return true; | 448 if (force_constructor_) return true; |
| 449 if (!receiver_->IsJSObject()) return false; | 449 if (!receiver_->IsJSObject()) return false; |
| 450 Handle<Object> constructor = | 450 Handle<Object> constructor = |
| 451 JSReceiver::GetDataProperty(Handle<JSObject>::cast(receiver_), | 451 JSReceiver::GetDataProperty(Handle<JSObject>::cast(receiver_), |
| 452 isolate_->factory()->constructor_string()); | 452 isolate_->factory()->constructor_string()); |
| 453 return constructor.is_identical_to(function_); | 453 return constructor.is_identical_to(function_); |
| 454 } | 454 } |
| 455 | 455 |
| 456 namespace { | 456 namespace { |
| (...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 612 int JSStackFrame::GetPosition() const { return code_->SourcePosition(offset_); } | 612 int JSStackFrame::GetPosition() const { return code_->SourcePosition(offset_); } |
| 613 | 613 |
| 614 bool JSStackFrame::HasScript() const { | 614 bool JSStackFrame::HasScript() const { |
| 615 return function_->shared()->script()->IsScript(); | 615 return function_->shared()->script()->IsScript(); |
| 616 } | 616 } |
| 617 | 617 |
| 618 Handle<Script> JSStackFrame::GetScript() const { | 618 Handle<Script> JSStackFrame::GetScript() const { |
| 619 return handle(Script::cast(function_->shared()->script()), isolate_); | 619 return handle(Script::cast(function_->shared()->script()), isolate_); |
| 620 } | 620 } |
| 621 | 621 |
| 622 WasmStackFrame::WasmStackFrame() {} |
| 623 |
| 622 void WasmStackFrame::FromFrameArray(Isolate* isolate, Handle<FrameArray> array, | 624 void WasmStackFrame::FromFrameArray(Isolate* isolate, Handle<FrameArray> array, |
| 623 int frame_ix) { | 625 int frame_ix) { |
| 624 // This function is called for both wasm and asm.js->wasm frames. | 626 // This function is called for both wasm and asm.js->wasm frames. |
| 625 DCHECK(array->IsWasmFrame(frame_ix) || array->IsAsmJsWasmFrame(frame_ix)); | 627 DCHECK(array->IsWasmFrame(frame_ix) || array->IsAsmJsWasmFrame(frame_ix)); |
| 626 isolate_ = isolate; | 628 isolate_ = isolate; |
| 627 wasm_instance_ = handle(array->WasmInstance(frame_ix), isolate); | 629 wasm_instance_ = handle(array->WasmInstance(frame_ix), isolate); |
| 628 wasm_func_index_ = array->WasmFunctionIndex(frame_ix)->value(); | 630 wasm_func_index_ = array->WasmFunctionIndex(frame_ix)->value(); |
| 629 code_ = handle(array->Code(frame_ix), isolate); | 631 code_ = handle(array->Code(frame_ix), isolate); |
| 630 offset_ = array->Offset(frame_ix)->value(); | 632 offset_ = array->Offset(frame_ix)->value(); |
| 631 } | 633 } |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 674 | 676 |
| 675 int WasmStackFrame::GetPosition() const { | 677 int WasmStackFrame::GetPosition() const { |
| 676 // TODO(wasm): Clean this up (bug 5007). | 678 // TODO(wasm): Clean this up (bug 5007). |
| 677 return (offset_ < 0) ? (-1 - offset_) : code_->SourcePosition(offset_); | 679 return (offset_ < 0) ? (-1 - offset_) : code_->SourcePosition(offset_); |
| 678 } | 680 } |
| 679 | 681 |
| 680 Handle<Object> WasmStackFrame::Null() const { | 682 Handle<Object> WasmStackFrame::Null() const { |
| 681 return isolate_->factory()->null_value(); | 683 return isolate_->factory()->null_value(); |
| 682 } | 684 } |
| 683 | 685 |
| 686 bool WasmStackFrame::HasScript() const { return true; } |
| 687 |
| 688 Handle<Script> WasmStackFrame::GetScript() const { |
| 689 return WasmInstanceObject::cast(*wasm_instance_) |
| 690 ->get_compiled_module() |
| 691 ->script(); |
| 692 } |
| 693 |
| 694 AsmJsWasmStackFrame::AsmJsWasmStackFrame() {} |
| 695 |
| 684 void AsmJsWasmStackFrame::FromFrameArray(Isolate* isolate, | 696 void AsmJsWasmStackFrame::FromFrameArray(Isolate* isolate, |
| 685 Handle<FrameArray> array, | 697 Handle<FrameArray> array, |
| 686 int frame_ix) { | 698 int frame_ix) { |
| 687 DCHECK(array->IsAsmJsWasmFrame(frame_ix)); | 699 DCHECK(array->IsAsmJsWasmFrame(frame_ix)); |
| 688 WasmStackFrame::FromFrameArray(isolate, array, frame_ix); | 700 WasmStackFrame::FromFrameArray(isolate, array, frame_ix); |
| 689 is_at_number_conversion_ = | 701 is_at_number_conversion_ = |
| 690 array->Flags(frame_ix)->value() & FrameArray::kAsmJsAtNumberConversion; | 702 array->Flags(frame_ix)->value() & FrameArray::kAsmJsAtNumberConversion; |
| 691 } | 703 } |
| 692 | 704 |
| 693 Handle<Object> AsmJsWasmStackFrame::GetReceiver() const { | 705 Handle<Object> AsmJsWasmStackFrame::GetReceiver() const { |
| (...skipping 508 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1202 DCHECK(mode != SKIP_UNTIL_SEEN); | 1214 DCHECK(mode != SKIP_UNTIL_SEEN); |
| 1203 | 1215 |
| 1204 Handle<Object> no_caller; | 1216 Handle<Object> no_caller; |
| 1205 Handle<String> msg = FormatMessage(isolate, template_index, arg0, arg1, arg2); | 1217 Handle<String> msg = FormatMessage(isolate, template_index, arg0, arg1, arg2); |
| 1206 return ErrorUtils::Construct(isolate, constructor, constructor, msg, mode, | 1218 return ErrorUtils::Construct(isolate, constructor, constructor, msg, mode, |
| 1207 no_caller, false); | 1219 no_caller, false); |
| 1208 } | 1220 } |
| 1209 | 1221 |
| 1210 } // namespace internal | 1222 } // namespace internal |
| 1211 } // namespace v8 | 1223 } // namespace v8 |
| OLD | NEW |