gitextract_5skxgrji/ ├── .gitignore ├── .travis.yml ├── Demo/ │ ├── DribbbleDemo/ │ │ ├── Podfile │ │ ├── README.md │ │ ├── dribbbleDemo/ │ │ │ ├── AppDelegate.h │ │ │ ├── AppDelegate.m │ │ │ ├── Images.xcassets/ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ └── Contents.json │ │ │ │ ├── Contents.json │ │ │ │ ├── LaunchImage-1.launchimage/ │ │ │ │ │ └── Contents.json │ │ │ │ └── LaunchImage.launchimage/ │ │ │ │ └── Contents.json │ │ │ ├── Info.plist │ │ │ ├── dribbble/ │ │ │ │ ├── CommonDefine.js │ │ │ │ ├── DBDataSource.js │ │ │ │ ├── DBDetailController.js │ │ │ │ ├── DBDetailViews.js │ │ │ │ ├── DBTimelineController.js │ │ │ │ ├── DBTimelineViews.js │ │ │ │ ├── DBUserController.js │ │ │ │ ├── DBUserViews.js │ │ │ │ ├── main.js │ │ │ │ └── tmpData.js │ │ │ └── main.m │ │ ├── dribbbleDemo.xcodeproj/ │ │ │ ├── project.pbxproj │ │ │ └── project.xcworkspace/ │ │ │ └── contents.xcworkspacedata │ │ └── dribbbleDemoTests/ │ │ ├── Info.plist │ │ └── dribbbleDemoTests.m │ ├── OSXDemo/ │ │ ├── JSPatchOSXDemo/ │ │ │ ├── AppDelegate.h │ │ │ ├── AppDelegate.m │ │ │ ├── Base.lproj/ │ │ │ │ └── MainMenu.xib │ │ │ ├── Info.plist │ │ │ ├── demo.js │ │ │ └── main.m │ │ └── JSPatchOSXDemo.xcodeproj/ │ │ ├── project.pbxproj │ │ └── project.xcworkspace/ │ │ └── contents.xcworkspacedata │ ├── SwiftDemo/ │ │ ├── SwiftDemo/ │ │ │ ├── AppDelegate.swift │ │ │ ├── Assets.xcassets/ │ │ │ │ └── AppIcon.appiconset/ │ │ │ │ └── Contents.json │ │ │ ├── Base.lproj/ │ │ │ │ ├── LaunchScreen.storyboard │ │ │ │ └── Main.storyboard │ │ │ ├── Info.plist │ │ │ ├── SwiftDemo-Bridging-Header.h │ │ │ ├── TestObject.swift │ │ │ ├── ViewController.swift │ │ │ └── demo.js │ │ └── SwiftDemo.xcodeproj/ │ │ ├── project.pbxproj │ │ └── project.xcworkspace/ │ │ └── contents.xcworkspacedata │ ├── iOSDemo/ │ │ ├── JSPatchDemo/ │ │ │ ├── AppDelegate.h │ │ │ ├── AppDelegate.m │ │ │ ├── JPViewController.h │ │ │ ├── JPViewController.m │ │ │ ├── Supporting Files/ │ │ │ │ ├── Images.xcassets/ │ │ │ │ │ └── AppIcon.appiconset/ │ │ │ │ │ └── Contents.json │ │ │ │ ├── Info.plist │ │ │ │ └── main.m │ │ │ └── demo.js │ │ ├── JSPatchDemo.xcodeproj/ │ │ │ ├── project.pbxproj │ │ │ ├── project.xcworkspace/ │ │ │ │ └── contents.xcworkspacedata │ │ │ └── xcshareddata/ │ │ │ └── xcschemes/ │ │ │ └── JSPatchDemo.xcscheme │ │ └── JSPatchTests/ │ │ ├── Info.plist │ │ ├── InheritTest.js │ │ ├── JPCFunctionTest.h │ │ ├── JPCFunctionTest.m │ │ ├── JPInheritanceTestObjects.h │ │ ├── JPInheritanceTestObjects.m │ │ ├── JPJSClassTest.h │ │ ├── JPJSClassTest.m │ │ ├── JPMultithreadTestObject.h │ │ ├── JPMultithreadTestObject.m │ │ ├── JPNumberTest.h │ │ ├── JPNumberTest.m │ │ ├── JPPerformanceTest.h │ │ ├── JPPerformanceTest.m │ │ ├── JPSuperTestObject.h │ │ ├── JPSuperTestObject.m │ │ ├── JPTestObject.h │ │ ├── JPTestObject.m │ │ ├── JSPatchTests.m │ │ ├── jsCFunctionTest.js │ │ ├── jsClassTest.js │ │ ├── jsNumberTest.js │ │ ├── multithreadTest.js │ │ ├── newBlockTest.h │ │ ├── newBlockTest.js │ │ ├── newBlockTest.m │ │ ├── newProtocolTest.h │ │ ├── newProtocolTest.js │ │ ├── newProtocolTest.m │ │ ├── performanceTest.js │ │ ├── protocolTest.js │ │ ├── superTest.js │ │ └── test.js │ ├── iOSPlayground/ │ │ ├── JSPatchPlayground/ │ │ │ ├── AppDelegate.h │ │ │ ├── AppDelegate.m │ │ │ ├── Assets.xcassets/ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ └── Contents.json │ │ │ │ ├── Brand Assets.launchimage/ │ │ │ │ │ └── Contents.json │ │ │ │ ├── Contents.json │ │ │ │ └── LaunchImage.launchimage/ │ │ │ │ └── Contents.json │ │ │ ├── Info.plist │ │ │ ├── JPErrorMsgViewController.h │ │ │ ├── JPErrorMsgViewController.m │ │ │ ├── JPRootViewController.h │ │ │ ├── JPRootViewController.m │ │ │ ├── libs/ │ │ │ │ ├── SGDirWatchdog.h │ │ │ │ └── SGDirWatchdog.m │ │ │ ├── main.m │ │ │ └── src/ │ │ │ ├── JPDemoController.js │ │ │ └── main.js │ │ ├── JSPatchPlayground.xcodeproj/ │ │ │ ├── project.pbxproj │ │ │ └── project.xcworkspace/ │ │ │ └── contents.xcworkspacedata │ │ └── README.md │ ├── iOSPlaygroundToolDemo/ │ │ ├── JSPatchPlaygroundDemo/ │ │ │ ├── AppDelegate.h │ │ │ ├── AppDelegate.m │ │ │ ├── Assets.xcassets/ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ └── Contents.json │ │ │ │ ├── Contents.json │ │ │ │ └── apple.imageset/ │ │ │ │ └── Contents.json │ │ │ ├── Base.lproj/ │ │ │ │ ├── LaunchScreen.storyboard │ │ │ │ └── Main.storyboard │ │ │ ├── Info.plist │ │ │ ├── JPRootViewController.h │ │ │ ├── JPRootViewController.m │ │ │ ├── js/ │ │ │ │ └── demo.js │ │ │ └── main.m │ │ ├── JSPatchPlaygroundDemo.xcodeproj/ │ │ │ ├── project.pbxproj │ │ │ └── project.xcworkspace/ │ │ │ └── contents.xcworkspacedata │ │ └── README.md │ └── tvOSDemo/ │ ├── JSPatchDemo/ │ │ ├── AppDelegate.h │ │ ├── AppDelegate.m │ │ ├── JPViewController.h │ │ ├── JPViewController.m │ │ ├── Supporting Files/ │ │ │ ├── Images.xcassets/ │ │ │ │ └── AppIcon.appiconset/ │ │ │ │ └── Contents.json │ │ │ ├── Info.plist │ │ │ └── main.m │ │ └── demo.js │ └── JSPatchDemo.xcodeproj/ │ ├── project.pbxproj │ └── project.xcworkspace/ │ └── contents.xcworkspacedata ├── Extensions/ │ ├── JPBlock/ │ │ ├── JPBlock.h │ │ ├── JPBlock.m │ │ ├── JPBlockWrapper.h │ │ └── JPBlockWrapper.m │ ├── JPCFunction/ │ │ ├── JPCFunction.h │ │ ├── JPCFunction.m │ │ ├── JPMemory.h │ │ ├── JPMemory.m │ │ ├── JPStructPointer.h │ │ └── JPStructPointer.m │ ├── JPCFunctionBinder/ │ │ ├── CoreGraphics/ │ │ │ ├── JPCGBitmapContext.h │ │ │ ├── JPCGBitmapContext.m │ │ │ ├── JPCGColor.h │ │ │ ├── JPCGColor.m │ │ │ ├── JPCGContext.h │ │ │ ├── JPCGContext.m │ │ │ ├── JPCGGeometry.h │ │ │ ├── JPCGGeometry.m │ │ │ ├── JPCGImage.h │ │ │ ├── JPCGImage.m │ │ │ ├── JPCGPath.h │ │ │ ├── JPCGPath.m │ │ │ ├── JPCGTransform.h │ │ │ ├── JPCGTransform.m │ │ │ ├── JPCoreGraphics.h │ │ │ └── JPCoreGraphics.m │ │ └── UIKit/ │ │ ├── JPUIGeometry.h │ │ ├── JPUIGeometry.m │ │ ├── JPUIGraphics.h │ │ ├── JPUIGraphics.m │ │ ├── JPUIImage.h │ │ ├── JPUIImage.m │ │ ├── JPUIKit.h │ │ └── JPUIKit.m │ ├── JPCleaner.h │ ├── JPCleaner.m │ ├── JPDispatch.h │ ├── JPDispatch.m │ ├── JPLibffi/ │ │ ├── JPMethodSignature.h │ │ ├── JPMethodSignature.m │ │ └── libffi/ │ │ ├── ffi.h │ │ ├── ffi_arm.h │ │ ├── ffi_arm64.h │ │ ├── ffi_i386.h │ │ ├── ffi_x86_64.h │ │ ├── ffitarget.h │ │ ├── ffitarget_arm.h │ │ ├── ffitarget_arm64.h │ │ ├── ffitarget_i386.h │ │ ├── ffitarget_x86_64.h │ │ └── libffi.a │ ├── JPLocker.h │ ├── JPLocker.m │ ├── JPNumber.h │ ├── JPNumber.m │ ├── JPPlaygroundTool/ │ │ ├── JPPlayground.h │ │ ├── JPPlayground.m │ │ ├── JPPlaygroundModule/ │ │ │ ├── JPKeyCommands.h │ │ │ ├── JPKeyCommands.m │ │ │ ├── SGDirWatchdog.h │ │ │ └── SGDirWatchdog.m │ │ ├── JPPlaygroundView/ │ │ │ ├── JPDevErrorView.h │ │ │ ├── JPDevErrorView.m │ │ │ ├── JPDevMenu.h │ │ │ ├── JPDevMenu.m │ │ │ ├── JPDevTipView.h │ │ │ └── JPDevTipView.m │ │ └── README.md │ ├── JPProtocol.h │ ├── JPProtocol.m │ ├── JPSpecialInit.h │ └── JPSpecialInit.m ├── JSPatch/ │ ├── JPEngine.h │ ├── JPEngine.m │ └── JSPatch.js ├── JSPatch.podspec ├── LICENSE ├── Loader/ │ ├── JPLoader.h │ ├── JPLoader.m │ ├── libs/ │ │ ├── RSA.h │ │ ├── RSA.m │ │ ├── ZipArchive.h │ │ ├── ZipArchive.m │ │ └── minizip/ │ │ ├── crypt.h │ │ ├── ioapi.c │ │ ├── ioapi.h │ │ ├── mztools.c │ │ ├── mztools.h │ │ ├── unzip.c │ │ ├── unzip.h │ │ ├── zip.c │ │ └── zip.h │ └── tools/ │ └── packer.php ├── README-CN.md └── README.md