desc. in objects.h
// // Most object types in the V8 JavaScript are described in this file. // // Inheritance hierarchy: // - Object // - Smi (immediate small integer) // - HeapObject (superclass for everything allocated in the heap) // - JSReceiver (suitable for property access) // - JSObject // - JSArray // - JSArrayBuffer // - JSArrayBufferView // - JSTypedArray // - JSDataView // - JSBoundFunction // - JSCollection // - JSSet // - JSMap // - JSStringIterator // - JSSetIterator // - JSMapIterator // - JSWeakCollection // - JSWeakMap // - JSWeakSet // - JSRegExp // - JSFunction // - JSGeneratorObject // - JSGlobalObject // - JSGlobalProxy // - JSValue // - JSDate // - JSMessageObject // - JSModuleNamespace // - JSProxy // - FixedArrayBase // - ByteArray // - BytecodeArray // - FixedArray // - DescriptorArray // - FrameArray // - HashTable // - Dictionary // - StringTable // - StringSet // - CompilationCacheTable // - CodeCacheHashTable // - MapCache // - OrderedHashTable // - OrderedHashSet // - OrderedHashMap // - Context // - FeedbackMetadata // - FeedbackVector // - TemplateList // - TransitionArray // - ScopeInfo // - ModuleInfo // - ScriptContextTable // - WeakFixedArray // - FixedDoubleArray // - Name // - String // - SeqString // - SeqOneByteString // - SeqTwoByteString // - SlicedString // - ConsString // - ThinString // - ExternalString // - ExternalOneByteString // - ExternalTwoByteString // - InternalizedString // - SeqInternalizedString // - SeqOneByteInternalizedString // - SeqTwoByteInternalizedString // - ConsInternalizedString // - ExternalInternalizedString // - ExternalOneByteInternalizedString // - ExternalTwoByteInternalizedString // - Symbol // - HeapNumber // - Cell // - PropertyCell // - Code // - AbstractCode, a wrapper around Code or BytecodeArray // - Map // - Oddball // - Foreign // - SharedFunctionInfo // - Struct // - AccessorInfo // - PromiseResolveThenableJobInfo // - PromiseReactionJobInfo // - AccessorPair // - AccessCheckInfo // - InterceptorInfo // - CallHandlerInfo // - TemplateInfo // - FunctionTemplateInfo // - ObjectTemplateInfo // - Script // - DebugInfo // - BreakPointInfo // - CodeCache // - PrototypeInfo // - Module // - ModuleInfoEntry // - WeakCell // // Formats of Object*: // Smi: [31 bit signed int] 0 // HeapObject: [32 bit direct pointer] (4 byte aligned) | 01
v8 bailout related
bailout reasons
https://github.com/vhf/v8-bailout-reasons
Optimization-killers
https://github.com/petkaantonov/bluebird/wiki/Optimization-killers
21种v8的元素类型
enum ElementsKind { // The "fast" kind for elements that only contain SMI values. Must be first // to make it possible to efficiently check maps for this kind. FAST_SMI_ELEMENTS, FAST_HOLEY_SMI_ELEMENTS, // The "fast" kind for tagged values. Must be second to make it possible to // efficiently check maps for this and the FAST_SMI_ONLY_ELEMENTS kind // together at once. FAST_ELEMENTS, FAST_HOLEY_ELEMENTS, // The "fast" kind for unwrapped, non-tagged double values. FAST_DOUBLE_ELEMENTS, FAST_HOLEY_DOUBLE_ELEMENTS, // The "slow" kind. DICTIONARY_ELEMENTS, // Elements kind of the "arguments" object (only in sloppy mode). FAST_SLOPPY_ARGUMENTS_ELEMENTS, SLOW_SLOPPY_ARGUMENTS_ELEMENTS, // For string wrapper objects ("new String('...')"), the string's characters // are overlaid onto a regular elements backing store. FAST_STRING_WRAPPER_ELEMENTS, SLOW_STRING_WRAPPER_ELEMENTS, // Fixed typed arrays. UINT8_ELEMENTS, INT8_ELEMENTS, UINT16_ELEMENTS, INT16_ELEMENTS, UINT32_ELEMENTS, INT32_ELEMENTS, FLOAT32_ELEMENTS, FLOAT64_ELEMENTS, UINT8_CLAMPED_ELEMENTS, // Sentinel ElementsKind for objects with no elements. NO_ELEMENTS, // Derived constants from ElementsKind. FIRST_ELEMENTS_KIND = FAST_SMI_ELEMENTS, LAST_ELEMENTS_KIND = UINT8_CLAMPED_ELEMENTS, FIRST_FAST_ELEMENTS_KIND = FAST_SMI_ELEMENTS, LAST_FAST_ELEMENTS_KIND = FAST_HOLEY_DOUBLE_ELEMENTS, FIRST_FIXED_TYPED_ARRAY_ELEMENTS_KIND = UINT8_ELEMENTS, LAST_FIXED_TYPED_ARRAY_ELEMENTS_KIND = UINT8_CLAMPED_ELEMENTS, TERMINAL_FAST_ELEMENTS_KIND = FAST_HOLEY_ELEMENTS };
AT command
https://www.diafaan.com/sms-tutorials/gsm-modem-tutorial/
General SMS Commands
AT+CMGF – Set SMS Text Mode or SMS PDU Mode
AT+CMGD – Delete a Received Message
PDU Mode SMS Commands
AT+CMGL – List Received Messages
Text Mode SMS Commands
AT+CMGS – Send SMS Message
AT+CMGL – List Received Messages
————————
AT + CMGF - 设置短信模式或SMS PDU模式
AT + CMGF命令将GSM调制解调器设置为SMS文本模式或SMS PDU模式。
在文本模式下,SMS消息被表示为可读文本。 在PDU模式下,所有SMS消息都表示为十六进制字符编码的二进制字符串,如31020B911326880736F40000A900。
虽然文本模式更容易使用,但PDU模式在不同的GSM调制解调器上更为一致。
命令 回应
AT+ CMGF= OK
参数
:0 = PDU模式,1 =文本模式
= ASCII字符13
例
将GSM调制解调器设置为文本模式短信,并向GSM号码+31628870634发送消息。
AT+CMGF=1 OK AT+CMGS="+31628870634" > This is the text message.→ +CMGS: 198 OK
————————
AT + CMGD - 删除接收到的消息
AT + CMGD命令从GSM调制解调器中删除接收到的SMS消息。 您可以使用AT + CMGL命令检索消息的索引号。
命令 回应
AT + CMGD=<索引>
参数
例
将GSM调制解调器设置为文本模式SMS,列出所有接收到的消息,并从GSM调制解调器中删除消息。
AT+CMGF=1 OK AT+CMGL="ALL" +CMGL: 1,"REC UNREAD","+31628870634",,"11/01/09,10:26:26+04" This is text message 1 +CMGL: 2,"REC UNREAD","+31628870634",,"11/01/09,10:26:49+04" This is text message 2 OK AT+CMGD=1 OK AT+CMGD=2 OK
————————
AT + CMGL - 在PDU模式下列出接收到的消息
AT + CMGL命令列出在GSM调制解调器上接收到的消息。 它可以用于获取所有收到的消息,所有未读消息或所有读消息。
命令 回应
AT + CMGL =
…
OK
参数
发件人名称(如果在电话簿中可用)
解码SMS-DELIVER PDU
使用在线SMS-DELIVER PDU解码器对接收到的PDU进行解码。
例
将GSM调制解调器设置为SMS PDU模式,列出所有接收的消息,并从3G调制解调器中删除消息。
AT+CMGF=0 OK AT+CMGL=4 +CMGL: 1,0,,39 07911326040011F5240B911326880736F40000111081017362401654747A0E4ACF41F4329E0E6A97E7F3F0B90C8A01 +CMGL: 2,0,,39 07911326040011F5240B911326880736F40000111081017323401654747A0E4ACF41F4329E0E6A97E7F3F0B90C9201 OK AT+CMGD=1 OK AT+CMGD=2 OK
————————
AT + CMGS - 以文本模式发送短信命令
AT + CMGS命令向GSM手机发送一条SMS消息。 在文本模式下,这个命令比PDU模式的功能不那么强大,但它当然更容易使用。
命令 响应
AT + CMGS=<编号>
好
参数
例
将GSM调制解调器设置为文本模式短信,并向GSM号码+31628870634发送消息。
AT+CMGF=1 OK AT+CMGS="+31628870634" > This is the text message.→ +CMGS: 198 OK
————————
AT + CMGL - 以文本模式列出接收到的消息
AT + CMGL命令列出在GSM调制解调器上接收到的消息。 它可以用于获取所有收到的消息,所有未读消息或所有读消息。
命令积极回应
AT + CMGL =
…
OK
参数
发件人名称(如果在电话簿中可用)
:短信的内容
例
将GSM调制解调器设置为文本模式SMS,列出所有接收到的消息,并从GSM调制解调器中删除消息。
AT+CMGF=1 OK AT+CMGL="ALL" +CMGL: 1,"REC UNREAD","+31628870634",,"11/01/09,10:26:26+04" This is text message 1 +CMGL: 2,"REC UNREAD","+31628870634",,"11/01/09,10:26:49+04" This is text message 2 OK AT+CMGD=1 OK AT+CMGD=2 OK
note
https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/example-12—using-page-heap-verification-to-find-a-bug
SIMD128_TYPES
// V has parameters (TYPE, Type, type, lane count, lane type)
#define SIMD128_TYPES(V)
V(FLOAT32X4, Float32×4, float32×4, 4, float)
V(INT32X4, Int32×4, int32×4, 4, int32_t)
V(UINT32X4, Uint32×4, uint32×4, 4, uint32_t)
V(BOOL32X4, Bool32×4, bool32×4, 4, bool)
V(INT16X8, Int16×8, int16×8, 8, int16_t)
V(UINT16X8, Uint16×8, uint16×8, 8, uint16_t)
V(BOOL16X8, Bool16×8, bool16×8, 8, bool)
V(INT8X16, Int8×16, int8×16, 16, int8_t)
V(UINT8X16, Uint8×16, uint8×16, 16, uint8_t)
V(BOOL8X16, Bool8×16, bool8×16, 16, bool)
INTERNALIZED_STRING_LIST
#define INTERNALIZED_STRING_LIST(V)
V(anonymous_string, “anonymous”)
V(apply_string, “apply”)
V(assign_string, “assign”)
V(arguments_string, “arguments”)
V(Arguments_string, “Arguments”)
V(Array_string, “Array”)
V(arguments_to_string, “[object Arguments]”)
V(array_to_string, “[object Array]”)
V(boolean_to_string, “[object Boolean]”)
V(date_to_string, “[object Date]”)
V(error_to_string, “[object Error]”)
V(function_to_string, “[object Function]”)
V(number_to_string, “[object Number]”)
V(object_to_string, “[object Object]”)
V(regexp_to_string, “[object RegExp]”)
V(string_to_string, “[object String]”)
V(bind_string, “bind”)
V(bool16×8_string, “bool16×8”)
V(Bool16×8_string, “Bool16×8”)
V(bool32×4_string, “bool32×4”)
V(Bool32×4_string, “Bool32×4”)
V(bool8×16_string, “bool8×16”)
V(Bool8×16_string, “Bool8×16”)
V(boolean_string, “boolean”)
V(Boolean_string, “Boolean”)
V(bound__string, “bound “)
V(buffer_string, “buffer”)
V(byte_length_string, “byteLength”)
V(byte_offset_string, “byteOffset”)
V(call_string, “call”)
V(callee_string, “callee”)
V(caller_string, “caller”)
V(cell_value_string, “%cell_value”)
V(char_at_string, “CharAt”)
V(closure_string, “(closure)”)
V(column_string, “column”)
V(compare_ic_string, “==”)
V(configurable_string, “configurable”)
V(constructor_string, “constructor”)
V(construct_string, “construct”)
V(create_string, “create”)
V(Date_string, “Date”)
V(default_string, “default”)
V(defineProperty_string, “defineProperty”)
V(deleteProperty_string, “deleteProperty”)
V(display_name_string, “displayName”)
V(done_string, “done”)
V(dot_result_string, “.result”)
V(dot_string, “.”)
V(entries_string, “entries”)
V(enumerable_string, “enumerable”)
V(Error_string, “Error”)
V(eval_string, “eval”)
V(EvalError_string, “EvalError”)
V(false_string, “false”)
V(float32×4_string, “float32×4”)
V(Float32×4_string, “Float32×4”)
V(for_api_string, “for_api”)
V(for_string, “for”)
V(function_string, “function”)
V(Function_string, “Function”)
V(Generator_string, “Generator”)
V(getOwnPropertyDescriptor_string, “getOwnPropertyDescriptor”)
V(getOwnPropertyDescriptors_string, “getOwnPropertyDescriptors”)
V(getPrototypeOf_string, “getPrototypeOf”)
V(get_string, “get”)
V(global_string, “global”)
V(has_string, “has”)
V(illegal_access_string, “illegal access”)
V(illegal_argument_string, “illegal argument”)
V(index_string, “index”)
V(infinity_string, “Infinity”)
V(input_string, “input”)
V(int16×8_string, “int16×8”)
V(Int16×8_string, “Int16×8”)
V(int32×4_string, “int32×4”)
V(Int32×4_string, “Int32×4”)
V(int8×16_string, “int8×16”)
V(Int8×16_string, “Int8×16”)
V(isExtensible_string, “isExtensible”)
V(isView_string, “isView”)
V(KeyedLoadMonomorphic_string, “KeyedLoadMonomorphic”)
V(KeyedStoreMonomorphic_string, “KeyedStoreMonomorphic”)
V(last_index_string, “lastIndex”)
V(length_string, “length”)
V(line_string, “line”)
V(Map_string, “Map”)
V(message_string, “message”)
V(minus_infinity_string, “-Infinity”)
V(minus_zero_string, “-0”)
V(name_string, “name”)
V(nan_string, “NaN”)
V(next_string, “next”)
V(not_equal, “not-equal”)
V(null_string, “null”)
V(null_to_string, “[object Null]”)
V(number_string, “number”)
V(Number_string, “Number”)
V(object_string, “object”)
V(Object_string, “Object”)
V(ok, “ok”)
V(ownKeys_string, “ownKeys”)
V(position_string, “position”)
V(preventExtensions_string, “preventExtensions”)
V(private_api_string, “private_api”)
V(Promise_string, “Promise”)
V(proto_string, “__proto__”)
V(prototype_string, “prototype”)
V(Proxy_string, “Proxy”)
V(query_colon_string, “(?:)”)
V(RangeError_string, “RangeError”)
V(ReferenceError_string, “ReferenceError”)
V(RegExp_string, “RegExp”)
V(script_string, “script”)
V(setPrototypeOf_string, “setPrototypeOf”)
V(set_string, “set”)
V(Set_string, “Set”)
V(source_mapping_url_string, “source_mapping_url”)
V(source_string, “source”)
V(sourceText_string, “sourceText”)
V(source_url_string, “source_url”)
V(stack_string, “stack”)
V(stackTraceLimit_string, “stackTraceLimit”)
V(strict_compare_ic_string, “===”)
V(string_string, “string”)
V(String_string, “String”)
V(symbol_string, “symbol”)
V(Symbol_string, “Symbol”)
V(SyntaxError_string, “SyntaxError”)
V(this_string, “this”)
V(throw_string, “throw”)
V(timed_out, “timed-out”)
V(toJSON_string, “toJSON”)
V(toString_string, “toString”)
V(true_string, “true”)
V(TypeError_string, “TypeError”)
V(uint16×8_string, “uint16×8”)
V(Uint16×8_string, “Uint16×8”)
V(uint32×4_string, “uint32×4”)
V(Uint32×4_string, “Uint32×4”)
V(uint8×16_string, “uint8×16”)
V(Uint8×16_string, “Uint8×16”)
V(undefined_string, “undefined”)
V(undefined_to_string, “[object Undefined]”)
V(URIError_string, “URIError”)
V(valueOf_string, “valueOf”)
V(values_string, “values”)
V(value_string, “value”)
V(WeakMap_string, “WeakMap”)
V(WeakSet_string, “WeakSet”)
V(writable_string, “writable”)
immtable
https://github.com/camsong/blog/issues/3
https://developer.mozilla.org/en-US/docs/Glossary/Mutable
symbols of v8
heap-symbols.h
#define PRIVATE_SYMBOL_LIST(V)
V(array_iteration_kind_symbol)
V(array_iterator_next_symbol)
V(array_iterator_object_symbol)
V(call_site_constructor_symbol)
V(call_site_function_symbol)
V(call_site_position_symbol)
V(call_site_receiver_symbol)
V(call_site_strict_symbol)
V(call_site_wasm_obj_symbol)
V(call_site_wasm_func_index_symbol)
V(class_end_position_symbol)
V(class_start_position_symbol)
V(detailed_stack_trace_symbol)
V(elements_transition_symbol)
V(error_end_pos_symbol)
V(error_script_symbol)
V(error_start_pos_symbol)
V(frozen_symbol)
V(hash_code_symbol)
V(home_object_symbol)
V(intl_impl_object_symbol)
V(intl_initialized_marker_symbol)
V(intl_pattern_symbol)
V(intl_resolved_symbol)
V(megamorphic_symbol)
V(native_context_index_symbol)
V(nonexistent_symbol)
V(nonextensible_symbol)
V(normal_ic_symbol)
V(not_mapped_symbol)
V(premonomorphic_symbol)
V(promise_combined_deferred_symbol)
V(promise_debug_marker_symbol)
V(promise_deferred_reactions_symbol)
V(promise_fulfill_reactions_symbol)
V(promise_has_handler_symbol)
V(promise_raw_symbol)
V(promise_reject_reactions_symbol)
V(promise_result_symbol)
V(promise_state_symbol)
V(sealed_symbol)
V(stack_trace_symbol)
V(strict_function_transition_symbol)
V(string_iterator_iterated_string_symbol)
V(string_iterator_next_index_symbol)
V(uninitialized_symbol)
#define PUBLIC_SYMBOL_LIST(V)
V(iterator_symbol, Symbol.iterator)
V(match_symbol, Symbol.match)
V(replace_symbol, Symbol.replace)
V(search_symbol, Symbol.search)
V(species_symbol, Symbol.species)
V(split_symbol, Symbol.split)
V(to_primitive_symbol, Symbol.toPrimitive)
V(unscopables_symbol, Symbol.unscopables)
// Well-Known Symbols are “Public” symbols, which have a bit set which causes
// them to produce an undefined value when a load results in a failed access
// check. Because this behaviour is not specified properly as of yet, it only
// applies to a subset of spec-defined Well-Known Symbols.
#define WELL_KNOWN_SYMBOL_LIST(V)
V(has_instance_symbol, Symbol.hasInstance)
V(is_concat_spreadable_symbol, Symbol.isConcatSpreadable)
V(to_string_tag_symbol, Symbol.toStringTag)
win10自动休眠的问题
http://blog.csdn.net/ivan_ljf/article/details/51104991
为什么win10这么智障呢,产品经理总是喜欢帮用户做决定……