Index: src/parser.cc |
diff --git a/src/parser.cc b/src/parser.cc |
index 9539d3891f02a61d269376629185a01acf905ef5..26983e0e4a0b7834d9c22faa1ead943f670e22cd 100644 |
--- a/src/parser.cc |
+++ b/src/parser.cc |
@@ -4105,7 +4105,26 @@ void Parser::ThrowPendingError() { |
pending_error_is_reference_error_ |
? factory->NewReferenceError(pending_error_message_, array) |
: factory->NewSyntaxError(pending_error_message_, array); |
- if (maybe_error.ToHandle(&error)) isolate()->Throw(*error, &location); |
+ |
+ if (maybe_error.ToHandle(&error)) { |
+ Handle<JSObject> jserror = Handle<JSObject>::cast(error); |
+ |
+ Handle<Name> key_start_pos = factory->error_start_pos_symbol(); |
+ JSObject::SetProperty( |
+ jserror, key_start_pos, |
+ handle(Smi::FromInt(location.start_pos()), isolate()), |
+ SLOPPY).Check(); |
+ |
+ Handle<Name> key_end_pos = factory->error_end_pos_symbol(); |
+ JSObject::SetProperty(jserror, key_end_pos, |
+ handle(Smi::FromInt(location.end_pos()), isolate()), |
+ SLOPPY).Check(); |
+ |
+ Handle<Name> key_script = factory->error_script_symbol(); |
+ JSObject::SetProperty(jserror, key_script, script(), SLOPPY).Check(); |
+ |
+ isolate()->Throw(*error, &location); |
+ } |
} |
} |