Ejemplo n.º 1
0
	Handle<Object> SorrowContext::SetupInternals(int argc, const char *argv[]) {
		HandleScope scope;
		Local<FunctionTemplate> internals_template = FunctionTemplate::New();
		internals = Persistent<Object>::New(internals_template->GetFunction()->NewInstance());
		
		Local<Object> global = Context::GetCurrent()->Global();
		SET_METHOD(global, "quit",    Quit)
		SET_METHOD(global, "version", Version)
		SET_METHOD(internals, "compile", CompileScript)
        
		if (argc) {
			Local<Array> lineArgs = Array::New(argc-1);
			for (int i = 0; i +1 < argc; i++) {
				lineArgs->Set(Integer::New(i), V8_STR(argv[i+1]));
			}
			internals->Set(V8_STR("args"), lineArgs);
		} else {
			internals->Set(V8_STR("args"), Array::New());
		}

		Handle<Object> libsObject = Object::New();
		LoadNativeLibraries(libsObject);
		internals->Set(V8_STR("stdlib"), libsObject);
        
		Handle<ObjectTemplate> env = ObjectTemplate::New();
		env->SetNamedPropertyHandler(EnvGetter);
		internals->Set(V8_STR("env"), env->NewInstance());
        
		internals->Set(V8_STR("global"), global);
		
		binarytypes = new BinaryTypes(internals);
		iostreams = new IOStreams(internals);

		Filesystem::Initialize(internals);
		Extensions::Initialize(internals);
		

		TryCatch tryCatch;
		Local<Value> func = ExecuteString(V8_STR(sorrow_native), V8_STR("sorrow.js"));
		
		if (tryCatch.HasCaught()) {
			ReportException(&tryCatch);
			exit(10);
		}

		ASSERT_PIN(func->IsFunction(), "sorrow.js main function not found");
		Local<Function> f = Local<Function>::Cast(func);
		
		Local<Value> args[1] = { Local<Value>::New(internals) };
		
		f->Call(global, 1, args);
		
		if (tryCatch.HasCaught())  {
			ReportException(&tryCatch);
			exit(11);
		}

		return internals;
	} // SetupInternals
