Beispiel #1
0
static napi_value New(napi_env env, napi_callback_info info) {
  size_t argc = 1;
  napi_value args[1];
  NAPI_CALL(env, napi_get_cb_info(env, info, &argc, args, NULL, NULL));

  napi_value description = NULL;
  if (argc >= 1) {
    napi_valuetype valuetype;
    NAPI_CALL(env, napi_typeof(env, args[0], &valuetype));

    NAPI_ASSERT(env, valuetype == napi_string,
        "Wrong type of arguments. Expects a string.");

    description = args[0];
  }

  napi_value symbol;
  NAPI_CALL(env, napi_create_symbol(env, description, &symbol));

  return symbol;
}
Beispiel #2
0
napi_value Init(napi_env env, napi_value exports) {
  napi_value number;
  NAPI_CALL(env, napi_create_double(env, value_, &number));

  napi_value name_value;
  NAPI_CALL(env, napi_create_string_utf8(env,
                                         "NameKeyValue",
                                         NAPI_AUTO_LENGTH,
                                         &name_value));

  napi_value symbol_description;
  napi_value name_symbol;
  NAPI_CALL(env, napi_create_string_utf8(env,
                                         "NameKeySymbol",
                                         NAPI_AUTO_LENGTH,
                                         &symbol_description));
  NAPI_CALL(env, napi_create_symbol(env,
                                    symbol_description,
                                    &name_symbol));

  napi_property_descriptor properties[] = {
    { "echo", 0, Echo, 0, 0, 0, napi_enumerable, 0 },
    { "readwriteValue", 0, 0, 0, 0, number, napi_enumerable | napi_writable, 0 },
    { "readonlyValue", 0, 0, 0, 0, number, napi_enumerable, 0},
    { "hiddenValue", 0, 0, 0, 0, number, napi_default, 0},
    { NULL, name_value, 0, 0, 0, number, napi_enumerable, 0},
    { NULL, name_symbol, 0, 0, 0, number, napi_enumerable, 0},
    { "readwriteAccessor1", 0, 0, GetValue, SetValue, 0, napi_default, 0},
    { "readwriteAccessor2", 0, 0, GetValue, SetValue, 0, napi_writable, 0},
    { "readonlyAccessor1", 0, 0, GetValue, NULL, 0, napi_default, 0},
    { "readonlyAccessor2", 0, 0, GetValue, NULL, 0, napi_writable, 0},
    { "hasNamedProperty", 0, HasNamedProperty, 0, 0, 0, napi_default, 0 },
  };

  NAPI_CALL(env, napi_define_properties(
      env, exports, sizeof(properties) / sizeof(*properties), properties));

  return exports;
}