summaryrefslogtreecommitdiff
path: root/deno2/main.cc
blob: 5d8263d28c2da943e3f75bdb702dbf479af0b607 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// Copyright 2018 Ryan Dahl <ry@tinyclouds.org>
// All rights reserved. MIT License.
#include <assert.h>
#include <stdio.h>

#include "v8/include/v8.h"

#include "./deno.h"
#include "natives_deno.cc"
#include "snapshot_deno.cc"

int main(int argc, char** argv) {
  deno::v8_init();

  auto natives_blob = *StartupBlob_natives();
  printf("natives_blob %d bytes\n", natives_blob.raw_size);

  auto snapshot_blob = *StartupBlob_snapshot();
  printf("snapshot_blob %d bytes\n", snapshot_blob.raw_size);

  v8::V8::SetNativesDataBlob(&natives_blob);
  v8::V8::SetSnapshotDataBlob(&snapshot_blob);

  deno::Deno* d = deno::deno_from_snapshot(&snapshot_blob, NULL, NULL);
  int r = deno::deno_load(d, "main2.js", "foo();");
  if (r != 0) {
    printf("Error! %s\n", deno::deno_last_exception(d));
    exit(1);
  }

  const char* v = v8::V8::GetVersion();
  printf("Hello World. V8 version %s\n", v);
}