Ejemplo n.º 2
0
Archivo: array.c Proyecto: Speedy37/v7
V7_PRIVATE void init_array(void) {
  init_standard_constructor(V7_CLASS_ARRAY, Array_ctor);

  SET_PROP_FUNC(s_prototypes[V7_CLASS_ARRAY], "length", Arr_length);
  SET_METHOD(s_prototypes[V7_CLASS_ARRAY], "push", Arr_push);
  SET_METHOD(s_prototypes[V7_CLASS_ARRAY], "sort", Arr_sort);

  SET_RO_PROP_V(s_global, "Array", s_constructors[V7_CLASS_ARRAY]);
}
Ejemplo n.º 3
0
Archivo: json.c Proyecto: arnognulf/v7
V7_PRIVATE void init_json(void) {
  SET_METHOD(s_json, "stringify", Json_stringify);

  v7_set_class(&s_json, V7_CLASS_OBJECT);
  s_json.ref_count = 1;

  SET_RO_PROP_V(s_global, "JSON", s_json);
}
Ejemplo n.º 4
0
V7_PRIVATE void init_number(void) {
  init_standard_constructor(V7_CLASS_NUMBER, Number_ctor);
  SET_RO_PROP(NUMCTOR, "MAX_VALUE", V7_TYPE_NUM, num, LONG_MAX);
  SET_RO_PROP(NUMCTOR, "MIN_VALUE", V7_TYPE_NUM, num, LONG_MIN);
  SET_RO_PROP(NUMCTOR, "NaN", V7_TYPE_NUM, num, NAN);
  SET_METHOD(s_prototypes[V7_CLASS_NUMBER], "toFixed", Num_toFixed);
  SET_RO_PROP_V(s_global, "Number", s_constructors[V7_CLASS_NUMBER]);
}
Ejemplo n.º 5
0
NODE *ast_create(NODE_TYPE type, ...)
{
  static struct constructor constructor[] =
    {
      {ast_array_size, ast_array_init},
      {ast_binary_size, ast_binary_init},
      {ast_block_size, ast_block_init},
      {ast_call_size, ast_call_init},
      {ast_conditional_size, ast_conditional_init},
      {ast_constant_size, ast_constant_init},
      {ast_declare_size, ast_declare_init},
      {ast_for_size, ast_for_init},
      {ast_formal_size, ast_formal_init},
      {ast_function_size, ast_function_init},
      {ast_group_size, ast_group_init},
      {ast_identifier_size, ast_identifier_init},
      {ast_list_size, ast_list_init},
      {ast_postfix_size, ast_postfix_init},
      {ast_prefix_size, ast_prefix_init},
      {ast_read_size, ast_read_init},
      {ast_return_size, ast_return_init},
      {ast_string_literal_size, ast_string_literal_init},
      {ast_while_size, ast_while_init},
      {ast_write_size, ast_write_init}
    };

  va_list args;
  NODE *result = ast_alloc(type);
  size_t size = constructor[type].size();

  result->slots = my_malloc(size);

  SET_METHOD(result, generate_lval_ir, ast_default_generate_lval_ir);
  SET_METHOD(result, generate_param_ir, ast_default_generate_param_ir);
  SET_METHOD(result, find_literals, ast_default_find_literals);
  SET_METHOD(result, get_symbol, ast_default_get_symbol);
  SET_METHOD(result, add_symbols, ast_default_add_symbols);
  SET_METHOD(result, check_functions, ast_default_check_functions);
  SET_METHOD(result, ir_type, ast_default_ir_type);
  SET_METHOD(result, ir_value, ast_default_ir_value);
  SET_METHOD(result, is_lvalue, ast_default_is_lvalue);

  va_start(args, type);
  constructor[type].init(result, args);
  va_end(args);

  return result;
}
Ejemplo n.º 6
0
Archivo: string.c Proyecto: amihwan/v7
V7_PRIVATE void init_string(void) {
  init_standard_constructor(V7_CLASS_STRING, String_ctor);
  SET_PROP_FUNC(s_prototypes[V7_CLASS_STRING], "length", Str_length);
  SET_METHOD(s_prototypes[V7_CLASS_STRING], "charCodeAt", Str_charCodeAt);
  SET_METHOD(s_prototypes[V7_CLASS_STRING], "charAt", Str_charAt);
  SET_METHOD(s_prototypes[V7_CLASS_STRING], "indexOf", Str_indexOf);
  SET_METHOD(s_prototypes[V7_CLASS_STRING], "substr", Str_substr);
  SET_METHOD(s_prototypes[V7_CLASS_STRING], "match", Str_match);
  SET_METHOD(s_prototypes[V7_CLASS_STRING], "split", Str_split);
  SET_METHOD(s_prototypes[V7_CLASS_STRING], "search", Str_search);
  SET_METHOD(s_prototypes[V7_CLASS_STRING], "replace", Str_replace);

  SET_RO_PROP_V(s_global, "String", s_constructors[V7_CLASS_STRING]);
}
Ejemplo n.º 7
0
Archivo: string.c Proyecto: mwanna/v7
static void init_string(void) {
  SET_PROP_FUNC(s_prototypes[V7_CLASS_STRING], "length", Str_length);
  SET_METHOD(s_prototypes[V7_CLASS_STRING], "charCodeAt", Str_charCodeAt);
  SET_METHOD(s_prototypes[V7_CLASS_STRING], "charAt", Str_charAt);
  SET_METHOD(s_prototypes[V7_CLASS_STRING], "indexOf", Str_indexOf);
  SET_METHOD(s_prototypes[V7_CLASS_STRING], "substr", Str_substr);
  SET_METHOD(s_prototypes[V7_CLASS_STRING], "match", Str_match);
  SET_METHOD(s_prototypes[V7_CLASS_STRING], "split", Str_split);

  SET_RO_PROP_V(s_global, "String", s_constructors[V7_CLASS_STRING]);
}
Ejemplo n.º 8
0
V7_PRIVATE void init_object(void) {
  init_standard_constructor(V7_CLASS_OBJECT, Object_ctor);
  SET_METHOD(s_prototypes[V7_CLASS_OBJECT], "toString", Obj_toString);
  SET_METHOD(s_prototypes[V7_CLASS_OBJECT], "keys", Obj_keys);
  SET_RO_PROP_V(s_global, "Object", s_constructors[V7_CLASS_OBJECT]);
}
Ejemplo n.º 9
0
        return CreateExternalArray(args, kExternalFloatArray,
                                   sizeof(float));  // NOLINT
    }
    
    
    Handle<Value> Float64Array(const Arguments& args) {
        return CreateExternalArray(args, kExternalDoubleArray,
                                   sizeof(double));  // NOLINT
    }
    
    
    Handle<Value> PixelArray(const Arguments& args) {
        return CreateExternalArray(args, kExternalPixelArray, sizeof(uint8_t));
    }
    
    void InitV8Arrays(Handle<Object> target) {
        SET_METHOD(target, "ArrayBuffer",   ArrayBuffer)
        SET_METHOD(target, "MemoryBuffer",  MemoryBuffer)
        SET_METHOD(target, "Int8Array",     Int8Array)
        SET_METHOD(target, "Uint8Array",    Uint8Array)
        SET_METHOD(target, "Int16Array",    Int16Array)
        SET_METHOD(target, "Uint16Array",   Uint16Array)
        SET_METHOD(target, "Int32Array",    Int32Array)
        SET_METHOD(target, "Uint32Array",   Uint32Array)
        SET_METHOD(target, "Float32Array",  Float32Array)
        SET_METHOD(target, "Float64Array",  Float64Array)
        SET_METHOD(target, "PixelArray",    PixelArray)
    }

    
} // namespce sorrow
    if (cameraId < 0 || cameraId >= HAL_getNumberOfCameras()) {
        ALOGE("ERR(%s):Invalid camera ID %d", __func__, cameraId);
        return -EINVAL;
    }

    memcpy(info, &sCameraInfo[cameraId], sizeof(CameraInfo));
    info->device_version = HARDWARE_DEVICE_API_VERSION(1, 0);

    return NO_ERROR;
}


#define SET_METHOD(m) m : HAL_camera_device_##m

static camera_device_ops_t camera_device_ops = {
        SET_METHOD(set_preview_window),
        SET_METHOD(set_callbacks),
        SET_METHOD(enable_msg_type),
        SET_METHOD(disable_msg_type),
        SET_METHOD(msg_type_enabled),
        SET_METHOD(start_preview),
        SET_METHOD(stop_preview),
        SET_METHOD(preview_enabled),
        SET_METHOD(store_meta_data_in_buffers),
        SET_METHOD(start_recording),
        SET_METHOD(stop_recording),
        SET_METHOD(recording_enabled),
        SET_METHOD(release_recording_frame),
        SET_METHOD(auto_focus),
        SET_METHOD(cancel_auto_focus),
        SET_METHOD(take_picture),