@@ -503,13 +503,15 @@ class ContextifyScript : public BaseObject {
503503 TryCatch try_catch;
504504 Local<String> code = args[0 ]->ToString (env->isolate ());
505505 Local<String> filename = GetFilenameArg (args, 1 );
506+ Local<Integer> lineOffset = GetLineOffsetArg (args, 1 );
507+ Local<Integer> columnOffset = GetColumnOffsetArg (args, 1 );
506508 bool display_errors = GetDisplayErrorsArg (args, 1 );
507509 if (try_catch.HasCaught ()) {
508510 try_catch.ReThrow ();
509511 return ;
510512 }
511513
512- ScriptOrigin origin (filename);
514+ ScriptOrigin origin (filename, lineOffset, columnOffset );
513515 ScriptCompiler::Source source (code, origin);
514516 Local<UnboundScript> v8_script =
515517 ScriptCompiler::CompileUnbound (env->isolate (), &source);
@@ -674,6 +676,39 @@ class ContextifyScript : public BaseObject {
674676 }
675677
676678
679+ static Local<Integer> GetLineOffsetArg (
680+ const FunctionCallbackInfo<Value>& args,
681+ const int i) {
682+ Local<Integer> defaultLineOffset = Integer::New (args.GetIsolate (), 0 );
683+
684+ if (!args[i]->IsObject ()) {
685+ return defaultLineOffset;
686+ }
687+
688+ Local<String> key = FIXED_ONE_BYTE_STRING (args.GetIsolate (), " lineOffset" );
689+ Local<Value> value = args[i].As <Object>()->Get (key);
690+
691+ return value->IsUndefined () ? defaultLineOffset : value->ToInteger ();
692+ }
693+
694+
695+ static Local<Integer> GetColumnOffsetArg (
696+ const FunctionCallbackInfo<Value>& args,
697+ const int i) {
698+ Local<Integer> defaultColumnOffset = Integer::New (args.GetIsolate (), 0 );
699+
700+ if (!args[i]->IsObject ()) {
701+ return defaultColumnOffset;
702+ }
703+
704+ Local<String> key = FIXED_ONE_BYTE_STRING (args.GetIsolate (),
705+ " columnOffset" );
706+ Local<Value> value = args[i].As <Object>()->Get (key);
707+
708+ return value->IsUndefined () ? defaultColumnOffset : value->ToInteger ();
709+ }
710+
711+
677712 static bool EvalMachine (Environment* env,
678713 const int64_t timeout,
679714 const bool display_errors,
0 commit comments