• Babel


    Babel默认只转换新的JavaScript句法(syntax),而不转换新的API,比如Iterator、Generator、Set、Maps、Proxy、Reflect、Symbol、Promise等全局对象,以及一些定义在全局对象上的方法(比如Object.assign)都不会转码。Babel默认不转码的API非常多,详细清单可以查看definitions.js文件

    definitions.js文件内容如下:

      1 export default {
      2   builtins: {
      3     Symbol: "symbol",
      4     Promise: "promise",
      5     Map: "map",
      6     WeakMap: "weak-map",
      7     Set: "set",
      8     WeakSet: "weak-set",
      9     Observable: "observable",
     10     setImmediate: "set-immediate",
     11     clearImmediate: "clear-immediate",
     12     asap: "asap",
     13     //parseFloat: "parse-float", // temporary disabled
     14     //parseInt: "parse-int" // temporary disabled
     15   },
     16 
     17   methods: {
     18     Array: {
     19       copyWithin: "array/copy-within",
     20       entries: "array/entries",
     21       every: "array/every",
     22       fill: "array/fill",
     23       filter: "array/filter",
     24       findIndex: "array/find-index",
     25       find: "array/find",
     26       forEach: "array/for-each",
     27       from: "array/from",
     28       includes: "array/includes",
     29       indexOf: "array/index-of",
     30       //isArray: "array/is-array", // temporary disabled
     31       join: "array/join",
     32       keys: "array/keys",
     33       lastIndexOf: "array/last-index-of",
     34       map: "array/map",
     35       of: "array/of",
     36       reduceRight: "array/reduce-right",
     37       reduce: "array/reduce",
     38       some: "array/some",
     39       sort: "array/sort",
     40       splice: "array/splice",
     41       values: "array/values",
     42     },
     43 
     44     JSON: {
     45       stringify: "json/stringify",
     46     },
     47 
     48     Object: {
     49       assign: "object/assign",
     50       create: "object/create",
     51       defineProperties: "object/define-properties",
     52       defineProperty: "object/define-property",
     53       entries: "object/entries",
     54       freeze: "object/freeze",
     55       getOwnPropertyDescriptor: "object/get-own-property-descriptor",
     56       getOwnPropertyDescriptors: "object/get-own-property-descriptors",
     57       getOwnPropertyNames: "object/get-own-property-names",
     58       getOwnPropertySymbols: "object/get-own-property-symbols",
     59       getPrototypeOf: "object/get-prototype-of",
     60       isExtensible: "object/is-extensible",
     61       isFrozen: "object/is-frozen",
     62       isSealed: "object/is-sealed",
     63       is: "object/is",
     64       keys: "object/keys",
     65       preventExtensions: "object/prevent-extensions",
     66       seal: "object/seal",
     67       setPrototypeOf: "object/set-prototype-of",
     68       values: "object/values",
     69     },
     70 
     71     Math: {
     72       acosh: "math/acosh",
     73       asinh: "math/asinh",
     74       atanh: "math/atanh",
     75       cbrt: "math/cbrt",
     76       clz32: "math/clz32",
     77       cosh: "math/cosh",
     78       expm1: "math/expm1",
     79       fround: "math/fround",
     80       hypot: "math/hypot",
     81       imul: "math/imul",
     82       log10: "math/log10",
     83       log1p: "math/log1p",
     84       log2: "math/log2",
     85       sign: "math/sign",
     86       sinh: "math/sinh",
     87       tanh: "math/tanh",
     88       trunc: "math/trunc",
     89       iaddh: "math/iaddh",
     90       isubh: "math/isubh",
     91       imulh: "math/imulh",
     92       umulh: "math/umulh",
     93     },
     94 
     95     Symbol: {
     96       for: "symbol/for",
     97       hasInstance: "symbol/has-instance",
     98       isConcatSpreadable: "symbol/is-concat-spreadable",
     99       iterator: "symbol/iterator",
    100       keyFor: "symbol/key-for",
    101       match: "symbol/match",
    102       replace: "symbol/replace",
    103       search: "symbol/search",
    104       species: "symbol/species",
    105       split: "symbol/split",
    106       toPrimitive: "symbol/to-primitive",
    107       toStringTag: "symbol/to-string-tag",
    108       unscopables: "symbol/unscopables",
    109     },
    110 
    111     String: {
    112       at: "string/at",
    113       codePointAt: "string/code-point-at",
    114       endsWith: "string/ends-with",
    115       fromCodePoint: "string/from-code-point",
    116       includes: "string/includes",
    117       matchAll: "string/match-all",
    118       padStart: "string/pad-start",
    119       padEnd: "string/pad-end",
    120       raw: "string/raw",
    121       repeat: "string/repeat",
    122       startsWith: "string/starts-with",
    123       trim: "string/trim",
    124       trimLeft: "string/trim-left",
    125       trimRight: "string/trim-right",
    126       trimStart: "string/trim-start",
    127       trimEnd: "string/trim-end",
    128     },
    129 
    130     Number: {
    131       EPSILON: "number/epsilon",
    132       isFinite: "number/is-finite",
    133       isInteger: "number/is-integer",
    134       isNaN: "number/is-nan",
    135       isSafeInteger: "number/is-safe-integer",
    136       MAX_SAFE_INTEGER: "number/max-safe-integer",
    137       MIN_SAFE_INTEGER: "number/min-safe-integer",
    138       parseFloat: "number/parse-float",
    139       parseInt: "number/parse-int",
    140     },
    141 
    142     Reflect: {
    143       apply: "reflect/apply",
    144       construct: "reflect/construct",
    145       defineProperty: "reflect/define-property",
    146       deleteProperty: "reflect/delete-property",
    147       getOwnPropertyDescriptor: "reflect/get-own-property-descriptor",
    148       getPrototypeOf: "reflect/get-prototype-of",
    149       get: "reflect/get",
    150       has: "reflect/has",
    151       isExtensible: "reflect/is-extensible",
    152       ownKeys: "reflect/own-keys",
    153       preventExtensions: "reflect/prevent-extensions",
    154       setPrototypeOf: "reflect/set-prototype-of",
    155       set: "reflect/set",
    156       defineMetadata: "reflect/define-metadata",
    157       deleteMetadata: "reflect/delete-metadata",
    158       getMetadata: "reflect/get-metadata",
    159       getMetadataKeys: "reflect/get-metadata-keys",
    160       getOwnMetadata: "reflect/get-own-metadata",
    161       getOwnMetadataKeys: "reflect/get-own-metadata-keys",
    162       hasMetadata: "reflect/has-metadata",
    163       hasOwnMetadata: "reflect/has-own-metadata",
    164       metadata: "reflect/metadata",
    165     },
    166 
    167     System: {
    168       global: "system/global",
    169     },
    170 
    171     Date: {
    172       //now: "date/now" // temporary disabled
    173     },
    174 
    175     Function: {
    176       // Warning: /virtual/ method - prototype, not static, version
    177       //bind: "function/virtual/bind" // temporary disabled
    178     },
    179   },
    180 };

    不支持的API需要引入pollify~

    参考文章https://shenbao.github.io/ishehui/html/React/Babel%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97.html

  • 相关阅读:
    图的深度优先遍历(邻接表,递归,非递归)
    图的深度优先遍历(邻接矩阵,递归,非递归)
    【转】C语言邻接表的实现
    图的存储
    堆排序_C实现
    快排_C实现
    交换二叉树中所有结点的左右子树的位置
    二叉树层次遍历_判断结点所属层次
    二叉树_非递归先中后序_递归非递归求深度
    二叉树非递归遍历(前、中、后)
  • 原文地址:https://www.cnblogs.com/imsomnus/p/9036957.html
Copyright © 2020-2023  润新知